Pourquoi les administrateurs système doivent-ils devenir des ingénieurs DevOps ?

Pourquoi les administrateurs système doivent-ils 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 sujet de DevOps est plus pertinent que jamais. On dit que les jours des administrateurs système sont révolus, tout comme l'ère des mainframes. Mais est-ce vraiment le cas ?
Comme c'est souvent le cas dans le secteur de l'informatique, la situation a changé. La méthodologie DevOps est apparue, mais elle ne peut exister sans une personne ayant des compétences d'administrateur système, c'est-à-dire sans Ops.

Avant que l'approche DevOps n'atteigne sa forme moderne, je me considérais comme un Ops. Et je sais bien ce qu'éprouve un administrateur système en réalisant combien de choses il ne sait pas encore et combien de temps il lui reste pour apprendre.

Pourquoi les administrateurs système doivent-ils devenir des ingénieurs DevOps ?

Mais est-ce vraiment si effrayant ? Je dirais qu'il ne faut pas considérer le manque de connaissances comme un grand problème. C'est plutôt un défi professionnel.

Les produits à grande échelle sont basés sur Linux ou d'autres logiciels open source, et le marché compte de moins en moins de spécialistes capables de les maintenir. La demande a déjà dépassé l'offre de professionnels dans ce domaine. Un administrateur système ne peut plus se contenter de travailler sans améliorer ses compétences. Il doit avoir des compétences en automatisation pour gérer de nombreux serveurs/nœuds et bien comprendre les principes de leur fonctionnement pour résoudre les problèmes qui se présentent.

Avant de devenir membre d'une équipe DevOps, vous devrez parcourir un chemin 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 habituelle à la nouvelle conception DevOps ? Tout commence par un changement de mentalité. Il n'est pas facile de renoncer à l'approche que vous avez suivie pendant les dix ou vingt dernières années et de commencer à faire les choses différemment, mais c'est nécessaire.

Tout d'abord, il est important de comprendre que DevOps n'est pas un poste spécifique au sein de l'entreprise, mais un ensemble de pratiques définies. Ces pratiques impliquent la répartition de systèmes isolés, la réduction des dommages causés par des bogues et des erreurs, la mise à jour fréquente et opportune des logiciels, une interaction fluide entre les développeurs (Dev) et les administrateurs (Ops), ainsi qu'un test constant non seulement du code, mais de l'ensemble de la structure dans le cadre du processus d'intégration et de livraison continues (CI/CD).

Parallèlement à un changement de mentalité, il faut apprendre à maintenir l'infrastructure et à garantir son bon fonctionnement, sa fiabilité et sa disponibilité pour une intégration et une livraison continues d'applications, de services et de logiciels.

Ce qui peut vous manquer en tant que spécialiste Ops, ce sont des compétences en programmation. Aujourd'hui, l'écriture de scripts, que les administrateurs systèmes utilisent pour l'installation automatisée de correctifs sur le serveur, la gestion des fichiers et des comptes, pour le dépannage et la documentation, est déjà considérée comme obsolète. Dans des cas relativement simples, les scripts sont encore utilisés, mais le concept de DevOps implique la résolution de tâches à grande échelle, qu'il s'agisse de mise en œuvre, de tests, de travail avec des builds ou de déploiement.

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 évolution l'automatisation de l'infrastructure en DevOps nécessite cette compétence.

Que faire ? Pour rester un professionnel recherché, vous devez acquérir des compétences pertinentes — maîtriser au moins un langage de programmation, par exemple Python. Pour une personne qui se consacre professionnellement à l'administration, cela peut sembler difficile, car elle a tendance à penser que seuls les développeurs programment. Il n'est pas nécessaire de devenir un expert, mais connaître l'une des langages de programmation (cela peut être Python, Bash ou même Powershell), constituera certainement un atout.

