Nous contacter

Votre message a bien été envoyé !

Mince, visiblement quelque chose est cassé de notre côté. Que diriez vous de nous envoyer un email directement sur contact@plunge.cloud ?

Retour vers les articles

Aligner les équipes Dev et Ops : tout savoir sur l'approche DevOps

Martin Catty
Martin Catty
Publié le 31 décembre 2019 13:00:43 CET

Si le terme rejaillit régulièrement aux oreilles des DSI comme un "buzzword" parmi tant d'autres lorsque l'on parle de transformation numérique, le Devops n'en est pas moins une approche clé dans l'amélioration des processus de production de logiciel que doivent opérer les entreprises aujourd'hui. Avec comme principaux enjeux, d'offrir des services toujours plus efficaces, stables, sécurisés.

Comprendre le Devops et ses concepts clés est un point de départ évident, mais il n'est pas toujours simple de s'y retrouver. À travers cet article, on vous offre un rappel concret de ce qu'est le DevOps, ce qu'il implique, et quels sont ses avantages.

DevOps, de quoi parle-t-on ?

Lorsqu'on parle de devops, on parle d'un mouvement de rapprochement de deux univers : celui du développement d'application (code) et celui de la mise en conditions opérationnelles de ces applications (run).

cycle-devops

 

Historiquement, on avait là deux mondes assez séparés, voire cloisonnés. Les logiciels étaient développés en waterfall (cascade), avec de longs cycles de développement, suivis de cérémonies de mise en recette, puis en production. Il fallait donc de longs mois avant d'offrir aux utilisateurs de nouvelles fonctionnalités et le droit à l'erreur était d'autant plus limité que ces temps s'allongeaient.

Le bon vieux temps (désolé pour ceux qui le vivent encore) où on commandait une machine au service interne de la société qu'on pouvait espérer utiliser dans 3 mois.

Les méthodes agiles sont arrivées en cassant ces codes. En promouvant des cycles de développement courts, elles imposent de facto des mises en recette et production plus fréquentes. Elles préconisent également une intensification de la collaboration entre équipes.

Dans le même temps, on a assisté à l'avènement d'outils (par exemple de conteneurisation et de provisioning) et de services (comme des plateformes de type Infrastructure as a Service offrant la possibilité de consommer de l'infrastructure à la demande), ce qui a progressivement réuni les conditions de mise en place de cette démarche devops.

Perdu(e) dans le "jargon" du devops ? Téléchargez notre glossaire et obtenez une définition simple des termes  techniques liés au devops.

Dev et Ops : une collaboration rapprochée

Fini donc le temps où les développeurs et les administrateurs systèmes se croisaient 3/4 fois dans l'année : il faut maintenant rentrer dans une collaboration plus rapprochée.

Et comme toute bonne collaboration, elle implique de bien comprendre le domaine de compétences de l'autre et se l'approprier, au moins en partie.

Tout comme on peut aisément comprendre que pour bien faire son métier, le développeur doit comprendre le métier de son client, il en va de même entre dev et ops. Chacun facilite la tâche de l'autre en comprenant, au moins en partie, les enjeux de l'autre partie.

Pour faciliter cette collaboration, un des éléments clés est d'avoir une chaîne de production logicielle qui aille du développement à la production. Le développeur ne s'arrête plus au « ça marche chez moi ».

Pour ce faire, il est nécessaire d'avoir des outils permettant de garantir le fait que l'application puisse se comporter de la même manière du développement à la production.

On a vu l'avènement d'outils permettant de construire des machines virtuelles (Vagrant etc…) puis progressivement des outils de conteneurisation, qui offrent un moyen simple de packager son application, c'est-à-dire d'ajouter le code et ses dépendances directement au sein d'un exécutable (par exemple une image docker).

Cela facilite le travail des ops, car le format de livraison est toujours identique. On n'a plus à jongler avec des installations de dépendances qui peuvent devenir complexes lorsque, sur une même machine, des applications ont besoin d'une même dépendance mais dans des versions différentes.

Le graal du Devops

Le but ultime du devops est donc de faire en sorte de se faire succéder les étapes du dev à la mise en production avec un minimum de friction, le plus rapidement possible, en améliorant la qualité globale du livrable.

On parle généralement d'intégration continue (validation manuelle et automatique du code produit) et de déploiement continu (on déploie l'application dès que le code a passé les différents gardes-fous).

Pour mettre en place cette intégration ou ce déploiement continu, on a recours à des « pipelines » : un ensemble d'étapes automatisées ou manuelles qui se succèdent.

 

plunge-pipeline-cicd

 

Mettre en place des processus solides offre de nombreux avantages :

  • On garantit que le fonctionnement est identique quels que soient les environnements
  • On limite les régressions (une fois l'étape qui joue les tests en place, il n'est pas possible de l'outrepasser)
  • On responsabilise le développeur, qui a la possibilité (ou la responsabilité selon les cultures) de déployer dans un environnement donné (ici le release deliver:staging est une action manuelle qui permet d'envoyer le code en environnement de recette)
  • On facilite le changement d'infrastructure cible (multi cloud) grâce à un processus et un livrable standardisé qui ne dépend pas de la cible. Cela facilite le passage par exemple d'Azure à Amazon Web Services, ou autres.
  • On limite les interventions humaines et donc les erreurs et les délais associés
  • On peut progressivement raffiner ce processus, par exemple en ajoutant des détections de vulnérabilités du code dans le pipeline, le respect des conventions d'écriture du code de l'équipe, ce qui améliore la qualité globale des livrables et la sécurité associée

 

Pour être capable de délivrer de manière continue du code en production, il faut bien sûr disposer de processus très solides et notamment être capable de revenir en arrière facilement, ce qui n'est pas toujours simple.

Mais il n'est pas raisonnable ni souhaitable de se fixer comme premier objectif de livrer automatiquement en production.

L'avantage de la démarche devops est qu'il est possible d'améliorer les choses progressivement : on peut commencer petit et apprendre en marchant. Il n'existe pas de processus parfaits et c'est à chaque équipe d'inventer ceux qui lui conviennent le mieux.

Et vous, vous commencez quand ?

Télécharger notre Glossaire du Devops

 

Partager l'article sur

Laisser un commentaire