definition ingenieur devops

Définition : Le DevOps

Définition Ingénieur DevOps

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.

Traditionnellement, équipes de développement et é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.

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.

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)

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.

Formations possibles

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 ?

Salaires

On n’attrape pas des mouches avec du vinaigre…

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 :

 

Découvrez aussi :

Fiche Métier – Développeur Back-End

Fiche Métier – Développeur Front-End

Fiche Métier – Développeur JavaScript

Fiche Métier – Développeur Mobile

Fiche Métier – Développeur Python

Fiche Métier – Développeur JAVA

Fiche Métier – Développeur PHP

Fiche Métier – Développeur Android

Fiche Métier – Développeur Full-Stack

Fiche Métier – Développeur Ruby on Rails

Fiche Métier – Data Scientist

Fiche Métier – Développeur .NET