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.
Je travaille main dans la main avec les équipes de développements, les administrateurs systèmes et les ingénieurs qualité (QA).
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.
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.