Qu’est-ce que DevOps et pourquoi ce mouvement est-il si important ?

De nos jours, tout évolue de plus en plus vite. Les applications existantes doivent constamment être adaptées, à un rythme toujours plus accru. Des complications apparaissent en outre souvent entre les développeurs et les équipes opérationnelles. L’approche DevOps permet heureusement de pallier ces problèmes. Mais en quoi consiste-t-elle au juste ? Et à quel point est-elle importante pour votre entreprise ?

Comment l’approche DevOps est-elle née ?

Façon de travailler de DevOpsPlus qu’une méthodologie pour le développement de logiciels, DevOps est une culture, qui est nécessaire pour pouvoir répondre aux besoins actuels des entreprises dans le cadre du développement de logiciels, de sites web, d’applications, etc.

Dans le modèle en cascade traditionnel, les exigences posées pour un logiciel étaient claires et soigneusement définies à l’avance. La définition du produit même était également stable. Les développeurs se chargeaient du codage du logiciel, et les équipes opérationnelles devaient ensuite le mettre en œuvre sur les systèmes de l’entreprise ou le web.

Mais le monde de l’informatique évolue de plus en plus vite. Les exigences changent sans cesse, et le développement des logiciels doit lui aussi être de plus en plus rapide. Les logiciels et les applications web doivent non seulement pouvoir être mis sur le marché plus rapidement, mais ils doivent aussi pouvoir être constamment adaptés. De nouvelles fonctions doivent pouvoir être ajoutées sans aucune difficulté, et les bugs découverts doivent pouvoir être corrigés. Tout cela a conduit au modèle de développement agile.

L’équipe de développeurs n’est cependant pas la seule à devoir réagir de manière rapide et efficace ; l’équipe opérationnelle, qui doit déployer et surveiller les nouvelles applications, doit elle aussi pouvoir le faire. Tout cela mène à une approche DevOps. Nombreux sont ceux qui associent ce terme à une collaboration plus étroite entre les développeurs, c’est-à-dire les concepteurs d’un produit, et les ‘ops’, c’est-à-dire l’équipe opérationnelle qui se charge de la publication, du déploiement, de l’exploitation et de la surveillance du logiciel.

Mais DevOps, c’est bien plus que cela – c’est un état d’esprit, une approche commune d’un problème. Une approche qui va au-delà de ce qui est de nature exclusivement technique ; une approche au sein de laquelle tous les niveaux de l’entreprise sont impliqués, y compris les départements chargés des finances et du marketing, et pour laquelle la communication est d’une importance vitale.

Tous (du développeur à l’administrateur systèmes, en passant par les personnes qui gèrent le réseau et les analystes d’affaires) font à présent partie de la même équipe. Et tous œuvrent dans un but commun : la réussite de l’entièreté du projet, et pas uniquement de leur partie.

 

Quels sont les principes de l’approche DevOps ?

Communication entre les développeurs et les équipes opérationnelles est décisif

Les silos traditionnels entre les développeurs, les testeurs, les responsables de la publication et les administrateurs systèmes sont abandonnés. Durant tout le processus de développement et de déploiement, tous collaborent plus étroitement, ce qui leur permet de mieux comprendre leurs questions et défis respectifs.

Les développeurs, par exemple, réfléchissent davantage à des aspects tels que les opérations, les sources, la disponibilité et la fiabilité. Ils peuvent p. ex. installer des interrupteurs qui permettent aux équipes ops d’activer/désactiver des fonctions, supprimer certaines options en cas de pic de trafic, etc. Les équipes ops assistent les développeurs en permettant de réaliser et surveiller des tests rapides, etc.

L’approche Devops requiert de ce fait des personnes possédant des compétences multidisciplinaires – des personnes qui connaissent bien tant l’infrastructure que la configuration, mais qui peuvent tout aussi bien réaliser des tests et déboguer des logiciels. Les devops jettent des ponts, tout en ayant un pied dans chaque domaine. Ils sont, comme le dit si bien Stephen Nelson-Smith, des « ambassadeurs, des pacificateurs, des facilitateurs et de communicateurs ».

