Introduction à DevOps

Le terme DevOps est très tendance à l’heure actuelle. Impossible de passer à côté lorsque nous naviguons sur le web, que ce soit sur LinkedIn ou tout autre site traitant du monde professionnel de l’informatique. Mais dans les faits, que se cache derrière DevOps ?

DevOps est un ensemble de principes et pratiques visant à favoriser la communication, la collaboration et l’intégration entre les équipes de développement et d’exploitation.

Historiquement, les projets de développement logiciel étaient conduits selon le modèle waterfall. Ce modèle, bien que logique dans une conduite de projet quelle qu’elle soit, n’est plus du tout optimal dans le développement informatique d’aujourd’hui. En effet, à l’heure des applications distribuées dont la complexité et la taille évoluent de manière exponentielle, un modèle aussi rigide est loin d’être recommandé.

Imaginons par exemple le cas d’une fonctionnalité métier, développée 6 mois auparavant, qui ne convienne plus au client lors de la livraison. Une demande de changement va donc être créée et l’équipe de développement va devoir modifier cette fonctionnalité pour répondre à la demande. Hors depuis 6 mois, de nombreuses couches et dépendances se sont ajoutées, le risque de régression est donc quasi certain.

De ce constat, les méthodes agiles ont donc fait leur apparition afin de palier à cette rigidité du modèle waterfall. En effet, le modèle itératif des méthodes agiles permet une grande réactivité des équipes de développement suite à une demande de changement du client.

Le dernier “goulot d’étranglement” se situe donc entre les équipes de développement (Dev) et les équipes d’exploitation (Ops). Le déploiement des applications d’aujourd’hui est soumis à un grand nombre de contraintes, entre la rédaction d’un document de mise en exploitation pas toujours compris par les équipes Ops ou bien l’impossibilité de déployer une application car le framework utilisé est incompatible avec l’environnement mutualisé cible, les exemples sont multiples. Nous nous retrouvons devant ce que l’on appelle le “mur de la confusion”.

Les conséquences ? Des défaillances applicatives liées à des problèmes de configuration et de mise en production, ainsi que des équipes d’exploitation qui consacrent la majeure partie de leur temps à gérer les versions applicatives.

Mise en oeuvre de DevOps

DevOps repose sur cinq piliers connus sous l’acronyme CALMS (Culture, Automation, Lean, Measurement, Sharing)

Culture

Les membres des équipes doivent avoir la culture du changement. Qu’ils soient habitués au modèle waterfall ou experts Scrum, chacun doit se sensibiliser sur les processus mis en place (automatisation, tests, …)

Automatisation

L’un des aspects clés de DevOps est l’automatisation des processus de la chaine de production (builds, tests, déploiements). L’étape finale de cette automatisation est le déploiement continu.

Lean

Sur le principe de la culture lean), le release management doit être efficace et le déploiement des versions en cohésion avec les attentes des utilisateurs.

Mesure

Dans une démarche d’amélioration continue, des indicateurs doivent être mis en place afin de mesurer la qualité des livrables, mais également tout élément mesurable et bénéfique à l’amélioration.

Partage

Les équipes doivent avoir le même niveau d’information. Cela se concrétise par le partage de la documentation, mais aussi par la communication et la cohésion d’équipe.

Pour conclure

Comme nous avons pu le voir, DevOps n’est pas un outil out of the box. Il s’agit plutôt d’une recette à moduler selon les exigences et contraintes d’un projet et/ou des équipes. Quelques leviers de mise en oeuvre sont toutefois primordiaux :

  • Un développement itératif selon les méthodes agiles
  • Une intégration continue avec le processus de build
  • Des tests automatisés (unitaires, performances, fonctionnels)
  • Des déploiements/mises en production automatisé(e)s
  • Une collaboration étroite entre les différentes équipes
  • Une infrastructure cohérente (environnements similaires, que ce soit en dev, test, preprod, ou prod)

Nous détaillerons tous ces aspects dans de prochains articles, donc restez à l’écoute !

Like what you read? Give Vincent CIBELLI a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.