Pour apprendre à programmer, il faut un certain temps. Soyez attentif et patient, cela vous aidera à garder une compréhension claire lors de vos échanges avec les développeurs de l'équipe DevOps et les clients. Trente minutes par jour, une heure ou plus — l'apprentissage d'un langage de programmation doit devenir votre objectif principal.

Les administrateurs système et les spécialistes DevOps résolvent des problèmes similaires, mais il existe des différences importantes. On considère souvent qu'un administrateur système ne peut pas faire tout ce qu'un ingénieur DevOps peut faire. En effet, un administrateur système se concentre davantage sur la configuration, la maintenance et l'assurance du bon fonctionnement des systèmes serveurs, tandis que l'ingénieur DevOps gère tout cela et bien plus encore.

Mais cette affirmation est-elle vraiment correcte ?

Administrateur système : seul dans le champ, mais efficace

Malgré les différences et similitudes mentionnées dans cet article, je considère qu'il n'y a pas de différence substantielle entre l'administration système et DevOps. Les administrateurs système ont toujours exercé les mêmes fonctions que les spécialistes DevOps, mais auparavant, personne ne les appelait DevOps. Je pense qu'il n'est pas nécessaire de chercher spécifiquement des différences, surtout si cela n'est pas lié à une tâche particulière. Il ne faut pas oublier que, contrairement à un administrateur système, DevOps n'est pas un poste, mais un concept.

Il est également important de noter un autre aspect sans lequel la discussion sur l'administration et DevOps serait incomplète. L'administration système, dans son sens traditionnel, implique que le spécialiste dispose d'un ensemble spécifique de compétences et soit orienté vers la maintenance de différents types d'infrastructures. Pas dans le sens d'un employé universel, mais en ce sens qu'il existe un certain nombre de tâches effectuées par tous les administrateurs.

Par exemple, ils doivent parfois faire office de polyvalents techniques, c'est-à-dire faire littéralement tout ce qui doit être fait. Et si un tel administrateur est le seul dans toute l'organisation, il effectuera en réalité tout le travail technique. Cela peut aller de l'entretien des imprimantes et photocopieurs à des tâches liées au réseau, comme la configuration et la gestion de routeurs et de commutateurs ou la configuration de pare-feu.

Il sera également responsable de la mise à jour du matériel, de la vérification et de l'analyse des journaux, de l'audit de sécurité, de l'installation de correctifs sur le 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 de scripts est la gestion des comptes utilisateurs et des groupes. La création de comptes utilisateurs et l'attribution de permissions est une tâche extrêmement fastidieuse, car les utilisateurs apparaissent et disparaissent presque chaque jour. L'automatisation par des scripts permet de libérer du temps pour traiter des questions infrastructurelles plus importantes, comme la mise à jour des commutateurs et des serveurs et l'exécution d'autres projets qui affectent la rentabilité de l'entreprise dans laquelle l'administrateur travaille (bien qu'il soit généralement admis que le service informatique ne génère pas de revenus directement).

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èmes travaillent comme membres d'une grande équipe réunissant, par exemple, des administrateurs Linux, Windows, bases de données, stockage, etc. Le calendrier de travail peut également varier. Par exemple, une équipe dans un fuseau horaire termine sa journée et transmet les affaires à l'équipe suivante dans un autre fuseau horaire, afin que les processus ne s'arrêtent pas (suivre le soleil) ; ou les employés ont une journée de travail classique de 9 h à 17 h ; ou bien c'est un travail dans un centre de données fonctionnant 24 heures sur 24.

Au fil du temps, les administrateurs systèmes ont appris à penser stratégiquement et à combiner des tâches importantes avec des tâches de routine. Les équipes et départements dans lesquels ils travaillent manquent généralement de ressources, mais tous s'efforcent néanmoins d'accomplir les tâches quotidiennes dans leur intégralité.

DevOps : développement et maintenance unifiés

DevOps est une sorte de philosophie des processus de développement et de maintenance. Cette approche dans le monde de l'informatique est devenue véritablement novatrice.