Lorsque toute l’équipe de projet est agile, du code pour p. ex. une nouvelle fonctionnalité ou la correction d’un bug peut être rapidement mis en production – ou annulé si nécessaire. Plus l’écart entre les versions successives est réduit, plus l’impact d’une éventuelle défaillance peut être minimisé : il s’agit de l’approche « fail fast, fail cheap ». Grâce à elle, les entreprises peuvent régulièrement innover – ce qui est surtout important pour les entreprises en ligne. Il paraît d’ailleurs qu’Amazon met en œuvre ou modifie du nouveau code toutes les 2 secondes !

L’approche DevOps a un impact sur l’entièreté du cycle de livraison d’un projet, dont :

  • Un délai de commercialisation plus rapide
  • Un taux d’échec plus faible pour les nouvelles versions
  • Un délai de production plus court entre les correctifs
  • Un délai de rétablissement plus court (en cas de plantage d’une nouvelle version)

 

En quoi consiste DevOps ?

Le façon de travailler de DevOps

Le logo de DevOps est le symbole de l’infini, ou plutôt : une activité continue. DevOps, c’est en effet :

  • Un développement constant
  • Des tests constants
  • Une intégration constante
  • Une mise en œuvre constante
  • Une surveillance constante

Dans le cycle de vie de DevOps, on passe de la phase de projet à la phase de surveillance, et à chaque fois un nouveau cycle redémarre dès que le précédent est terminé. La partie en bleu correspond à la phase de développement, tandis que la partie en jaune correspond à la partie opérationnelle, mais en raison de leur interaction constante, les deux parties finissent par se confondre.

Pour la DevOps Agile Skills Association, 6 principes régissent le développement d’une stratégie DevOps :

  1. Travaillez selon une approche axée sur le client, avec de courtes périodes de retours donnés par de véritables clients et utilisateurs finaux.
  2. Évitez le modèle en cascade où chaque département travaille séparément, sans avoir une vue d’ensemble, et préférez une entreprise où chacun partage un état d’esprit technique pour créer un produit qui fonctionne comme il se doit.
  3. Organisez vos équipes de façon verticale, de façon à ce qu’elles puissent être responsables « from concept to grave».
  4. Misez sur des profils polyvalents, qui travaillent en équipes autonomes, au sein desquelles ils peuvent se développer sur le plan personnel.
  5. Apportez constamment des améliorations sur le plan de la rapidité, des coûts et du produit/service même.
  6. Automatisez tout ce qui peut être automatisé, y compris l’infrastructure, en créant p. ex. des plateformes cloud de nouvelle génération, basées sur des conteneurs (infrastructure as code).

 

De quelle technologie avez-vous besoin pour pouvoir mettre en place une approche DevOps ?

Docker en Kubernetes - tools for DevOpsAu cours de ces dernières années, le succès de l'approche DevOps a été accompagné par l'arrivée de nouveaux outils technologiques qui changent radicalement la façon dont chacun travaille. Et cela se vérifie aussi bien au niveau du développement (dev) qu'au niveau de l'administration (ops).

Grâce à une harmonisation permanente et plus poussée entre le développement et l'infrastructure, les développeurs ne doivent plus écrire une version spécifique pour une configuration de matériel ou d'infrastructure spécifique. Ils peuvent en effet continuellement déployer de nouvelles versions grâce à l'approche CI/CD (intégration continue / déploiement continu), à l'aide d'outils tels que GitLab, Jenkins, etc.

Tout professionnel qui déploie constamment de nouvelles versions doit disposer de procédures claires et d'une automatisation maximale du côté de l'infrastructure. Pour cela, il est possible de recourir à la technologie des conteneurs, comme celle de Docker, ou à une plateforme d'automatisation, comme Kubernetes. Ceux qui veulent uniquement se concentrer sur le développement de logiciels et qui préfèrent ne plus avoir à se soucier de tout ce qui touche à la gestion de l'infrastructure peuvent même opter pour une solution  'serverless' et 'Function as a Service' (FAAS).

 

Quels sont les avantages de l’approche DevOps ?

