Ingénieur DevOps

Ingénieur Devops

Ingénieur DevOps : la vie après le développement logiciel ne se résume pas uniquement à des postes fonctionnels comme le test, la gestion de projet ou l’assistance à maîtrise d’ouvrage. De nouveaux métiers s’ouvrent également à vous, comme vous allez le découvrir dans cette fiche métier !

AViSTO recrute des ingénieurs DevOps, rendez-vous sur notre site emploi.

Vous êtes à la recherche d’une société spécialisée en DevOps pour vous aider à fluidifier vos développements ? N’hésitez pas à nous consulter.

Sommaire :

DevOps , c’est quoi ? Définition

DevOps est un concept dual, à plusieurs niveaux.

Tout d’abord, dans son appellation, puisque le terme même est la contraction de « développement » (qui fait allusion à la programmation informatique) et d’ « opérations » (Administration de l’infrastructure informatique).

Ensuite, c’est un métier qui va chercher à faire le pont entre le développeur et l’administrateur système. Avant, on avait deux ingénieurs (ou équipes) qui travaillaient indépendamment l’un de l’autre.
Pour simplifier, dans un modèle traditionnel, les développeurs codaient de nouvelles fonctionnalités, s’occupaient souvent eux-mêmes d’une partie des tests et en fin de cycle transmettaient le tout à l’équipe en charge du déploiement sur les environnements de production, dont les préoccupations principales étaient de maintenir la disponibilité, l’intégrité, la sécurité et la performance de l’application.

Aujourd’hui, avec les méthodes de développement Agile, on procède différemment. On va livrer le code par lots, mettre en production, revenir sur ce qui a été livré en injectant des évolutions et progresser ainsi par petits pas. Les cycles de développement sont beaucoup plus courts, ils peuvent même être réduits à une journée dans certains projets.

C’est là où intervient l’ingénieur DevOps : il va mettre en place un ensemble de processus, d’outillages et automatiser le tout au maximum pour que chaque itération se passe le mieux possible. Il va être l’intermédiaire entre le « dev » et l’« ops ».

Ainsi, on peut même dire qu’au-delà des missions que nous allons décrire un peu plus bas, le DevOps est en fait un courant de pensée qui révolutionne la manière de concevoir les logiciels. Il vise à optimiser la fluidité entre le développement et l’exploitation.

Attention : dans certaines petites structures, on va parfois chercher à rassembler ces deux profils en un, avec pour objectif de mieux concevoir les applications et d’être plus productif. Cela existe, mais un ingénieur DevOps est plutôt là pour faire le lien entre les deux domaines, il n’est pas une sorte de couteau-suisse capable de s’occuper de tout.

DevOps ou ingénieur DevOps ?

Dans la communauté DevOps, parler d’« ingénieur DevOps » n’est pas toujours allé de soi. Pour faire une analogie, on ne parle pas d’un « Ingénieur Agile », mais plutôt d’un ingénieur logiciel capable de mettre en œuvre des méthodes Agile. Pareil pour le DevOps.

Désormais, le terme DevOps étant un peu mieux défini qu’il y a quelques années, le fait d’y accoler le titre d’ingénieur est mieux accepté, même si le consensus n’est pas encore absolu, d’autant plus qu’il n’existe pas de diplôme propre.

Beaucoup de professionnels se disent ainsi « DevOps » lorsqu’on leur demande leur métier.

Métier

Le développeur écrit un logiciel, mais avant qu’il ne soit validé et déployé, il faut ce qu’on appelle un build, une compilation en français et un certain niveau de tests. L’ingénieur DevOps va ainsi s’occuper de la gestion et du support de l’environnement utilisé pour fabriquer et tester de manière automatique le plus souvent possible.
D’un point de vue métier et tâches quotidiennes, il va donc mettre en place, administrer et supporter l’ensemble des systèmes informatiques qui permettent de gagner en fluidité.

