Menu

Qu'est-ce que le DevOps ?

loupe grise sur le côté
Sujets

Philosophie en constante évolution, le DevOps offre un framework conçu pour dynamiser et améliorer le développement d'applications et accélérer la mise à disposition de nouvelles fonctionnalités, de mises à jour logicielles ou de produits.

Il favorise la communication, la collaboration, l'intégration, la visibilité et la transparence continues entre les équipes chargées du développement d'applications (Dev) et celles responsables des opérations IT (Ops).

Cette relation plus étroite entre Dev et Ops se reflète dans chaque phase du cycle de vie DevOps : planification logicielle initiale, codage, développement, test, publication, déploiement, opérations et surveillance continue. Elle génère de façon constante des retours clients, ce qui renforce le potentiel d'amélioration lors du développement, des tests et du déploiement. La publication accélérée et permanente des modifications ou ajouts de fonctionnalités en est un exemple.

Les objectifs du DevOps s'articulent autour de quatre catégories : culture, automatisation, mesure et partage. Dans chacun de ces domaines, les outils DevOps améliorent la rationalisation et la collaboration des workflows de développement et d'opérations en automatisant les tâches chronophages, manuelles ou statiques des phases d'intégration, de développement, de test, de déploiement ou de surveillance.

Pourquoi le DevOps est-il important ?

En favorisant la communication et la collaboration entre les équipes chargées du développement et des opérations IT, le DevOps vise à optimiser la satisfaction client et à proposer des solutions à valeur ajoutée plus rapidement. Le DevOps est aussi conçu pour stimuler l'innovation dans une optique d'amélioration continue des processus.

Les pratiques DevOps accélèrent, optimisent et sécurisent la valeur commerciale des entreprises, par exemple via la publication plus fréquente ou la mise à disposition plus rapide de versions, de fonctionnalités ou de mises à jour des produits, le tout en assurant les niveaux de qualité et de sécurité appropriés. Autre objectif : améliorer les délais de détection, de résolution de bogues ou d'autres problèmes et de republication d'une version.

L'infrastructure sous-jacente apporte également au DevOps la fluidité des performances, la disponibilité et la fiabilité requises lors des étapes de développement, de test et de mise en production des logiciels.

Méthodes DevOps

Afin d'accélérer et d'améliorer le développement et le lancement de leurs produits, les entreprises disposent de plusieurs méthodologies et pratiques DevOps de développement logiciel. Les méthodes Scrum, Kanban et Agile sont les plus couramment utilisées.

  • Scrum. La méthode Scrum définit la manière dont les membres de l'équipe doivent collaborer pour accélérer les projets de développement et d'assurance qualité. Les pratiques Scrum utilisent des workflows clés, une terminologie spécifique (sprint, time box, daily scrum) et des rôles désignés (Scrum Master, product owner ou responsable de produit).
  • Kanban. Développée par Toyota pour améliorer l'efficacité de ses usines de montage, la méthode Kanban repose sur un suivi des travaux en cours (TEC) dans un projet logiciel à l'aide d'un tableau de Kanban.
  • Agile. Les premières méthodes de développement logiciel agile continuent d'influencer largement les pratiques et les outils DevOps. De nombreuses approches DevOps, notamment Scrum et Kanban, intègrent des éléments de la programmation agile. Certaines pratiques agiles offrent une meilleure réactivité face à l'évolution des besoins en documentant les exigences sous forme de user stories, en organisant des réunions quotidiennes (daily standups) et en intégrant les retours des clients de manière continue. La méthodologie agile préconise également des cycles de développement logiciel plus courts, à l'encontre des méthodes classiques dites « en cascade » plus chronophages.

chaîne d'outils devops

