Chemin de mise à niveau de l'ingénieur principal en exploitation et en maintenance

Les ingénieurs d'exploitation et de maintenance sont un travail très difficile au début: pendant cette période, ils peuvent être en train de réparer l'ordinateur, de pincer le câble réseau et de déplacer la machine, ce qui semble n'avoir aucun statut! Le temps est également très fragmenté, toutes sortes de choses insignifiantes vous entourent, il est difficile de refléter la valeur personnelle, et peu à peu devenir très confus sur l'industrie, sentir qu'il n'y a pas d'avenir pour le développement.

Ces tâches ennuyeuses et ennuyeuses rendent les gens rares. 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, car je suis également venu ici et je peux le comprendre profondément. Par conséquent, pendant cette période, nous devons maintenir une attitude positive et continuer à apprendre. Je crois qu'il vous sera rendu un jour dans le futur!

Bon, passons au sujet. Sur la base de mes années d’expérience en exploitation et en maintenance, je partagerai avec vous le parcours d’apprentissage des ingénieurs d’exploitation et de maintenance.

primaire

1. Principes de base de Linux

Au début, 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.

2. Gestion du système

Étudiez principalement le système Linux. Dans l'environnement de production, le travail est essentiellement effectué dans l'interface de caractères, il est donc nécessaire de maîtriser des dizaines de commandes de gestion de base couramment utilisées, y compris la gestion des utilisateurs, le partitionnement de disque, la gestion des progiciels, les autorisations de fichiers, le traitement de texte , gestion des processus et outils d'analyse des performances, etc.

3. Fondation du réseau

Les modèles OSI et TCP / IP doivent être familiers. Les concepts de base et les principes de mise en œuvre des commutateurs et des routeurs doivent être connus.

4. Principes de base de la programmation de scripts Shell

Maîtriser la structure grammaticale de base de Shell et être capable d'écrire des scripts simples.

intermédiaire

1. Service réseau

Les services réseau les plus couramment utilisés doivent être déployés, tels que vsftp, nfs, samba, bind, dhcp, etc.

Le système de gestion de version de code est indispensable, vous pouvez apprendre le SVN et GIT grand public, qui peuvent être déployés et simplement utilisés.

Les données sont souvent transférées entre les serveurs, utilisez donc: rsync et scp.

Synchronisation des données: inotify / sersync.

L'achèvement répétitif de certains travaux peut être écrit sous forme de script à exécuter à une heure fixe, vous devez donc configurer le service de tâche chronométré crond sous Linux.

2. Services Web

Chaque entreprise a essentiellement un site Web. Pour faire fonctionner le site Web, elle doit créer une plate-forme de services Web.

S'il est développé en langage PHP, les plates-formes de sites Web LAMP et LNMP sont généralement construites. Il s'agit d'une orthographe d'une combinaison de termes techniques. Séparément parlant, il est nécessaire de déployer Apache, Nginx, MySQL et PHP.

S'il est développé en langage JAVA, Tomcat est généralement utilisé pour exécuter le projet. Afin d'améliorer la vitesse d'accès, vous pouvez utiliser Nginx pour inverser le proxy Tomcat, Nginx gère les pages statiques et Tomcat gère les pages dynamiques pour obtenir une séparation dynamique et statique. .

Ce n'est pas si simple à déployer, mais aussi de connaître le principe de fonctionnement du protocole HTTP et un simple réglage des performances.

3. Base de données

La base de données est MySQL, qui est la base de données open source la plus utilisée au monde. Assurez-vous de l'apprendre!

Certaines instructions SQL simples, la gestion des utilisateurs, les moteurs de stockage couramment utilisés, la sauvegarde et la restauration de la base de données sont également nécessaires.

Si vous voulez aller plus loin, vous devez réplication maître-esclave, optimisation des performances et solutions de cluster grand public: MHA, MGR, etc.

Bien sûr, NoSQL est si populaire. Apprenez simplement Redis et MongoDB.

4. Sécurité

La sécurité est très importante, n'attendez pas que le système soit piraté, puis élaborez une stratégie de sécurité, il est trop tard pour le moment! Par conséquent, lorsqu'un serveur se met en ligne, les politiques de contrôle d'accès de sécurité doivent être mises en œuvre immédiatement, comme l'utilisation d'iptables pour restreindre l'accès aux seules adresses IP sources de confiance et la fermeture de certains services et ports inutiles.

