DevOps : maîtrisez la démarche, des outils au métier
Combinant équipes de développeurs et d'exploitation informatique, l'approche DevOps vise l'efficience opérationnelle. Le point sur les solutions pour l'outiller et sur le métier de DevOps, de la formation au salaire.
Avis du JDN sur le DevOps
"Le DevOps est devenu un point de passage obligé de tout projet de développement d'entreprise. Cette démarche promeut un alignement du développement d'application sur les contraintes de déploiement. En rapprochant les devs et les ops, elle est synonyme d'efficience opérationnelle et de performance applicative. Les deux profils travaillant désormais de concert tout au long du cycle de vie de l'application, et plus de manière indépendante comme cela était le cas il y a quelques années."
DevOps : c'est quoi ? (définition)
Conceptualisé en 2009 en Belgique par l'informaticien Patrick Debois, le DevOps est un mouvement qui vise à concilier deux corps de métier : le développeur logiciel (dev) d'une part, l’administrateur en charge des opérations informatiques (ops) d'autre part. Deux profils qui poursuivent historiquement des objectifs antagoniques. Le développeur a pour mission de créer et faire évoluer (ou build) des applications à moindres coûts, et parfois au détriment de leur performance et de leur stabilité. Quant aux ops, ils se chargent de leur mise en production (ou run) en se portant garant ensuite de leur disponibilité et de leur temps de réponse. Une équation difficile à résoudre si chacun travail dans son coin.
En intégrant les devs et les ops à l'équipe de projet, le DevOps vise à casser le mur existant entre les deux mondes. L'enjeu ? Prendre en considération les contraintes de déploiement dès la phase de programmation. Avec pour objectif d'appliquer la logique des méthodes agiles à l'ensemble de l'activité informatique, le DevOps se concrétise par la mise en place de pipelines d'intégration et de livraison continues (CI/CD) courts. Ces derniers ayant pour vocation d'automatiser et de monitorer l'ensemble du cycle de vie des applications, des phases de test jusqu'à la mise en production.
Pourquoi faire du DevOps ?
En prônant la coopération entre les développeurs (dev) et les responsables de la production informatique (ops), le DevOps vise une expérience digitale plus efficiente pour les utilisateurs d'applications, qu'ils soient collaborateurs ou clients. En prenant en compte les contraintes de production informatique dès la phase de programmation, les logiciels sont de facto plus performants. Ils engendrent ensuite moins de bugs et de failles de sécurité.
Une fois les applications déployées, les administrateurs systèmes et équipes de développeurs continuent de collaborer. Objectif : résoudre tout problème qui pourrait survenir autour du logiciel. Des problèmes qui peuvent provenir de l'application en tant que telle ou de ses dépendances avec d'autres couches du système d'information (serveur d'applications, serveur physique, clusters...). Là encore, le travail main dans la main des deux partis prend tout son sens. Les incidents sont solutionnés plus rapidement. L'enjeu du DevOps est ainsi d'améliorer la satisfaction des utilisateurs.
Quels sont les fondamentaux de DevOps ?
Le DevOps recouvre une série de principes :
- La gestion des configurations,
- La CI/CD (intégration et livraison continues),
- L'automatisation des tests,
- L'observabilité et le monitoring applicatif.
Comment fonctionne le DevOps ?
Le DevOps implique un rapprochement des équipes de développement et d'opération IT. Ce qui nécessite un profond changement de culture, ces profils travaillant historiquement chacun de leur côté.
C'est quoi un ingénieur DevOps ?
Le mouvement DevOps a donné naissance à un nouveau métier star de la tech : l'ingénieur DevOps. L'ingénieur DevOps fait partie des profils IT les plus recherchés. En ligne avec la logique DevOps, sa mission première est de faire le lien entre les développeurs et les administrateurs IT. Il supervise notamment les tests et les mises en production et s'assure que les applications atteignent les performances attendues. Du coup, son profil de compétences est hybride. Il doit combiner des savoir-faire en développement et test applicatifs et en production informatique.
En parallèle, l'ingénieur DevOps doit évidemment faire preuve de capacités relationnelles, en management, et être capable de faire collaborer des profils différents avec des objectifs opposés. Enfin, il doit intégrer des compétences en pilotage et supervision de CI/CD.
Quelle formation pour devenir un DevOps ?
L'expert DevOps étant considéré comme un nouveau métier, il n’existe aucune formation qui lui soit dédiée spécialement. Toutefois, un parcours d’ingénieur informatique (Bac +5) en université ou en école d’ingénierie est apprécié par les recruteurs. Pour les candidats sans expérience, il est possible de prétendre à un poste de DevOps junior.
Accéder au poste d'ingénieur DevOps implique évidemment des compétences en développement et en administration de systèmes. Un tel profil pourra être passé par un poste de développeur ou d'administrateur IT.
Quel est le salaire d'un DevOps ?
Le salaire brut mensuel pour un expert DevOps débutant avoisine les 3 000 euros. Plus le profil est rare et les compétences pointues, plus la rémunération est élevée. Un expert DevOps confirmé peut ainsi espérer gagner entre 45 000 et 60 000 euros brut en un an. Quant à un DevOps sénior, sa rémunération pourra grimper à 70 000 euros brut par an. Selon le cabinet de recrutement Robert Half, un ingénieur DevOps gagne de 51 500 à 79 000 euros brut par an.
Quels sont les outils du DevOps ?
Pour mener à bien ses missions, le DevOps doit avoir plusieurs outils à sa disposition. Parmi les plus courants (et indispensables), on peut évoquer :
- Les outils de gestion de code source (tel GitHub),
- Les outils d’intégration et de déploiement continus type CI/CD (comme GitLab),
- Les outils de gestion de configuration (par exemple Ansible),
- Les outils d'infrastructure as a code (comme Terraform)
- Les orchestrateurs de conteneurs logiciels (Kubernetes et Docker),
- Les outils de monitoring et alerting (Grafana et Kibana).
DevOps sur AWS
Pour le DevOps, le cloud d'Amazon (Amazon Web Services) facilite la mise en service, le déploiement et la gestion d’applications. En ligne avec les besoins des DevOps, les services proposées sur ce terrain par AWS s’accompagnent d’une automatisation de certains process et d’un suivi des performances. Au programme : AWS CodePipeline et AWS CodeStar (pour le CI/CD), AWS CodeBuild (création et test de code) et AWS CodeDeploy (automatisation du déploiement).
DevOps sur Microsoft Azure
A l'instar d'AWS, le cloud de Microsoft (Azure) intègre les principales briques de la chaîne du DevOps au travers une offre dédiée baptisée Azure DevOps. Au programme de cette suite d'outils : CI/CD (avec Azure Pipelines), gestion de versions d'application (avec Azure Repos), gestion de tests (avec Azure Test Plans), etc.
GitLab Auto DevOps
Proposé par GitLab, le service GitLab Auto DevOps permet au DevOps de déposer son code source sur la plateforme collaborative du même nom. Objectif : permettre à plusieurs utilisateurs de travailler sur un projet commun et uniformiser le résultat final. Des options de déploiement continu, de monitoring et de sécurité applicative sont disponibles pour couvrir l’ensemble du travail du DevOps.
DevOps avec Jenkins
Figurant parmi les solutions de référence des DevOps, Jenkins est un outil d’intégration continue disponible en open source. Il présente une interface compatible avec des gestionnaires de versions tels que Git, CVS ou Subversion.
DevOps vs Agile
L’émergence du métier (et du mouvement) DevOps découle directement des méthodes agiles. Comme indiqué plus haut, le DevOps se base sur le rapprochement des métiers de développeur (dev) et d'administrateur IT (ops) en vue d'améliorer l'efficience opérationnelle des applications. Quant aux méthodes agiles, elles ont pour but d'améliorer la performance de la gestion de projet. En alignant devs et ops sur un objectif commun, le DevOps vise ni plus ni moins qu'à d'appliquer la démarche agile à l'ensemble de la chaine informatique, de la création d'applications à leur exploitation.