Définition : Ingénieur DevOps, un métier de plus en plus prisé

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 ?

Combien gagne un Expert DevOps ?

On n’attrape pas des mouches avec du vinaigre…
En moyenne, le salaire annuel brut d’un ingénieur DevOps junior est entre 30k et 45k ; contre 50k-60k pour un profil plus expérimenté.

Il faut vraiment voir l’ingénieur DevOps comme la pierre angulaire de votre usine de développement logiciel : au même titre qu’un Architecte Logiciel ou qu’un Chef de Produit sont clés, l’ingénieur DevOps ne doit pas être vu comme un « SysOps » au rabais ou bien un « développeur qui a mal tourné ».

Si votre objectif c’est de livrer une nouvelle version de votre application tous les mois, investir entre 45k et 60k bruts par an est de l’argent très bien dépensé.

 

SkillValue vous permet de :

 

Recruter des ingénieurs DevOps

 

Évaluer vos ingénieurs DevOps

 

Sélectionner des freelancers DevOps

 

Tester vos compétences DevOps

 

Trouver des projets DevOps

 

Découvrez aussi :

Fiche Métier – Développeur Full-Stack

Fiche Métier – Data Scientist

Fiche Métier – Ingénieur DevSecOps