Concrètement, cela se traduit par :

  • Un déploiement régulier des applications, la seule répétition contribuant à fiabiliser le processus ;
  • Un décalage des tests « au plus tôt » dans le cycle de développement ;
  • Une pratique des tests dans un environnement similaire à celui de production ;
  • Une intégration continue incluant des « tests continus » ;
  • Une boucle d’amélioration courte ;
  • Une surveillance étroite de l’exploitation et de la qualité de production via des métriques factuelles.

Par exemple, l’ingénieur DevOps va mettre en place des outils d’automatisation de tâches (builds, tests), de sécurité, en vue de réduire le temps entre la fin du processus de développement et l’exploitation du logiciel réalisé, tout en garantissant la qualité.

Autre exemple : lors des builds, des erreurs sont susceptibles d’apparaître. Le DevOps va chercher à comprendre si le problème provient du code, ou bien de l’environnement de compilation.

Ingénieur Devops Compétences

L’ingénieur DevOps est généralement un professionnel expérimenté qui a la capacité de comprendre tout le processus de développement logiciel, des spécifications à la mise en production.

Il sait s’approprier non seulement les exigences fonctionnelles, mais aussi les exigences non fonctionnelles ; autrement dit, tout ce qui n’est pas toujours explicitement demandé dans les spécifications (ex : sécurité, RGPD etc.).

De par sa formation et son parcours, il a plutôt des compétences en administration systèmes et réseaux, ou bien en développement logiciel, mais il a su a minima s’imprégner des problématiques et besoins des deux mondes afin de fluidifier tout le processus.

Voici quelques détails :
Concernant les logiciels et langages de programmation, il faut savoir ce qu’est l’automatisation et en faire avec du scripting, en Shell ou en Python par exemple.

Le développement de nouveaux outils ou la personnalisation de solutions existantes faisant partie de l’activité d’un DevOps, la connaissance des langages de programmation tels que Java, Python et C++ est également souvent nécessaire.

Il faut de même connaître des outils web pour faire du rendu ou du monitoring.

De solides connaissances du domaine de l’administration système en général sont nécessaires, avec des outils Linux en particulier. Par exemple, si un développeur n’arrive pas à compiler son programme, cela peut être un problème relatif à de la gestion de droits.

Voici un schéma rassemblant une liste non-exhaustive de technologies, trouvé sur le site Fresh8 Tech :
Technologies DevOps

Outre ces (nombreuses !) compétences potentielles, il faut aimer la qualité, l’automatisation et avoir le sens du service.

Devenir Ingénieur DevOps

Comment devenir ingénieur DevOps ? A priori, un développeur intéressé par les outils d’administration système peut faire du DevOps. De même, un administrateur système qui connaît les bases du développement et les principaux langages de programmation peut devenir DevOps. Donc il faut savoir coder et s’intéresser à tout un ensemble d’outils.

Côté formation, il n’existe pas à ce jour de cursus spécifique avec un diplôme de niveau Bac+5. Le prérequis est habituellement un diplôme d’ingénieur en informatique généraliste, ou son équivalent universitaire.

Ensuite, le terrain joue un rôle essentiel pour apprendre à maîtriser de nombreuses parties du métier. Il faut donc idéalement justifier d’expériences dans les domaines du développement, de l’administration système, ou de la production de logiciels.

Souvent, cette expérience s’acquiert avec le temps. Néanmoins, des postes débutants, d’ingénieur DevOps junior par exemple, existent : la personnalité, le goût de la qualité, le côté geek et le sens du service font alors la différence entre deux candidats.

Ingénieur DevOps Salaire

Le salaire d’un ingénieur DevOps dépend de tout un ensemble de facteurs (expérience, formation, compétences, entreprise, localisation du poste etc.). Vous pouvez consulter sur Internet un baromètre de salaires.

Pour un ingénieur expérimenté, le salaire est supérieur à 36K€ / an.

Emploi Ingénieur Devops

AViSTO recrute des ingénieurs DevOps à Nice Sophia Antipolis, Paris, Grenoble, Lyon, Rennes, Nantes et Aix-en-Provence ! Les offres sont à retrouver sur notre site emploi.

Autre contenu qui pourrait vous intéresser : découvrez l’ingénieur DevSecOps, dont le rôle consiste à intégrer la sécurité à toutes les étapes des projets DevOps.