Ingénieur.e DEVOPSIngénieur.e DEVOPS
Fiche métier tech

Ingénieur.e DEVOPS

Autres intitulés :

Ingénieur CI/CD, Ingénieur Intégration, Ingénieur Système

Je m’occupe de la gestion et du support de l’environnement utilisé pour fabriquer et tester de manière automatique le plus souvent possible. Mon rôle est de mettre en place, administrer et supporter l’ensemble des systèmes informatiques qui permettent de gagner en fluidité.
PostulerBesoin de ce profil ?

Définition

Qu’est-ce qu’un.e

Entant qu'ingénieur DevOps, je fais le pont entre le développeur et l’administrateur système. Expert de la méthodologie DevOps, mon rôle consiste à mettre en place un ensemble de bonne pratiques, d’outillages et des processus de déploiement automatisés afin d’optimiser le cycle de développement applicatif et de réduire au maximum les problèmes de régression et dysfonctionnement liés à l’évolution de l'application.  

Dans le modèle traditionnel, les équipes de développement et d'exploitation ne partageait pas les mêmes compétences, poursuivaient des objectifs différents et travaillaient indépendamment l’un de l’autre. Les développeurs codaient de nouvelles fonctionnalités et s’occupaient des tests. En fin de cycle, ils passaient le relai à l’équipe exploitation, en charge du déployer l’application sur l’environnement de production et de maintenir la disponibilité, l’intégrité, la sécurité et la performance de l’application après son lancement.  

Aujourd’hui, avec les méthodes de développement Agile et notamment avec l’approche DevOps et avec le principe du CI/CD (Continuous Integration, Continuous Development), on procède différemment. On va livrer le code par lots, mettre en production rapidement, 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. Les cycles de production doivent suivre cette cadence sans que la qualité n’en soit compromise.

Dans ce nouveau contexte, mon rôle permet de connecter efficacement ces deux cycles, en faisant le lien entre les actions requises pour modifier rapidement une application et les tâches à accomplir pour assurer sa fiabilité, ce qui permet de diminuer considérablement la complexité du processus de déploiement.  

Missions

Quelles sont les missions d’un.e

  • J'organise le déploiement régulier des applications  
  • J’assure la surveillance des plateformes, des alertes et éventuels incidents sur les différents environnements
  • Je décale les tests « au plus tôt » dans le cycle de développement ;  
  • Je pratique des tests dans un environnement similaire à celui de production  
  • J’effectue une intégration continue incluant des « tests continus »  
  • Je surveille étroitement l’exploitation et la qualité de production via des métriques factuelles.
  • J’analyse et résout les anomalies liées à la performance et à la scalabilité des systèmes.
  • Je participe au processus d’amélioration continue en entretenant les méthodes, standards et outils.

Compétences

Quelles compétences techniques pour un.e

  • Je maîtrise les outils d’intégration continue (ex : Jenkins) ainsi que des outils de conteneurisation tels que Docker, Kubernetes ou Vagrant
  • Je maîtrise les environnements Git ou SVN
  • Je maîtrise les langages de scripting : Perl, Shell, Python ou Bash / PowerShell…
  • Je suis à l’aise sur les systèmes d’exploitation (Linux / Windows)
  • Fournisseurs de services IaaS ou PaaS (AWS / Azure ou OVH par exemple)
  • J’utilise les outils de tests automatisés (QTP) ou bien des outils de monitoring des déploiements (Octopus Deploy par exemple)

Compétences

Quels sont les soft skills pour être un.e bon.ne

  • Je suis curieux
  • J’ai le sens du travail en équipe
  • J’aime apprendre continuellement de nouvelles technologies (adaptabilité aux nouvelles technos)
  • J’ai le sens du détail

écosystème

Qui sont les principaux interlocuteur.ice.s d’un.e

Je travaille main dans la main avec les équipes de développements, les administrateurs systèmes et les ingénieurs qualité (QA).

Architecte système
Infrastructure

Architecte système

Architecte système

Mon rôle est de construire et faire évoluer le SI ou les sous-systèmes de l’entreprise. Je garantis la bonne circulation de l’information et sa cohérence par rapport aux besoins exprimés par le client. Entre expertise informatique et stratégie, j’opère la liaison entre les instances de direction et les équipes tech.
Lire plus ...
Chef.fe de projet IT
Product

Chef.fe de projet IT

Chef.fe de projet IT

Mon rôle de chef de projet est de spécifier, organiser et planifier la mise en œuvre d’un projet, depuis sa phase de conception, jusqu’à son déploiement en s’appuyant sur des ressources internes ou externes.
Lire plus ...
Développeu.r.se
Développement

Développeu.r.se

Développeu.r.se

Je suis un expert des langages informatiques, mon rôle est de traduire la demande d'un client en lignes de code informatique. Ainsi je réalise l'ensemble des fonctionnalités techniques d'un site ou d'une application web.
Lire plus ...
Responsable qualité (QA)
Développement

Responsable qualité (QA)

Responsable qualité (QA)

Je suis garant de la qualité du code produit, mon rôle est de concevoir et mettre en œuvre un ensemble de tests fonctionnels et techniques, détecter les bugs éventuels et les cas limites d’utilisation, ainsi les développeurs pourront corriger les problèmes.
Lire plus ...

Formation

Quelles formations / études permettent de devenir un.e

Côté formation, il n’existe pas à ce jour de cursus spécifique mais étant donné la polyvalence et complexité de ce rôle, il est habituellement requis d'avoir un diplôme de niveau Bac+5(diplôme d’ingénieur en informatique ou son équivalent universitaire) pour exercer entant qu’ingénieur DevOps.  

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.

Néanmoins, des postes débutants d’ingénieur DevOps junior existent. La personnalité, le sens de la qualité et du service, et le côté “geek” font alors la différence entre deux candidats.

Evolution

Quelles sont les perspectives de carrière d’un.e

Entant qu'ingénieur DevOps, je fais le pont entre le développeur et l’administrateur système. Expert de la méthodologie DevOps, mon rôle consiste à mettre en place un ensemble de bonne pratiques, d’outillages et des processus de déploiement automatisés afin d’optimiser le cycle de développement applicatif et de réduire au maximum les problèmes de régression et dysfonctionnement liés à l’évolution de l'application.  

Dans le modèle traditionnel, les équipes de développement et d'exploitation ne partageait pas les mêmes compétences, poursuivaient des objectifs différents et travaillaient indépendamment l’un de l’autre. Les développeurs codaient de nouvelles fonctionnalités et s’occupaient des tests. En fin de cycle, ils passaient le relai à l’équipe exploitation, en charge du déployer l’application sur l’environnement de production et de maintenir la disponibilité, l’intégrité, la sécurité et la performance de l’application après son lancement.  

Aujourd’hui, avec les méthodes de développement Agile et notamment avec l’approche DevOps et avec le principe du CI/CD (Continuous Integration, Continuous Development), on procède différemment. On va livrer le code par lots, mettre en production rapidement, 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. Les cycles de production doivent suivre cette cadence sans que la qualité n’en soit compromise.

Dans ce nouveau contexte, mon rôle permet de connecter efficacement ces deux cycles, en faisant le lien entre les actions requises pour modifier rapidement une application et les tâches à accomplir pour assurer sa fiabilité, ce qui permet de diminuer considérablement la complexité du processus de déploiement.