Le DevOps… Qu’est-ce que c’est ? Lumières sur ce procédé qui rend plus concrets et rapides vos projets de développement.
Qu’est-ce que le DevOps ?
Le DevOps est la pratique qui consiste à combiner les outils du développement logiciel (Dev) et l’exploitation logicielle (Ops). Le terme a été introduit pour la première fois lors de la conférence Agile Toronto 2008 par les développeurs et technologues Patrick Debois et Andrew Shafer.
Le DevOps permet aux développeurs et aux équipes opérationnelles de travailler ensemble pour innover plus rapidement. Les entreprises trouvent grâce à DevOps la capacité d’évoluer à un rythme plus rapide pour répondre aux conditions du marché et aux attentes des clients.
La vie avant le DevOps
Lorsqu’une entreprise propose des produits en ligne, son équipe de développeurs écrit du code pour les nouveaux produits, les nouvelles fonctionnalités, les mises à jour de sécurité et les corrections de bogues. Dans un processus traditionnel de cycle de vie de développement logiciel, il faut des semaines pour que le travail de l’équipe de développement soit mis en production.
Lorsque le code de l’équipe de développement est finalement déployé dans l’environnement de production, il arrive que des erreurs ou des problèmes inattendus se produisent. La cause principale réside dans la séparation nette entre l’équipe de développement et l’équipe de production : la première se concentre sur l’écriture de code pour son environnement de développement, sans se soucier de l’environnement de la seconde.
Pour prévenir les problèmes qui apparaissent lorsque le nouveau code est déployé dans l’environnement de production, l’équipe des opérations exige habituellement que les déploiements de code soient planifiés et ne soient autorisés qu’une fois par mois dans la plupart des cas.
Une fois le code déployé dans l’environnement de production, l’équipe des opérations est responsable des diagnostics d’erreurs ou des problèmes causés par les changements.
Le fonctionnement avec DevOps
Le DevOps est né de la volonté d’établir un lien entre ces deux équipes pour éviter ces dysfonctionnements dans la chaîne de fabrication, et gagner en rapidité et en efficacité.
L’adoption de la philosophie DevOps exige un nouvel état d’esprit, de nouveaux outils et de nouvelles compétences. Le DevOps intègre les équipes de développement et d’exploitation afin d’améliorer la collaboration et la productivité en automatisant l’infrastructure, le déroulement des opérations et la mesure continue des performances des applications.
La mise en œuvre de DevOps
Auparavant, les logiciels étaient créés à partir de zéro dans un processus très complexe et long, alors que le DevOps permet d’assurer que le nouveau logiciel fonctionnera immédiatement sur un ensemble diversifié de systèmes d’exploitation et de plateformes.
Les tests et le déploiement sont maintenant beaucoup plus fréquents. Les développeurs communiquent dès le début du processus et régulièrement avec l’équipe d’exploitation. Le personnel des opérations apporte ses connaissances de l’environnement de production à la conception des environnements de test et de mise en scène.
La mise en œuvre de DevOps suit trois phases.
- Les tests automatisés
Les tests automatisés sont à la base du DevOps. Il s’agit d’écrire des tests à l’intérieur du code afin que chaque modification du code puisse être évaluée en fonction de l’échec ou non du test.
- Intégration continue
Une fois la phase 1 aboutie, l’ensemble du processus de tests est alors automatisé. Jenkins est l’un des outils les plus populaires utilisés pour mettre en œuvre l’intégration continue.
Le concept est basé sur le fait d’avoir un certain nombre de serveurs en arrière-plan pour tester le code et l’exécuter à travers chaque itération possible – afin de savoir s’il peut créer un bug – de manière automatisée. Jenkins produira ensuite un rapport à la fin de ce processus : Quelle est la couverture du code ? Le test a-t-il échoué ou réussi ? etc.
- Livraison continue
C’est la phase concrète qui apporte la valeur commerciale réelle de DevOps. La base consiste à écrire du code en petits morceaux (nouvelles fonctionnalités, correction de bugs…) qui sont intégrés, testés, surveillés et déployés.
L’ingénieur DevOps
Encore méconnu en France, le métier d’ingénieur DevOps est en plein essor aux États-Unis. Ils ont compris qu’utiliser le DevOps permet de déployer du code plus souvent avec beaucoup moins de bogues.
Un ingénieur DevOps doit briller dans trois domaines de compétence :
- Le codage ;
- La réingénierie des processus ;
- La capacité à communiquer et créer des ponts entre les équipes.
Il n’existe pas de cursus scolaire qui mène à devenir ingénieur DevOps. Il s’agit soit de développeurs qui s’intéressent au déploiement et à l’exploitation du réseau, soit d’administrateurs système qui se passionnent pour le script et le codage. Ils se lancent alors dans le développement où ils peuvent améliorer la planification des tests et du déploiement.
> En savoir plus sur le métier Administrateur Système
Quoi qu’il en soit, il s’agit de personnes qui ont dépassé leurs domaines de compétences définis. Ils ont une vision beaucoup plus globale de leur environnement technique.
Les ingénieurs DevOps combinent les compétences de l’analyste d’affaires avec les compétences techniques pour construire la solution. Ils doivent connaître parfaitement l’entreprise pour comprendre quels problèmes affectent l’entreprise et comment.
Bien que le métier de DevOps ne soit pas encore parfaitement défini, un ingénieur doit posséder les capacités suivantes :
- Savoir utiliser une grande variété de technologies et d’outils open source,
- Savoir coder,
- Posséder l’expérience des systèmes et des opérations informatiques,
- Savoir mettre en place des tests et des déploiements fréquents et incrémentiels du code,
- Avoir une parfaite maîtrise des outils d’automatisation,
- Savoir traiter la gestion de données,
- Être un habile directeur des ressources humaines qui peut collaborer avec des profils très divers.
Ingénieur DevOps se profile comme un métier d’avenir mais il n’est accessible qu’aux personnes ayant des connaissances très diversifiées. Cela correspond-il à votre profil ?