O&M: itinéraire de mise à niveau de l'ingénieur senior O&M

 


 

Le fonctionnement et la maintenance à un stade précoce est un travail très difficile, peut-être faire le travail de réparation de l'ordinateur pour pincer le câble réseau! Le temps est également fragmenté, et diverses questions triviales triviales tournent autour de vous, ce qui rend difficile de refléter la valeur personnelle et devient progressivement confus au sujet de l'industrie. Ces emplois ennuyeux et insipides sont en effet privés de personnes. D'un point de vue technique, ce sont en fait des compétences de base, qui apporteront de manière invisible une aide aux travaux ultérieurs d'exploitation et de maintenance. Par conséquent, au début, nous devons maintenir une attitude positive et continuer à apprendre. À l'avenir, je pense que cela vous rapportera! Partagez l'itinéraire d'apprentissage des ingénieurs d'exploitation et de maintenance.

Élémentaire

  1. Notions de base sur le système: vous devez être familiarisé avec l'installation du système d'exploitation Linux / Windows, la structure des répertoires, le processus de démarrage, etc. au début;

  2. Gestion du système: apprenez principalement les systèmes basés sur Linux, l'environnement de production termine essentiellement le travail dans l'interface de personnage, vous devez donc maîtriser des dizaines de commandes de gestion de base courantes, y compris la gestion des utilisateurs, le partitionnement du disque, la gestion des logiciels, les autorisations sur les fichiers, le traitement de texte, la gestion des processus, les performances Outils d'analyse, etc.

  3. Bases du réseau: les modèles OSI et TCP / IP doivent être familiers. Les concepts de base des commutateurs et des routeurs et les principes de mise en œuvre doivent être connus;

  4. Notions de base sur les scripts: maîtrisez la structure de syntaxe de base de Shell et pouvez écrire des scripts simples.

Intermédiaire

  1. Services réseau: les services réseau les plus couramment utilisés doivent être déployés, tels que vsftpd / NFS / Samba / DNS / DHCP, etc. Le système de gestion de version de code peut apprendre le SVN ou Git traditionnel, et il peut être déployé et utilisé simplement. Les données sont souvent transférées entre les serveurs, utilisez donc: rsync ou scp. Synchronisation des données: inotify ou sersync. Le travail répétitif peut être écrit sous forme de script pour s'exécuter régulièrement, vous devez donc configurer crond, un service de tâche chronométré sous Linux

  2. Service de site Web: chaque entreprise possède un site Web. Pour que le site Web fonctionne, vous devez créer une plate-forme de services de site Web. S'il est développé en langage PHP, il est généralement nécessaire de construire une plateforme de site web LAMP / LNMP. S'il s'agit du développement du langage Java, utilisez généralement Tomcat pour exécuter le projet. Pour améliorer la vitesse d'accès, vous pouvez utiliser le proxy inverse Nginx Tomcat, Nginx gère les pages statiques et Tomcat gère les pages dynamiques pour réaliser la séparation dynamique et statique. Non seulement il sera si simple à déployer, mais il faudra également connaître le principe de fonctionnement du protocole HTTP et un réglage simple des performances;

  3. Base de données SQL: La base de données choisit MySQL, qui est la base de données open source la plus utilisée au monde. Certaines instructions SQL simples, la gestion des utilisateurs, les moteurs de stockage communs, la sauvegarde et la récupération de la base de données sont nécessaires. Il nécessite également une réplication maître-esclave, une optimisation des performances, des solutions de cluster grand public: MHA / MGR, etc. Bien sûr, NoSQL est si populaire qu'il est bon d'apprendre Redis / MongoDB;

  4. Sécurité du réseau: la sécurité est très importante, n'attendez pas que le système soit envahi, puis adoptez une stratégie de sécurité! Par conséquent, un serveur doit établir une stratégie de contrôle d'accès de sécurité immédiatement après sa connexion, comme l'utilisation d'IPTABLES pour restreindre l'accès uniquement à l'IP source fiable et la fermeture de certains services et ports inutiles. Certains types d'attaque courants doivent être connus, tels que CC / DDOS / ARP, etc.;

  5. Système de surveillance: La surveillance est indispensable, c'est une paille qui permet de sauver des vies et de les retrouver à temps. Vous pouvez choisir d'étudier le système de surveillance open source Zabbix traditionnel, qui est riche en fonctions et peut répondre aux besoins de surveillance de base. Les points de surveillance incluent les ressources de base du serveur, l'état de l'interface, les performances du service, PV / UV et les journaux. Vous pouvez également obtenir un tableau de bord pour afficher plusieurs données clés en temps réel, comme Grafana sera très cool;

  6. Programmation de script avancée: le script Shell est un outil permettant à Linux de terminer automatiquement son travail. Il doit être écrit avec compétence, il est donc nécessaire d'étudier davantage les fonctions, les tableaux, les signaux et les e-mails. Le traitement de texte trois mousquetaires doivent jouer six, le traitement de texte sous Linux compte sur eux;

  7. Développement de script avancé: les scripts shell ne peuvent effectuer que certaines tâches de base. Pour effectuer des tâches plus complexes, telles que les processus multiples, etc., vous devez apprendre des langues avancées. Python est le langage le plus utilisé dans le domaine de l'exploitation et de la maintenance, facile à utiliser! Il suffit de maîtriser les bases à ce stade, telles que la structure de syntaxe de base, les opérations d'objet fichier, les fonctions, les objets itératifs, la gestion des exceptions, la programmation de base de données, etc.

