Le DevOps est une philosophie en constante évolution qui 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 des 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.
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. Les pratiques DevOps ont également pour objectif d'améliorer les délais de détection et 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.
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.
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.
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, notamment les exemples ci-dessous.
Pour les entreprises qui suivent les pratiques DevOps, les avantages commerciaux et techniques sont évidents, et contribuent à améliorer la satisfaction des clients, pour la plupart.
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. Le 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 méthodologie, proche du DevOps, sous le titre « 10+ Deploys per Day: Dev and Ops Cooperation at Flickr » (10 déploiements par jour ou plus : la coopération entre les équipes de développement et des opérations chez 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 permet d'obtenir de meilleurs résultats avec le DevOps : les équipes chargées des opérations mettent en œuvre une infrastructure 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 copies Snapshot ou les clones. Ainsi, il est 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. Découvrez pourquoi NetApp est conçu pour le DevOps.
Pourquoi NetApp est conçu pour le DevOps
NetApp s'engage à encourager le DevOps avec thePub, une communauté qui favorise la collaboration, où les développeurs partagent conseils et astuces, et discutent des pratiques et protocoles DevOps les plus récents.
La culture DevOps repose sur de petites équipes interdisciplinaires qui peuvent travailler indépendamment les unes des autres et assument ensemble la responsabilité de l'expérience utilisateur d'un logiciel.