Pourquoi les administrateurs système devraient devenir des ingénieurs DevOps


Il n'y a pas de meilleur moment pour apprendre dans la vie qu'aujourd'hui.

Nous sommes en 2019 et le thème DevOps est toujours aussi pertinent. Ils disent que l'époque des administrateurs système est révolue, que l'ère des mainframes est passée. Mais est-ce vraiment le cas?
Comme c'est souvent le cas en informatique, la situation a changé. La méthodologie DevOps est apparue, mais elle ne peut exister sans une personne possédant les compétences d'un administrateur système, c'est-à-dire sans Ops.

Avant que l'approche DevOps n'ait acquis son look moderne, je me suis classée comme Ops. Et je sais bien ce que l'administrateur système vit lorsqu'il se rend compte de ce qu'il n'a pas encore pu faire et du peu de temps qu'il a pour apprendre à le faire.



Mais tout est-il vraiment si effrayant? Je dirais qu'il n'est pas nécessaire de percevoir le manque de connaissances comme une sorte de gros problème. C'est plutôt un défi professionnel.

Les produits à l'échelle du Web sont basés sur Linux ou d'autres logiciels open source, et il y a de moins en moins de spécialistes sur le marché qui peuvent les servir. La demande a déjà dépassé le nombre de professionnels dans ce domaine. L'administrateur système ne pourra plus continuer à travailler sans augmenter son niveau de compétence. Il doit avoir des compétences en automatisation pour gérer plusieurs serveurs / nœuds et avoir une bonne compréhension de la façon dont ils fonctionnent pour résoudre les problèmes.

Avant de devenir membre de l'équipe DevOps, vous avez un long mais intéressant voyage à apprendre, explorant les nouvelles technologies et une variété d'outils nécessaires pour maintenir le système conformément aux normes DevOps.

Alors, comment l'administrateur système peut-il passer de l'approche habituelle du travail au nouveau concept DevOps? Tout est comme d'habitude: vous devez d'abord changer votre état d'esprit. Ce n’est pas facile du tout d’abandonner l’approche que vous suivez depuis dix ou vingt ans et de tout recommencer, mais c’est nécessaire.

Tout d'abord, il est important de comprendre que DevOps n'est pas un poste spécifique dans une entreprise, mais un ensemble de pratiques spécifiques. Ces pratiques incluent la distribution de systèmes isolés, la réduction des risques de bugs et d'erreurs, des mises à jour logicielles fréquentes et opportunes, une interaction fluide entre les développeurs (Dev) et les administrateurs (Ops), ainsi que des tests constants non seulement du code, mais de toute la structure dans le cadre du processus d' intégration continue et livraison (CI / CD) .

En plus de changer la façon de penser, vous devez apprendre à maintenir l'infrastructure et à garantir son fonctionnement stable, sa fiabilité et sa disponibilité pour une intégration et une livraison continues d'applications, de services et de logiciels.

Ce qui pourrait vous manquer en tant que spécialiste des opérations, ce sont les compétences en programmation. Désormais, l'écriture de scripts (scripts) que les administrateurs système utilisent pour installer automatiquement les correctifs sur le serveur, gérer les fichiers et les comptes, pour dépanner et compiler la documentation est déjà considérée comme obsolète. Dans des cas relativement simples, des scénarios sont toujours appliqués, mais le concept de DevOps implique la résolution de tâches à grande échelle, qu'il s'agisse de mise en œuvre, de test, de travail d'assemblage ou de déploiement.

Ainsi, si vous voulez apprendre l'automatisation, vous devez au moins maîtriser un peu la programmation, même si vous n'êtes pas développeur, car à ce stade de son développement , l'automatisation des infrastructures dans DevOps nécessite cette compétence.