Certains types communs de *** doivent être connus, sinon comment prescrire le bon médicament! Tels que CC, DDOS, ARP, etc.

5. Système de surveillance

La surveillance est indispensable et constitue une paille vitale pour découvrir et tracer les problèmes dans le temps. Vous pouvez choisir d'apprendre le système de surveillance open source Zabbix grand public, qui a des fonctions riches 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, les journaux, etc.

Vous pouvez également créer un tableau de bord pour afficher plusieurs données clés en temps réel, comme Grafana, ce qui sera très cool.

6. Programmation avancée de scripts Shell

Le script Shell est un outil puissant pour Linux pour effectuer automatiquement des tâches. Il doit être rédigé avec compétence, vous devez donc en savoir plus sur les fonctions, les tableaux, les signaux et l'envoi d'e-mails.

Le traitement de texte trois épéistes (grep, sed, awk) doivent jouer 6, et le traitement de texte sous Linux en dépend.

7, fondation de développement Python

Les scripts Shell ne peuvent effectuer que certaines tâches de base, mais souhaitent effectuer des tâches plus complexes, telles que l'appel d'API, les multi-processus, etc. Vous devez apprendre des langues de haut niveau.

Python est le langage le plus utilisé dans le domaine de l'exploitation et de la maintenance.Il est simple et facile à utiliser, vous pouvez donc l'apprendre! À ce stade, il suffit de maîtriser les bases, telles que la structure grammaticale de base, les opérations sur les objets fichier, les fonctions, les objets d'itération, la gestion des exceptions, le mailing, la programmation de bases de données, etc.

Avancée

1. Cache statique Web

Les utilisateurs crient toujours que l'accès au site Web est lent, et voient si les ressources du serveur sont encore très riches! L'accès lent au site Web peut ne pas être causé par la saturation des ressources du serveur. De nombreux facteurs influent, tels que le réseau et le nombre de couches de transfert.

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 en utilisant CDN. Dans le même temps, les pages statiques sont mises en cache et les demandes sont interceptées au niveau supérieur pour y répondre. autant que possible pour réduire les requêtes back-end et le temps de réponse.

Si vous n'utilisez pas CDN, vous pouvez également utiliser des services de cache tels que Squid, Varnish et Nginx pour mettre en cache les pages statiques et les placer à l'entrée du trafic.

2. Cluster

Après tout, un serveur unique a des ressources limitées et il n'est certainement pas supportable pour résister à un trafic é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 au monde extérieur. double la performance. Les principales technologies open source des équilibreurs de charge incluent LVS, HAProxy et Nginx. Doit être familier avec un ou deux!

Le goulot d'étranglement des performances du serveur Web est résolu et la base de données est plus critique. Des clusters sont utilisés. Prenons l'exemple de MySQL. Il peut s'agir d'un maître et de plusieurs esclaves. Sur cette base, la lecture et l'écriture sont séparées. Le maître est responsable pour l'écriture, et de nombreux esclaves sont responsables de la lecture. Il peut être mis à l'échelle horizontalement. Il y a un équilibreur de charge à quatre couches devant lui, qui peut transporter des dizaines de millions de PV. Tout va bien!

Les logiciels à haute disponibilité doivent également être capables d'éviter les armes à point unique, les plus courantes étant Keepalived et Heartbeat.

Pourquoi y a-t-il autant de photos de sites Web! Le stockage partagé NFS ne peut pas le prendre en charge, le traitement est très lent, facile à gérer! Sur le système de fichiers distribué, tâches de traitement parallèles, pas de point unique, haute fiabilité, hautes performances et autres caractéristiques, FastDFS, MFS, HDFS, Ceph, GFS, etc. Dans un premier temps, je suggère d'apprendre FastDFS, qui peut répondre aux besoins des petites et moyennes entreprises.

3. Virtualisation

Le taux d'utilisation des ressources du serveur matériel est très faible, ce qui est très coûteux! Les serveurs inactifs peuvent être virtualisés en de nombreuses machines virtuelles, et chaque machine virtuelle est un système d'exploitation complet. Peut grandement améliorer l'utilisation des ressources. Il est recommandé d'apprendre la plate-forme cloud open source KVM + OpenStack.