Les adeptes des pratiques DevOps intègrent souvent des outils compatibles DevOps dans leur « chaîne d'outils » pour rationaliser, accélérer et automatiser davantage les différentes étapes du workflow (ou « pipeline ») de fourniture des logiciels. Ces outils renforcent les principes fondamentaux du DevOps tels que l'automatisation, la collaboration et l'intégration entre les équipes chargées du développement et des opérations. Voici quelques exemples d'outils employés à différentes étapes du cycle de vie DevOps.

pratiques DevOps

Les pratiques DevOps améliorent en continu et automatisent les processus. Bon nombre d'entre elles portent sur une ou plusieurs phases du cycle de développement :

Avantages du DevOps

Pour les entreprises qui suivent les pratiques DevOps, les avantages commerciaux et techniques sont évidents et la plupart contribuent à améliorer la satisfaction des clients :

  • Accélération et amélioration de la fourniture des produits
  • Résolution plus rapide des problèmes et complexité réduite
  • Plus grande évolutivité et disponibilité inégalée
  • Stabilité accrue des environnements d'exploitation
  • Meilleure utilisation des ressources
  • Automatisation accrue
  • Meilleure visibilité sur les résultats du système
  • Innovation renforcée

Historique du DevOps

De nombreuses méthodes DevOps destinées à rationaliser le développement et le déploiement des logiciels reposent sur des modèles agiles et sur la programmation lean. L'évolution du DevOps trouve son origine dans plusieurs mouvements nés de la volonté d'harmoniser les activités des développeurs et des équipes chargées des opérations.

Au début des années 2000, le maintien de la disponibilité est devenu une nécessité pour des sites web comme Google et Flickr dont la popularité ne cessait de croître. Des ingénieurs de fiabilité des logiciels (SRE) ont alors commencé à travailler en étroite collaboration avec les développeurs afin d'assurer le fonctionnement des sites après la mise en production du code.

Lors d'une conférence organisée en 2009, John Allspaw et Paul Hammond, deux ingénieurs de Flickr, présentent leur propre méthodologie inspirée du DevOps sous le titre « 10+ Deploys per Day: Dev and Ops Cooperation at Flickr ». La même année, Patrick Debois organise la première édition des DevOps Days en Belgique. Un hashtag #DevOps fait également son apparition et le mouvement DevOps Days gagne du terrain à travers le monde.

Par la suite, d'autres outils et frameworks open source ont été proposés pour contribuer à l'avancement des objectifs DevOps.

NetApp et le DevOps

Grâce au DevOps, NetApp vous aide à améliorer vos résultats business : les équipes chargées des opérations mettent en place une structure automatisée avec moins d'efforts d'ingénierie et les développeurs travaillent de manière fluide dans des environnements fiables et prévisibles. Avec la technologie NetApp®, vous pouvez livrer en toute confiance les services et fonctionnalités dont votre entreprise a besoin pour optimiser la productivité des développeurs à la fois sur site et dans les environnements cloud.

Grâce à NetApp, les développeurs et les équipes chargées des tests, de l'assurance qualité et des opérations peuvent facilement consommer les ressources d'infrastructure-as-code (comme les volumes de stockage persistant) à l'aide des outils du pipeline DevOps qu'ils maîtrisent, notamment les API de stockage NetApp et les intégrations IAC avec Puppet, Ansible, Docker, Kubernetes, OpenShift, etc.

Mais NetApp va encore plus loin. La technologie NetApp permet aussi aux équipes des opérations de provisionner et de fournir en toute confiance des ressources aux développeurs et aux testeurs afin de réduire les cycles de codage et de test via l'auto-provisionnement de fonctionnalités rapides de stockage, comme les Snapshots ou les clones. Grâce au code, il est ainsi possible de provisionner des copies de données de production en temps réel ou des jeux de codes en quelques secondes ou minutes pour accélérer le workflow de développement et de QA.

L'engagement de NetApp envers la communauté s'exprime à travers thePub, un lieu d'échange collaboratif où les développeurs partagent conseils et astuces, et discutent des pratiques et protocoles DevOps les plus récents.

Pour aller plus loin