Publié le : 26/07/2020
Définition : Ingénieur DevOps, un métier de plus en plus prisé
En continuant l’explication sur ce que c’est un DevOps que nous avons parlé sur l’article : « En quoi consiste le DevOps », il nous fallait parler des opportunités que le DevOps offre. L’une de ces opportunités est de travailler en tant qu’Ingénieur DevOps. Dans cet article, une définition de ce que doit faire un Ingénieur DevOps. Cet article a été pris en intégralité sur le site de SkillValue car nous avons vu que les différentes informations qui y sont mentionnés reflète complètement la philosophie de smart-tech.mg en ce qui concerne le travail que doit effectuer un ingénieur DevOps.
Ecrit par : bfillon
DevOps est la contraction de « Developer » et de « Operations » : « Operations » est à prendre au sens « Exploitation » c’est-à-dire le quotidien / l’exploitation d’une application livrée par un développeur.
Le terme DevOps désigne d’abord une nouvelle culture et organisation d’entreprise qui a pour ambition de désiloter les départements dédiés au développement et à la production. En effet, traditionnellement les équipes de développement et les équipes de production sont séparées et parfois même étanches, ne parlant qu’au travers de mails et de procédures.
L’ingénieur DevOps est là pour effacer les frontières entre développement et production, , notamment grâce à l’automatisation des process.
Rôles et missions d’un ingénieur DevOps
L’objectif d’un ingénieur DevOps est de mettre en place l’automatisation complète de la mise en production d’une application depuis le commit d’un fichier par un développeur : il faut réduire au maximum les interventions humaines pour accélérer les livraisons.
Pour fiabiliser les livrables, il doit s’assurer qu’un processus répétable est mis en place pour vérifier la qualité du logiciel développé : cela passe par une chaîne d’outils de contrôles qui vont s’exécuter à chaque étape.
Selon la maturité de l’équipe et la criticité du logiciel, il doit mettre en place par exemple un
« Gated check-in » qui va s’assurer que tous les tests unitaires s’exécutent avec succès. Il peut également intégrer des outils de contrôle de la qualité du code source ou bien des scénarios de tests utilisateur. A chaque étape, les outils doivent décider automatiquement d’accepter ou de rejeter le build candidat à la mise en production.
Le rôle d’un expert DevOps comprend également une large dimension humaine. En effet, afin d’implémenter cette nouvelle philosophie et faire en sorte qu’elle perdure, il doit favoriser la communication et la transparence entre les deux équipes… qui doivent n’en faire qu’une au final. In fine, l’équipe gagne alors en Agilité et flexibilité.
Les compétences d’un ingénieur DevOps
C’est un rôle pivot qui nécessite une excellente compréhension des étapes de fabrication d’un logiciel ainsi que les enjeux du déploiement de ce même logiciel sur divers environnements avant d’atteindre la production.
Les compétences techniques à maîtriser sont vastes :
- Langages de programmation utilisés par l’équipe de développement avec laquelle il travaille : que ce soit du Mobile, du Front ou du Back
- Outils de construction (exemple : Jenkins, Team Foundation Server) ainsi qu’outils de virtualisation / images tels que Docker, Kubernetes ou Vagrant
- Repository de code : Git, SVN ou Team Foundation Server
- Langages de scripting : bash / powershell ou Korn-shell
- Systèmes d’exploitation (Linux / Windows)
- Fournisseurs de services IaaS ou PaaS (AWS / Azure ou OVH par exemple)
- Outils de tests automatisés (QTP) ou bien outils de monitoring des déploiements (Octopus Deploy par exemple)
- Méthodes Agiles
- Sens de la Data pour nourrir le développement et la production
- Sécurité des données
- Principes de fonctionnement d’un système serveur
Bien sûr, chaque ingénieur DevOps ne peut tout maîtriser et il faut donc qu’il sache rapidement se former à des outils ou des technologies de déploiement novatrices : c’est un métier assez neuf où l’ingénieur DevOps fait parfois figure d’homme-orchestre.
Si la maîtrise technique est importante, encore une fois, il ne faut pas oublier les qualités de l’ingénieur DevOps. Outre le management d’une équipe, il doit être à l’écoute du client et des équipes pour comprendre le besoin, le formuler dans un langage technique pour les uns ou le vulgariser pour les autres.
Ingénieur DevOps : quelles formations ?
Pas de formation initiale permettant réellement de devenir DevOps : ce sont généralement des développeurs qui sont intéressés par les aspects déploiement ou bien des ingénieurs exploitation soucieux de mieux travailler avec les équipes de développement.
Comment évaluer les compétences d’un ingénieur DevOps ?
Vu que par définition c’est un « homme-orchestre » il est difficile de trouver l’ingénieur DevOps « parfaitement » adapté à vos besoins.
Ce serait stupide pour ce genre de rôle d’avoir une approche de sélection « par mots-clés » ou de se baser uniquement sur des tests techniques ciblés (même si cela peut permettre d’affiner ou de mettre en exergue des compétences sur un outil en particulier).
Je préconise plutôt d’avoir :
- Une approche « process » : est-ce que l’ingénieur DevOps que vous souhaitez sélectionner est capable de décrire le process et les environnements de manière claire ?
- Une approche « outils » : quels environnements techniques a-t-il utilisés et est-il capable de citer des équivalences ? Par exemple, si vous tombez sur un expert AWS et qu’il ne connaît pas Azure, vous pouvez vous poser de sérieuses questions
- Une approche « veille technologique » : quelles sont ses sources de lecture pour rester au top dans un domaine où chaque semaine un nouvel outil émerge ou bien est mis à jour ?
Source : https://skillvalue.com/fr/blog/tech-skills/ingenieur-devops-definition/