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

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

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


Nous sommes en 2019 et DevOps est plus pertinent que jamais. On dit que l’époque des administrateurs système est révolue, tout comme l’ère du mainframe. Mais est-ce vraiment le cas ?
Comme cela arrive souvent en informatique, la situation a changé. La méthodologie DevOps a émergé, mais elle ne peut exister sans une personne possédant des compétences d'administrateur système, c'est-à-dire sans Ops.

Avant que l’approche DevOps ne prenne sa forme moderne, je me considérais comme un Ops. Et je sais très bien ce que vit un administrateur système lorsqu’il se rend compte de tout ce qu’il ne peut pas encore faire et du peu de temps dont il dispose pour l’apprendre.

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

Mais est-ce vraiment si effrayant ? Je dirais que le manque de connaissances ne devrait pas être perçu comme un gros problème. Il s'agit plutôt d'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 personnes sur le marché capables de les maintenir. La demande a déjà dépassé le nombre de professionnels dans ce domaine. Un administrateur système ne pourra plus simplement continuer à travailler sans améliorer 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 leur fonctionnement pour résoudre les problèmes qui surviennent.

Avant de devenir membre de l'équipe DevOps, vous devez parcourir un parcours assez long mais intéressant, en apprenant de nouvelles technologies et divers outils nécessaires pour maintenir le système selon les normes DevOps.

Alors, comment un administrateur système peut-il passer de son approche de travail habituelle au nouveau concept DevOps ? Tout est comme d'habitude : vous devez d'abord changer votre façon de penser. Ce n'est pas facile d'abandonner l'approche que l'on suit depuis dix ou vingt ans et de commencer à faire les choses différemment, mais c'est nécessaire.

Tout d’abord, il est important de comprendre que le DevOps n’est pas un poste spécifique dans une entreprise, mais un ensemble de pratiques spécifiques. Ces pratiques impliquent la distribution de systèmes isolés, réduisant les dommages causés par les bogues et les erreurs, des mises à jour logicielles fréquentes et opportunes, une interaction bien établie entre les développeurs (Dev) et les administrateurs (Ops), ainsi que des tests constants non seulement du code, mais aussi toute la structure du processus intégration et livraison continues (CI/CD).

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

Ce qui vous manque peut-être en tant que professionnel des opérations, ce sont des compétences en programmation. Désormais, l'écriture de scripts (scripts), que les administrateurs système utilisent pour installer automatiquement des correctifs sur un serveur, gérer des fichiers et des comptes, résoudre des problèmes et compiler de la documentation, est déjà considérée comme obsolète. Les scripts s'appliquent toujours dans des cas relativement simples, mais DevOps consiste à résoudre des problèmes à grande échelle, qu'il s'agisse de mise en œuvre, de tests, de builds ou de déploiements.

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

Ce qu'il faut faire? Pour rester recherché en tant que spécialiste, vous devez acquérir des compétences pertinentes - maîtriser au moins un langage de programmation, par exemple Python. Cela peut sembler difficile à une personne professionnellement impliquée dans l'administration, car elle est habituée à penser que seuls les développeurs programment. Il n'est pas nécessaire de devenir un expert, mais la connaissance d'un des langages de programmation (cela peut être Python, Bash ou même Powershell), sera certainement un avantage.

Apprendre à programmer prend du temps. Être attentif et patient vous aidera à rester au courant lorsque vous communiquerez avec les membres de l'équipe DevOps et les clients. Une demi-heure par jour, une heure ou plus, apprendre 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 des différences significatives. On pense qu’un administrateur système ne peut pas faire tout ce qu’un ingénieur DevOps peut faire. On dit que l'administrateur système se concentre davantage sur la configuration, la maintenance et la garantie des performances des systèmes de serveur, 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 guerrier sur le terrain

Malgré les différences et similitudes relevées dans cet article, je continue de croire qu’il n’y a pas de différence significative entre l’administration système et DevOps. Les administrateurs système ont toujours rempli les mêmes fonctions que les spécialistes DevOps, c'est juste que personne ne l'appelait DevOps auparavant. Je pense qu'il ne sert à rien de rechercher spécifiquement des différences, surtout si cela n'est lié à aucune tâche. N'oubliez pas que contrairement à un administrateur système, DevOps n'est pas un poste, mais un concept.

Il convient de noter une autre chose importante, sans laquelle une conversation sur l'administration et le DevOps serait incomplète. L'administration système au sens habituel présuppose qu'un spécialiste possède un ensemble spécifique de compétences et se concentre sur la maintenance de différents types d'infrastructures. Non pas dans le sens où il s'agit d'un employé universel, mais dans le sens où un certain nombre de tâches sont accomplies par tous les administrateurs.

Par exemple, de temps en temps, ils doivent agir comme une sorte de bricoleur technique, c'est-à-dire littéralement tout faire. Et s'il n'y a qu'un seul administrateur pour l'ensemble de l'organisation, il effectuera généralement tout le travail technique. Cela peut aller de la maintenance des imprimantes et des copieurs à l'exécution de tâches liées au réseau telles que la configuration et la gestion de routeurs et de commutateurs ou la configuration d'un pare-feu.