Les machines virtuelles conviennent en tant que plate-forme de base, mais la mise à l'échelle élastique des applications métier est trop lourde! Après quelques minutes de démarrage, le fichier est si volumineux qu'il est trop fatigant pour se développer rapidement!

Il est facile de dire que la caractéristique principale du conteneur est un déploiement rapide et une isolation de l'environnement. Un service est encapsulé dans une image et des centaines de conteneurs peuvent être créés en quelques minutes.

La technologie de conteneur grand public n'est autre que Docker.

Bien sûr, Docker à une seule machine dans l'environnement de production ne peut pas répondre aux besoins de l'entreprise dans la plupart des cas. Les conteneurs de gestion de cluster Kubernetes et Swarm peuvent être déployés pour former un vaste pool de ressources, une gestion centralisée et une prise en charge solide de l'infrastructure.

Pour apprendre Docker, vous pouvez jeter un œil à ce didacticiel vidéo. L'évaluation des étudiants est toujours bonne: http://opsdev.ke.qq.com

4. Automatisation

Un travail répété peut non seulement améliorer l'efficacité, mais également ne pas refléter sa valeur.

Tous les travaux d'exploitation et de maintenance sont standardisés, tels que la version de l'environnement unifié, la structure des répertoires, le système d'exploitation, etc. Ce n'est que sur la base de la standardisation que d'autres aspects peuvent être automatisés.Une tâche complexe peut être accomplie en quelques clics de souris ou en quelques commandes.

Par conséquent, toutes les opérations sont aussi automatisées que possible pour réduire les erreurs humaines et améliorer l'efficacité du travail.

Outils de gestion centralisée du serveur principal: Ansible, Saltstack

Choisissez l'un de ces deux.

Outil d'intégration continue: Jenkins

5. Développement Python avancé

Vous pouvez étudier plus en détail le développement Python et maîtriser la programmation orientée objet.

Il est préférable d'apprendre un site Web de développement de cadre Web, tel que Django, Flask, principalement pour développer des systèmes de gestion des opérations et de la maintenance, écrire des processus complexes dans la plate-forme et intégrer des outils de gestion centralisés pour créer une plate-forme de gestion qui appartient à l'exploitation et à la maintenance. .

Pour des idées d'apprentissage spécifiques, veuillez consulter l'article historique: "Apocalypse: Comment créer une plate-forme d'automatisation des opérations et de la maintenance"

6. Système d'analyse des journaux

Les journaux sont également très importants, car une analyse régulière permet de découvrir des dangers potentiels et d'extraire des éléments de valeur.

Un système de journalisation open source: ELK

Apprenez à déployer et à utiliser, et fournissez les exigences d'affichage des journaux pour le développement.

7. Optimisation des performances

Seul le déploiement est loin d'être suffisant. L'optimisation des performances peut maximiser la capacité du service.

Celui-ci est aussi plus difficile, et l'un des points clés d'un salaire élevé.Pour l'argent, il faut travailler dur pour apprendre!

Pensez aux dimensions de la couche matérielle, de la couche du système d'exploitation, de la couche logicielle et de la couche d'architecture.

résumé:

Chemin de mise à niveau de l'ingénieur principal en exploitation et en maintenance

conscience

1. Persévérez

L'apprentissage est un processus très long et c'est une carrière dont chacun de nous a besoin pour persister toute sa vie.

Le plus important est la persévérance, la difficulté est la persévérance, le succès est la persévérance!

2. Objectif

Ceux qui n'ont pas d'objectifs ne sont pas appelés emplois et ceux qui ne sont pas quantifiés ne sont pas appelés objectifs.

À chaque étape, fixez-vous un objectif.

Par exemple: fixez d'abord un petit objectif qui peut être atteint et gagnez 100 millions!

3. Partagez

Apprenez à partager, la valeur de la technologie réside dans la capacité de transmettre efficacement les connaissances au monde extérieur et de le faire savoir à plus de gens.

Tant que tout le monde trouvera quelque chose, que deviendra-t-il?

Si vous êtes dans la bonne direction, vous n'avez pas peur du long chemin!

Je suppose que tu aimes

Origine blog.51cto.com/15127501/2657166
conseillé
Classement