Avancé

  1. Mise en cache statique du site Web: les utilisateurs crient toujours sur la lenteur de l'accès au site Web et voient si les ressources du serveur sont toujours riches! Un accès lent au site Web ne peut pas être causé par la saturation des ressources du serveur, et il existe de nombreux facteurs d'influence, tels que le réseau, la couche de transfert, etc. Pour le réseau, il y a un problème de communication nord-sud, et l'accès entre eux sera lent. Cela peut être résolu à l'aide de CDN. En même temps, les pages statiques sont mises en cache et les requêtes sont interceptées dans la réponse la plus haute autant que possible, ce qui réduit les requêtes back-end et le temps de réponse. Si vous n'utilisez pas CDN, vous pouvez également utiliser le service de cache Squid / Varnish / Nginx pour implémenter la mise en cache de page statique et le placer à l'entrée du trafic;

  2. Clustering: les ressources d'un seul serveur sont après tout limitées et il est certainement insoutenable de résister à un accès élevé. La technologie la plus critique pour résoudre ce problème consiste à utiliser un équilibreur de charge pour étendre horizontalement plusieurs serveurs Web et fournir des services externes en même temps. Performance. Les technologies open source traditionnelles d'équilibrage de charge sont LVS / HAProxy / Nginx. Doit être familier avec un ou deux! Le goulot d'étranglement des performances du serveur de site Web a été résolu et la base de données est plus critique ou le clustering est utilisé. Prenons l'exemple de MySQL. Vous pouvez utiliser une architecture maître-esclave pour réaliser une séparation en lecture et en écriture basée sur le maître. Le maître est responsable de l'écriture et plusieurs esclaves sont responsables de la lecture. La bibliothèque peut être étendue horizontalement, avec un équilibreur de charge à quatre couches à l'avant pour transporter correctement des dizaines de millions de PV! Les logiciels à haute disponibilité doivent également pouvoir éviter Keepalived / Heartbeat, etc. Combien de photos sur le site! Le stockage partagé NFS ne peut pas être pris en charge, le traitement est très lent, facile à obtenir! Système de fichiers distribué, tâches de traitement parallèle, pas de point unique de haute fiabilité et de hautes performances et autres fonctionnalités, les principaux sont FastDFS / MFS / HDFS / Ceph / GFS et ainsi de suite. Au début, il est recommandé d'apprendre FastDFS, qui peut répondre aux besoins des petites et moyennes échelles;

  3. Virtualisation et conteneurs: le taux d'utilisation des ressources du serveur matériel est très faible, ce qui est un gaspillage! Vous pouvez virtualiser davantage de serveurs inactifs dans de nombreuses machines virtuelles. Chaque machine virtuelle est un système d'exploitation complet, ce qui peut grandement améliorer l'utilisation des ressources. Il est recommandé d'apprendre KVM + OpenStack open source. La machine virtuelle peut être utilisée comme plate-forme de base, mais la mise à l'échelle élastique des services d'application est trop lourde! Il a fallu quelques minutes pour démarrer, et le fichier était tellement volumineux, il a fallu trop d'efforts pour se développer rapidement! Parlons simplement des conteneurs. Les principales caractéristiques des conteneurs sont un déploiement rapide et une isolation environnementale. Un service est encapsulé dans une image et des centaines de conteneurs peuvent être créés en quelques minutes. Docker est la technologie de conteneur traditionnelle. Bien sûr, dans la plupart des cas, le Docker autonome dans l'environnement de production ne peut pas répondre aux besoins de l'entreprise. Vous pouvez déployer des conteneurs de gestion en cluster Kubernetes / Swarm pour former un pool de ressources plus large pour une gestion centralisée et fournir un support solide pour l'infrastructure;

  4. Fonctionnement et maintenance automatiques: les travaux répétitifs peuvent non seulement améliorer l'efficacité, mais également ne pas refléter la valeur. Standardisation de tous les travaux d'exploitation et de maintenance, tels que la version de l'environnement, la structure des répertoires et le système d'exploitation unifié. Ce n'est que sur la base de la normalisation que l'automatisation peut être plus pratique.Vous pouvez effectuer une tâche complexe en quelques clics de souris ou quelques commandes. Par conséquent, toutes les opérations sont automatisées autant que possible pour réduire les erreurs humaines et améliorer l'efficacité du travail. L'outil de gestion centralisée du serveur traditionnel Ansible / SaltStack, vous pouvez choisir l'un des deux. L'enseignant Du a recommandé Jenkins comme outil d'intégration continue;

  5. Développement de script avancé: vous pouvez approfondir le développement de Python et maîtriser la programmation orientée objet. Il est également préférable d'apprendre un site Web de développement de cadre de site Web, tel que Django / Flask, qui est principalement utilisé pour développer un système de gestion des opérations et de la maintenance, écrire des processus complexes sur la plate-forme, puis intégrer des outils de gestion centralisés pour créer sa propre plate-forme de gestion. ;

  6. Système d'analyse des journaux: Les journaux sont également très importants. Une analyse régulière révèle les dangers cachés potentiels et extrait des choses précieuses. Un système de journalisation open source ELK, apprenez à déployer et à utiliser, pour fournir aux développeurs des exigences d'affichage des journaux;

  7. Optimisation des performances: seul le déploiement ne suffit pas, l'optimisation des performances peut maximiser la charge de service. C'est aussi relativement difficile, et c'est aussi l'un des points clés du salaire élevé, il faut travailler dur pour apprendre pour de l'argent! Pensez aux dimensions du matériel, du système d'exploitation, des logiciels et de l'architecture.

Résumé

Les outils que les ingénieurs d'exploitation et de maintenance doivent maîtriser pour créer un tableau:

Tapez Le nom
Traitement de texte grep / sed / awk
Transfert de données rsync / scp / inodify / sersync
Gestion des processus Superviseur
Analyse des performances top / gratuit / df / iftop / iostat / vmstat / dstat / sar / sysdig
Service réseau vsftp / NFS / Samba / DNS / DHCP / Postfix
Services Web Apache / Nginx / Tomcat / JBoss / résine
Base de données SQL MySQL / MariaDB
Base de données NoSQL Redis / MongoDB
File d'attente des messages RabbitMQ / ActiveMQ
Gestion des versions SVN / Git
Cache statique Calmars / Vernis / Nginx
Équilibrage de charge LVS / HAProxy / Nginx
Haute disponibilité HA Keepalived / Heartbeat / DRBD
Outils de gestion centralisée Ansible / SaltStack / Chef / Puppet
Plateforme cloud virtualisée KVM / Xen / Docker / Kubernetes / OpenStack / Stack Nuage
Installation automatique Kickstart / Cobbler
Analyse de capture de paquets tcpdump / Wireshark
Intégration continue Jenkins / GitLab
Agent de base de données MySQL High / Cobar / MyCat
Test de pression ab / fio / sysbench / mysqlslap
Contrôle de sécurité chkrootkit / rkhunter
Système de journalisation WAPITI
Moniteur Zabbix / Cacti / Nagios / Grafana

Je suppose que tu aimes

Origine www.cnblogs.com/chentao144/p/12697647.html
conseillé
Classement