Que faire Pour rester un spécialiste recherché, vous devez acquérir des compétences pertinentes - maîtriser au moins un langage de programmation, par exemple Python. Pour une personne professionnellement impliquée dans l'administration, cela peut sembler compliqué, car il a l'habitude de penser que seuls les développeurs programment. Il n'est pas nécessaire de devenir un expert, cependant, la connaissance de l'un des langages de programmation (il peut s'agir de Python, Bash ou même Powershell ) sera certainement un avantage.

Pour apprendre à programmer, il faut du temps. Soyez attentif et patient - cela vous aidera à maintenir une compréhension de la situation lors de la communication avec les développeurs de l'équipe DevOps et les clients. Une demi-heure par jour, une heure ou plus - l'apprentissage d'un langage de programmation devrait être votre objectif principal.

Les administrateurs système et les spécialistes DevOps résolvent des problèmes similaires, mais il existe une différence significative. On pense que l'administrateur système ne peut pas faire tout ce que l'ingénieur DevOps peut faire. Ils disent que l'administrateur système est plus axé sur la configuration, la maintenance et la garantie de l'opérabilité des systèmes de serveurs, mais l'ingénieur DevOps tire tout ce chariot et un autre petit chariot.

Mais dans quelle mesure cette affirmation est-elle vraie?

Administrateur système: un sur le terrain guerrier


Malgré les différences et les similitudes notées dans cet article, je pense toujours qu'il n'y a pas de différence significative entre l'administration système et DevOps. Les administrateurs système remplissaient toujours les mêmes fonctions que les spécialistes DevOps, mais personne ne l'avait jamais appelé DevOps auparavant. Je pense que cela n'a aucun sens de rechercher spécifiquement des différences, surtout si cela n'est lié à aucune tâche. N'oubliez pas que, contrairement à l'administrateur système, DevOps n'est pas une position, mais un concept.

Encore une chose importante à noter, sans laquelle la conversation sur l'administration et DevOps sera incomplète. L'administration du système au sens habituel implique qu'un spécialiste possède un ensemble spécifique de compétences et se concentre sur l'entretien de différents types d'infrastructures. Pas dans le sens où il s'agit d'un employé universel, mais dans le fait qu'il y a un certain nombre de tâches effectuées par tous les administrateurs.

Par exemple, de temps en temps, ils doivent agir comme une sorte de bricoleur technique, c'est-à-dire faire tout littéralement de suite. Et si un tel administrateur est le seul dans toute l'organisation, alors il fera tout le travail technique. Cela peut aller de l'entretien d'imprimantes et de copieurs à l'exécution de tâches liées au réseau, telles que la configuration de routeurs et de commutateurs et leur gestion ou la configuration d'un pare-feu.

Il sera également responsable des mises à jour matérielles, de la vérification et de l'analyse des journaux, de l'audit de sécurité, de l'installation des correctifs sur le serveur, du dépannage, de l'analyse des causes profondes et de l'automatisation - généralement via PowerShell, Python ou les scripts Bash. Un exemple d'utilisation de scripts est la gestion des comptes d'utilisateurs et de groupes. La création de comptes d'utilisateurs et l'attribution d'autorisations est une tâche extrêmement fastidieuse, car les utilisateurs apparaissent et disparaissent presque tous les jours. L'automatisation par script libère du temps pour des tâches d'infrastructure plus importantes, telles que la mise à niveau des commutateurs et des serveurs et l'exécution d'autres projets qui affectent la rentabilité de l'entreprise où l'administrateur travaille (bien que l'on pense généralement que le service informatique ne génère pas directement de revenus).

La tâche de l'administrateur système n'est pas de perdre du temps et d'économiser de l'argent de l'entreprise de toutes les manières possibles. Parfois, les administrateurs système travaillent en tant que membres d'une grande équipe qui rassemble, par exemple, les administrateurs Linux, Windows, base de données, stockage, etc. L'horaire de travail est également différent. Par exemple, un décalage dans un fuseau horaire à la fin de la journée transfère les choses au décalage suivant dans un autre fuseau horaire afin que les processus ne s'arrêtent pas (suivi du soleil); ou les employés ont une journée de travail normale de 9 h à 17 h; ou fonctionne-t-il dans un centre de données ouvert 24h / 24?

Au fil du temps, les administrateurs système ont appris à penser de manière stratégique et à combiner des questions importantes avec des tâches de routine. Les équipes et les services dans lesquels ils travaillent ne disposent généralement pas de ressources suffisantes, mais en même temps, tout le monde essaie de réaliser pleinement les tâches quotidiennes.

DevOps: le développement et le service ne font qu'un


DevOps est une sorte de philosophie des processus de développement et de maintenance. Cette approche dans le monde informatique est devenue vraiment innovante.

Sous les auspices de DevOps, une équipe de développeurs de logiciels travaille d'un côté et une équipe de spécialistes des services de l'autre. Ils sont souvent rejoints par des spécialistes de la gestion de produits, des testeurs et des concepteurs d'interfaces utilisateurs. En unissant leurs forces, ces spécialistes optimisent les opérations de travail pour déployer rapidement de nouvelles applications et mettre à jour le code afin de soutenir et d'améliorer l'efficacité de l'ensemble de l'entreprise.

Au cœur de DevOps se trouve le contrôle du développement et du fonctionnement des logiciels tout au long du cycle de vie. Les spécialistes des services doivent prendre en charge les développeurs, et les développeurs sont confrontés à la tâche de comprendre non seulement les API utilisées dans les systèmes. Ils doivent comprendre ce qui est «sous le capot» (c'est-à-dire comment le matériel et les systèmes d'exploitation fonctionnent) afin de mieux gérer les erreurs, résoudre les problèmes et interagir avec les spécialistes du service.

Les administrateurs système peuvent s'adresser à l'équipe DevOps s'ils souhaitent apprendre les dernières technologies et sont ouverts aux idées et solutions innovantes. Comme je l'ai dit, ils n'ont pas besoin de devenir des programmeurs à part entière, mais la maîtrise de langages de programmation tels que Ruby, Python ou Go les aidera à devenir des membres très utiles de l'équipe. Bien que les administrateurs système effectuent traditionnellement tout le travail par eux-mêmes et soient souvent perçus comme des solitaires, dans DevOps, ils auront une expérience complètement opposée lorsque tous les participants au processus interagiront les uns avec les autres.

Le sujet de l'automatisation devient de plus en plus pertinent. Les administrateurs système et les spécialistes DevOps sont intéressés par la mise à l'échelle opérationnelle, la réduction du nombre d'erreurs, ainsi que par la recherche rapide et l'élimination des erreurs existantes. Ainsi, l'automatisation est un concept où deux domaines convergent. Les administrateurs système sont responsables des services cloud tels qu'AWS, Azure et Google Cloud Platform. Ils doivent comprendre les principes de l'intégration et de la livraison continues et comment utiliser des outils comme Jenkins dans leur travail.

De plus, les administrateurs système doivent utiliser des outils de configuration et de gestion tels qu'Ansible , qui sont requis pour déployer dix ou vingt serveurs en parallèle.

Le concept de base est l' infrastructure en tant que code . Logiciel dans tout. En fait, pour que la profession d'administrateur système ne perde pas de pertinence, il suffit de changer un peu le focus. Les administrateurs système sont engagés dans la maintenance et devraient être en mesure d'interagir efficacement avec les développeurs, et vice versa. Comme on dit, une tête est bonne et deux, c'est mieux.

Et le dernier détail de ce mécanisme est Git . Travailler avec Git est l'une des responsabilités quotidiennes traditionnelles d'un administrateur système. Ce système de contrôle de version est largement utilisé par les développeurs, les spécialistes DevOps, les équipes Agile et bien d'autres. Si votre travail est lié au cycle de vie du logiciel, vous travaillerez certainement avec Git.

Git contient de nombreuses fonctionnalités. Très probablement, vous n'apprendrez jamais toutes les commandes Git, mais vous comprendrez exactement pourquoi cet outil est considéré comme le principal en communication et collaboration sur les logiciels. Une connaissance approfondie de Git est très importante si vous travaillez dans l'équipe DevOps.

Si vous êtes un administrateur système, vous devez mieux apprendre Git, comprendre comment le contrôle de version est construit et mémoriser les commandes courantes: git status, git commit -m, git add, git pull, git push, git rebase, git branch, git diff et autres . Il existe de nombreux cours et livres en ligne pour vous aider à apprendre ce sujet à partir de zéro et à devenir un professionnel avec des compétences spécifiques. Il existe également de superbes tricheurs avec les commandes Git , donc les bourrer tous est facultatif, mais plus vous utilisez Git, plus cela vous sera facile.

Conclusion


En fin de compte, vous décidez si vous devez devenir spécialiste DevOps ou mieux rester administrateur système. Comme vous pouvez le voir, la transition nécessite une formation, mais le plus tôt sera le mieux. Choisissez un langage de programmation et étudiez des outils tels que Git (contrôle de version), Jenkins (CI / CD, intégration continue) et Ansible (configuration et automatisation). Quelle que soit l'option que vous choisissez, n'oubliez pas que vous devez constamment apprendre et améliorer vos compétences.

Source: https://habr.com/ru/post/fr463505/


All Articles