Sous l'égide de DevOps, d'un côté se trouve l'équipe des développeurs de logiciels, et de l'autre, l'équipe des spécialistes de l'entretien. Ils sont souvent rejoints par des spécialistes de la gestion des produits, des testeurs et des concepteurs d'interfaces utilisateur. 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 maintenir 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 de leur cycle de vie. Les spécialistes de l'entretien doivent soutenir les développeurs, tandis que ceux-ci doivent comprendre non seulement les API utilisées dans les systèmes. Ils doivent saisir ce qui se cache « sous le capot » (c'est-à-dire, comment fonctionnent le matériel et les systèmes d'exploitation) pour mieux gérer les erreurs, résoudre les problèmes et interagir avec les spécialistes de l'entretien.

Les administrateurs système peuvent rejoindre l'équipe DevOps s'ils souhaitent explorer les technologies les plus récentes et sont ouverts aux idées et solutions innovantes. Comme je l'ai déjà mentionné, ils n'ont pas nécessairement besoin de devenir des programmeurs complets, mais maîtriser des langages de programmation tels que Ruby, Python ou Go les rendra d'une grande utilité au sein de l'équipe. Bien que les administrateurs système effectuent traditionnellement tout leur travail de manière autonome et soient souvent perçus comme des solitaires, en DevOps, ils vivront une expérience complètement à l'opposé, où tous les participants interagissent les uns avec les autres.

La thématique de l'automatisation devient de plus en plus pertinente. Tant les administrateurs système que les spécialistes DevOps sont intéressés par l'évolutivité rapide, la réduction du nombre d'erreurs, ainsi que la recherche et la correction rapides des problèmes existants. Ainsi, l'automatisation est un concept où les deux domaines convergent. Les administrateurs système sont responsables de 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 tels que Jenkins.

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

Le concept principal est — l'infrastructure en tant que code. Le logiciel est dans tout. En effet, pour que le métier d'administrateur système reste pertinent, il suffit de changer un peu l'accent. Les administrateurs systèmes s'occupent de la maintenance et doivent être capables d'interagir efficacement avec les développeurs, et vice versa. Comme on dit, une tête vaut mieux que deux.

Et le dernier élément dans 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 gestion de versions est largement utilisé par les développeurs, les professionnels DevOps, les équipes Agile et bien d'autres. Si votre travail est lié au cycle de vie des logiciels, vous allez certainement travailler avec Git.

Git offre de nombreuses possibilités. Il est probable que vous n'apprendrez jamais toutes les commandes de Git, mais vous comprendrez certainement pourquoi cet outil est considéré comme essentiel pour la communication et la collaboration sur les logiciels. Une bonne connaissance de Git est très importante si vous travaillez dans une équipe DevOps.

Si vous êtes administrateur système, vous devez mieux apprendre Git, comprendre comment fonctionne la gestion des versions et mémoriser les commandes courantes : git status, git commit -m, git add, git pull, git push, git rebase, git branch, git diff et d'autres. Il existe de nombreux cours en ligne et livres qui peuvent vous aider à apprendre ce sujet depuis le début et à devenir un professionnel avec des compétences spécifiques. Il y a aussi d'excellentes fiches de commandes Git, donc il n'est pas nécessaire de toutes les mémoriser, mais plus vous utilisez Git, plus il vous sera facile.

Conclusion

En fin de compte, c'est à vous de décider si vous devez devenir un spécialiste DevOps ou rester administrateur système. Comme vous le voyez, une formation est nécessaire pour faire la transition, mais plus vous commencez tôt, mieux c'est. Choisissez un langage de programmation et étudiez en parallèle des outils comme Git (gestion de versions), Jenkins (CI/CD, intégration continue) et Ansible (configuration et automatisation). Quel que soit le parcours que vous choisissez, n'oubliez pas que vous devez constamment apprendre et améliorer vos compétences.

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster