canaux
fonctionnalités
Vous avez parfois l'impression de parler une autre langue que vos équipes dev et IT ?
On vous comprend. Le vocabulaire tech est souvent complexe, ce qui ne facilite pas toujours l’alignement entre les métiers… et peut même occasionner quelques moments de solitude en réunion.
Ce glossaire est là pour vous aider. Conçu pour les équipes métiers, il offre des explications claires et accessibles des concepts clés du DevOps. Que vous collaboriez sur des projets produits ou pilotiez des stratégies digitales, ce kit de survie vous permettra de mieux comprendre vos équipes tech et d’avancer ensemble, main dans la main. ;-)
Summary
1.
Pratiques continues
2.
Infrastructure et déploiement
3.
Architecture et déploiement
4.
Supervision, observabilité et fiabilité
5.
La sécurité dans le DevOps
6.
Agilité et collaboration
7.
Conclusion
8
9.
10.
La Continuous Integration (CI) est une pratique de développement logiciel où les développeurs intègrent fréquemment leur code dans un dépôt partagé, souvent plusieurs fois par jour. Chaque intégration est vérifiée par des processus automatisés de build et de tests afin de s’assurer que les nouvelles modifications n’altèrent pas les fonctionnalités existantes. L’objectif du CI est de détecter rapidement les erreurs et d’améliorer la qualité globale du produit.
Le Continuous Deployment (CD) est le prolongement de la Continuous Integration (CI) et consiste à automatiser la mise en production des nouvelles fonctionnalités ou mises à jour. Chaque modification qui passe les tests automatisés est déployée sans intervention manuelle, permettant ainsi une livraison plus rapide des fonctionnalités aux utilisateurs. Cette pratique repose sur un haut niveau d’automatisation et de tests afin de minimiser les risques liés au déploiement.
Le Continuous Delivery est la pratique qui consiste à maintenir le code dans un état déployable en permanence. Chaque changement est automatiquement testé et peut être mis en production à tout moment. Contrairement au Continuous Deployment, cette approche nécessite une validation manuelle avant le déploiement. Le Continuous Delivery vise à rendre les livraisons à la fois moins risquées et plus fréquentes.
Un pipeline CI/CD est une série d’étapes qui automatisent le build, les tests et le déploiement d’un produit. Il combine les pratiques de Continuous Integration (CI) et de Continuous Deployment (CD), garantissant que chaque modification du code est testée et livrée de manière efficace. Ce pipeline joue un rôle clé dans la mise en œuvre des pratiques de développement agile.
Infrastructure as Code (IaC) est une pratique DevOps où l’infrastructure (serveurs, réseaux, bases de données, etc.) est configurée et gérée à l’aide de fichiers lisibles par une machine, plutôt que par des actions manuelles. L’IaC permet d’assurer la cohérence, le versioning et la répétabilité, rendant ainsi l’infrastructure plus facile à gérer et moins sujette aux erreurs humaines.
La Containerization est une forme légère de virtualisation où les applications sont packagées avec toutes leurs dépendances dans des unités isolées appelées containers. Des outils comme Docker permettent aux développeurs de créer des containers capables de fonctionner de manière cohérente dans différents environnements, rendant ainsi les déploiements plus prévisibles et réduisant le problème du « ça marche sur ma machine ».
Kubernetes est une plateforme open-source d’orchestration de containers qui facilite la gestion et le scale des applications containerisées en production. Elle permet d'automatiser des tâches telles que le déploiement des containers, le scaling et la gestion du réseau. Kubernetes est très répandu dans les environnements DevOps, permettant de garantir une gestion fiable, efficace et évolutive des containers.
Le Blue-Green Deployment est une technique qui permet de minimiser les temps d’arrêt et les risques lors des mises en production. Dans cette stratégie, deux environnements (Blue et Green) sont utilisés. L’environnement Blue correspond à la version actuelle en production, tandis que la nouvelle version est déployée dans l’environnement Green. Une fois les tests et vérifications effectués, le trafic est basculé de manière transparente vers l’environnement Green.
Les Canary Releases sont une stratégie de déploiement dans laquelle une nouvelle version d’un logiciel est progressivement déployée auprès d’un petit sous-ensemble d’utilisateurs avant d’être étendue à l’ensemble de la base d’utilisateurs. Cela permet de détecter les problèmes tôt et de minimiser l’impact des éventuelles anomalies sur l'ensemble des utilisateurs.
Le Configuration Management consiste à maintenir la cohérence des performances et des configurations des systèmes dans le temps. Il permet de garantir que les modifications sont tracées et que les systèmes sont configurés correctement, réduisant ainsi le risque de mauvaise configuration. Des outils comme Ansible, Puppet et Chef sont largement utilisés pour gérer les configurations dans les environnements DevOps.
Les Feature Flags sont une technique qui permet aux équipes d’activer ou de désactiver certaines fonctionnalités sans déployer de nouveau code. Cela facilite le test des fonctionnalités en production, la réalisation de tests A/B, et le retrait des fonctionnalités problématiques avec un risque minimal.
Les Microservices sont un type d’architecture dans laquelle une application logicielle est composée de petits services indépendants, pouvant être déployés et mis à l’échelle de manière autonome. Chaque service représente une fonction métier spécifique et communique avec les autres services via des APIs. Cette approche permet aux équipes de développer, tester et déployer chaque composant séparément, offrant ainsi une plus grande agilité et une meilleure résilience.
Le contrôle de version est un système permettant de suivre les modifications apportées au code. Il permet aux développeurs de travailler simultanément sur différentes fonctionnalités ou corrections sans interférer avec le travail des autres. Git est l’outil de version control le plus utilisé dans les environnements DevOps, facilitant la collaboration des équipes et la gestion de l’historique du code.
Le GitOps est un modèle opérationnel qui reprend les meilleures pratiques du DevOps – comme le contrôle de version, la collaboration et le CI/CD – pour les appliquer à l’automatisation de l’infrastructure. Dans une approche GitOps, les dépôts Git font office de "source of truth" pour définir l’état souhaité de l’infrastructure.
Un API Gateway est un serveur qui agit comme point d’entrée pour les requêtes API. Il facilite la gestion, le routage et la sécurisation des requêtes entre les clients et les microservices, permettant un meilleur contrôle des architectures distribuées telles que les microservices.
L’Observabilité désigne la capacité à mesurer l’état interne d’un système en analysant ses outputs, telles que les logs, les métriques et les traces. Dans le monde du DevOps, l’observabilité est essentielle pour comprendre les performances des applications et en identifier les problèmes. Des outils comme Prometheus, Grafana et ELK Stack sont couramment utilisés à cet effet.
Le Monitoring consiste à collecter et analyser des métriques provenant des applications, de l’infrastructure et des services afin d’identifier les problèmes potentiels. Il aide les équipes DevOps à détecter les défaillances, comprendre les tendances et garantir des performances optimales des systèmes.
Le Site Reliability Engineering (SRE) est une discipline qui intègre les pratiques du software engineering à l’infrastructure et aux opérations afin de créer des systèmes logiciels scalables et hautement fiables. Le SRE met l’accent sur l’automatisation, le monitoring et des mesures proactives pour assurer la stabilité et la disponibilité des systèmes.
Les Service Level Objectives (SLOs) sont des objectifs définis spécifiques et mesurables d’un service, telles que la disponibilité, la latence ou le débit. Les SLOs permettent de définir le niveau de fiabilité et de performance attendu par les utilisateurs d’un service.
Les Service Level Agreements (SLAs) sont des contrats formalisés entre les fournisseurs de services et leurs clients, qui définissent le niveau de service attendu, incluant la disponibilité (uptime), les temps de réponse et les délais de résolution des incidents. Les SLAs servent à spécifier les attentes et à garantir la responsabilité des parties impliquées.
Le Mean Time to Recovery (MTTR) est le temps moyen nécessaire pour rétablir le bon fonctionnement d'un système après une défaillance ou un incident. Le MTTR est une métrique clé utilisée pour mesurer la fiabilité des systèmes et constitue souvent un objectif dans les pratiques de Site Reliability Engineering (SRE).
Le DevSecOps consiste à intégrer la sécurité dans chaque étape du workflow DevOps. L’idée est d’identifier et de corriger les vulnérabilités le plus tôt possible dans le cycle de développement. En intégrant la sécurité dès le départ, les équipes peuvent livrer des produits en alliant rapidité et fiabilité.
Le Security as Code consiste à gérer les politiques et configurations de sécurité comme du code. Cela permet aux équipes de les versionner, les examiner et les automatiser. Cette approche intègre la sécurité au cœur du cycle de développement logiciel et garantit une application cohérente des mesures de sécurité.
Le Secrets Management consiste à stocker et gérer de manière sécurisée des informations sensibles comme les clés API, les mots de passe et les certificats. Des outils tels que HashiCorp Vault, AWS Secrets Manager ou Azure Key Vault permettent aux équipes de gérer ces secrets en toute sécurité.
L’Agile est une approche itérative du développement logiciel qui met l’accent sur la collaboration, les retours clients et des livraisons rapides et fréquentes. Le DevOps complète les méthodologies Agile en automatisant les processus nécessaires pour livrer des logiciels rapidement et de manière fiable.
Le Scrum est un cadre méthodologique au sein de l’Agile qui repose sur des avancées itératives grâce à des sprints définis. Il favorise une communication régulière, la transparence et la responsabilité collective des équipes, ce qui permet aux équipes DevOps de s’améliorer et de s’adapter en continu.
Le Kanban est une méthodologie Agile qui met l’accent sur la visualisation du travail, la limitation des tâches en cours et l’optimisation des flux. Elle aide les équipes à s’améliorer en continu en se concentrant sur la gestion des tâches et la réduction des goulots d’étranglement.
Le DevOps rapproche le développement et les opérations pour permettre une livraison plus rapide et plus fiable des produits digitaux. Comprendre les concepts clés du DevOps donne aux équipes les moyens de mieux collaborer et de prendre des décisions éclairées. Nous espérons que ce glossaire a permis de clarifier certains termes et pratiques essentiels, et qu’il vous aidera à naviguer avec confiance dans l’écosystème DevOps !