Il sera également responsable des mises à niveau matérielles, de l'inspection et de l'analyse des journaux, des audits de sécurité, des correctifs du serveur, du dépannage, de l'analyse des causes profondes et de l'automatisation, généralement via des scripts PowerShell, Python ou Bash. Un exemple d'utilisation scénarios est la gestion des comptes d'utilisateurs et de groupes. Créer des comptes d'utilisateurs et attribuer des autorisations est une tâche extrêmement fastidieuse car les utilisateurs apparaissent et disparaissent presque tous les jours. L'automatisation via des scripts libère du temps pour des tâches d'infrastructure plus importantes, telles que la mise à niveau des commutateurs et des serveurs et d'autres projets qui affectent la rentabilité de l'entreprise dans laquelle travaille l'administrateur (même s'il est généralement admis que le service informatique ne génère pas directement de revenus).

La tâche de l'administrateur système est de ne pas perdre de temps et d'économiser de l'argent à l'entreprise de toutes les manières possibles. Parfois, les administrateurs système travaillent en tant que membres d'une grande équipe, réunissant, par exemple, les administrateurs de Linux, Windows, des bases de données, du stockage, etc. Les horaires de travail varient également. Par exemple, un changement dans un fuseau horaire en fin de journée transfère les dossiers au changement suivant dans un autre fuseau horaire afin que les processus ne s'arrêtent pas (suivre le soleil) ; ou les salariés ont une journée de travail normale de 9h à 5h ; ou il fonctionne dans un centre de données XNUMXh/XNUMX et XNUMXj/XNUMX.

Au fil du temps, les administrateurs système ont appris à penser de manière stratégique et à combiner les questions importantes avec les tâches de routine. Les équipes et les départements dans lesquels ils travaillent manquent généralement de ressources, mais en même temps, chacun s'efforce d'accomplir au maximum les tâches quotidiennes.

DevOps : développement et maintenance en harmonie

DevOps est une sorte de philosophie pour les processus de développement et de maintenance. Cette approche dans le monde informatique est devenue véritablement innovante.

Sous l’égide de DevOps, il y a d’un côté une équipe de développement logiciel et de l’autre une équipe de maintenance. Ils sont souvent rejoints par des spécialistes de la gestion de produits, des testeurs et des concepteurs d'interfaces utilisateur. Ensemble, ces experts rationalisent les opérations pour déployer rapidement de nouvelles applications et mises à jour de code afin de soutenir et d'améliorer l'efficacité de l'ensemble de l'entreprise.

DevOps repose sur la maîtrise du développement et de l’exploitation des logiciels tout au long de leur cycle de vie. Les responsables de la maintenance doivent soutenir les développeurs, et les développeurs sont chargés de comprendre bien plus que les API utilisées dans les systèmes. Ils doivent comprendre ce qui se cache sous le capot (c'est-à-dire comment fonctionnent le matériel et les systèmes d'exploitation) afin de pouvoir mieux gérer les bogues, résoudre les problèmes et interagir avec les techniciens de service.

Les administrateurs système peuvent rejoindre une équipe DevOps s'ils souhaitent apprendre les dernières technologies et sont ouverts aux idées et solutions innovantes. Comme je l'ai déjà dit, ils n'ont pas besoin de devenir des programmeurs à part entière, mais maîtriser un langage de programmation comme 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 eux-mêmes et soient souvent perçus comme des solitaires, dans DevOps, ils vivent une expérience complètement opposée, où tous les acteurs du processus interagissent les uns avec les autres.

Le thème de l'automatisation devient de plus en plus pertinent. Les administrateurs système et les spécialistes DevOps souhaitent évoluer rapidement, réduire les erreurs, ainsi que rechercher et corriger rapidement les erreurs existantes. Ainsi, l’automatisation est un concept où convergent deux domaines. Les administrateurs système sont responsables des services cloud tels qu'AWS, Azure et Google Cloud Platform. Ils doivent comprendre les principes d'intégration et de livraison continues et savoir utiliser des outils tels que Jenkins.

De plus, les administrateurs système doivent utiliser des outils de configuration et de gestion tels que Ansible, nécessaire au déploiement parallèle de dix ou vingt serveurs.

Le concept principal est infrastructure en tant que code. Le logiciel est tout. En effet, pour que le métier d'administrateur système ne perde pas de sa pertinence, il suffit de changer un peu d'accent. Les administrateurs système travaillent dans le secteur des services et doivent être capables de communiquer efficacement avec les développeurs, et vice versa. Comme on dit, une tête c’est bien, mais 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 a beaucoup de fonctionnalités. Vous n’apprendrez probablement jamais toutes les commandes Git, mais vous comprendrez exactement pourquoi il s’agit d’un élément essentiel de la communication et de la collaboration logicielle. Une connaissance approfondie de Git est très importante si vous travaillez dans une équipe DevOps.

Si vous êtes administrateur système, vous devez mieux étudier Git, comprendre comment le contrôle de version est construit et mémoriser les commandes courantes : statut git, git commit -m, git add, git pull, git push, git rebase, branche git, git diff et d'autres. Il existe de nombreux cours et livres en ligne qui peuvent vous aider à apprendre ce sujet à partir de zéro et à devenir un professionnel doté de compétences spécifiques. Il y a aussi de merveilleux aide-mémoire avec les commandes Git, vous n'avez donc pas besoin de tous les entasser, mais plus vous utiliserez Git, plus ce sera facile.

Conclusion

En fin de compte, c'est vous qui décidez si vous devez devenir un spécialiste DevOps ou s'il est préférable de rester administrateur système. Comme vous pouvez le constater, il y a une courbe d’apprentissage pour faire la transition, mais plus tôt vous commencerez, mieux ce sera. Choisissez un langage de programmation et apprenez simultanément 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: habr.com

Ajouter un commentaire