Sur le plan humain, le changement de mentalité constitue bien entendu le principal avantage. L’approche DevOps permet une plus grande empathie entre les membres des équipes, et met un terme aux silos de type « us and them », où les personnes sont méfiantes, voire parfois effrayées les unes par rapport aux autres.

Ce que l’approche DevOps apporte concrètement sur le plan professionnel est clairement expliqué dans le rapport intitulé « Puppet's State of DevOps ». Ce rapport annuel compare des entreprises qui adoptent des pratiques DevOps (entreprises à haut rendement) à des entreprises qui ne le font pas au niveau de la mise en œuvre du produit, de la loyauté du personnel, de la sécurité, etc. Le rapport de 2016 révèle notamment ceci :

  • Rendement informatique : les entreprises à haut rendement déploient 200 fois plus souvent, avec des délais de production 2.555 fois plus courts. Leurs délais de rétablissement sont 24 fois plus courts et elles enregistrent 3 fois moins d’échecs lors de modifications.
  • Loyauté du personnel : les employés des entreprises à haut rendement ont 2,2 fois plus tendance à considérer leur entreprise comme étant un bon employeur.
  • Utilisation du temps : Les entreprises à haut rendement passent 22 % moins de temps à s’occuper d’imprévus ou à devoir recommencer un travail. Elles peuvent ainsi consacrer 29 % de temps en plus à de nouvelles tâches, comme l’élaboration de nouvelles fonctionnalités.
  • Sécurité : 50 % moins de temps pour résoudre des problèmes de sécurité, du fait que l’information sur les objectifs en matière de sécurité est mieux intégrée dans le travail quotidien.

 

DevOps : par où commencer ?

Le développement d’une culture DevOps requiert de la planification. Voici quelques astuces qui peuvent vous aider à développer une mentalité DevOps :

  • Réfléchissez à la manière dont vous voulez que votre équipe web fonctionne sur une période de 12 à 18 mois.
  • Examinez vos méthodes de travail actuelles et demandez-vous (sans oublier d’également consulter votre équipe !) ce qui coince, et où sont les risques.
  • Laissez vos équipes s’exprimer : comment pensent-elles pouvoir améliorer les processus de façon réaliste ? Que pensent-elles d’impliquer des ops dans des projets dev ?
  • Déterminez qui, parmi les employés existants, est désireux d’acquérir de nouvelles compétences.
  • N’hésitez pas à partager vos conclusions et votre projet avec d’autres départements : des équipes polyvalentes peuvent être créées dans toute votre entreprise pour en améliorer le rendement !
  • Lorsque vous recrutez, veillez à cibler des DevOps polyvalents et offrez-leur la possibilité de continuer à se perfectionner.

 

L’approche DevOps est-elle adaptée à tout le monde ?

DevOps est une excellente approche pour les entreprises (en ligne) qui innovent sans cesse. Pour elles, le délai de commercialisation est nettement raccourci, ce qui constitue un sérieux avantage financier.

Mais si votre entreprise n’est pas dans ce cas, l’approche DevOps améliorera bien sûr la cohésion entre vos employés, mais il y a de fortes chances que votre entreprise survive même sans adopter cette culture. Si la seule application créée en interne ne sert qu’à noter les présences lors de réunions ou à planifier les jours de congé, il est inutile de la mettre à jour quotidiennement !

 

Est-ce que Combell a elle aussi adopté les principes DevOps ?

Certainement ! Cela fait déjà de nombreuses années que Combell adopte une stratégie DevOps, au sein de laquelle une équipe d’experts polyvalents adopte une approche multidisciplinaire de l’application du client durant les phases de développement, de déploiement et de suivi. C’est ainsi qu’il est possible d’obtenir des applications plus fiables et des délais de livraison plus rapides. Cette approche a en outre pu être optimisée grâce à la reprise de la société Openminds en 2016.

Avez-vous vous-même un projet en chantier ? Ou voulez-vous développer votre projet actuel ? Discutez-en avec nous ! Nos équipes réfléchiront avec vous et détermineront ce dont vous avez réellement besoin en termes d’hébergement et d’équipements pour concrétiser le projet de vos rêves !