Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
DevOps combine le développement (Dev) et les opérations (Ops) pour unir les personnes, les processus et la technologie dans la planification des applications, le développement, la livraison et les opérations. DevOps permet la coordination et la collaboration entre des rôles anciennement siloés tels que le développement, les opérations informatiques, l’ingénierie de qualité et la sécurité.
Teams adopte la culture, les pratiques et les outils DevOps pour accroître la confiance dans les applications qu’ils créent, répondre mieux aux besoins des clients et atteindre les objectifs métier plus rapidement. DevOps aide les équipes à fournir continuellement de la valeur aux clients en produisant de meilleurs produits plus fiables.
DevOps et le cycle de vie des applications
DevOps influence le cycle de vie de l’application tout au long de ses phases de planification, de développement, de livraison et d’exploitation . Chaque phase s’appuie sur les autres phases et les phases ne sont pas spécifiques au rôle. Une culture DevOps implique tous les rôles de chaque phase dans une certaine mesure.
Le diagramme suivant illustre les phases du mode de vie de l’application DevOps :
Objectifs et avantages DevOps
Lorsqu’une équipe adopte la culture, les pratiques et les outils DevOps, elles peuvent réaliser des choses étonnantes :
Accélérer le délai de mise sur le marché
Grâce à une efficacité accrue, une collaboration améliorée en équipe, des outils d’automatisation et des équipes de déploiement continus sont en mesure de réduire rapidement le temps entre la création du produit et le lancement du marché.
S’adapter au marché et à la concurrence
Une culture DevOps impose que les équipes priorisent les clients avant tout. En combinant agilité, collaboration d’équipe et focus sur l’expérience client, les équipes peuvent fournir en permanence de la valeur à leurs clients et augmenter leur compétitivité sur la place de marché.
Maintenir la stabilité et la fiabilité du système
En adoptant des pratiques d’amélioration continue, les équipes sont en mesure de renforcer la stabilité et la fiabilité des produits et services qu’elles déploient. Ces pratiques permettent de réduire les défaillances et les risques.
Améliorer le temps moyen de récupération
Le temps moyen de récupération indique le temps nécessaire à la récupération à partir d’une défaillance ou d’une violation. Pour gérer les défaillances logicielles, les violations de sécurité et les plans d’amélioration continue, les équipes doivent mesurer et travailler pour améliorer cette métrique.
Adopter une culture DevOps
Pour implémenter entièrement DevOps, vous devez adopter une culture DevOps. Cultiver une culture DevOps nécessite des changements profonds dans la manière dont les gens travaillent et collaborent. Lorsque les organisations s’engagent dans une culture DevOps, elles créent un environnement pour que les équipes hautes performances évoluent. Tout en adoptant des pratiques DevOps automatise et optimise les processus par le biais de la technologie, sans passer à une culture DevOps au sein de l’organisation et de ses employés, vous n’obtiendrez pas les avantages complets de DevOps.
L’image suivante capture les aspects clés de la culture du site en direct de Microsoft.
Les pratiques suivantes sont des composants clés d’une culture DevOps :
- Collaboration, visibilité et alignement : une marque de marque d’une culture DevOps saine est la collaboration entre les équipes. La collaboration commence par la visibilité. Le développement, l’informatique et d’autres équipes doivent partager leurs processus, priorités et préoccupations DevOps entre eux. En planifiant leur travail ensemble, ils sont mieux placés pour s’aligner sur les objectifs et les mesures de réussite en ce qui concerne l’entreprise.
- Changements dans l’étendue et la responsabilité : à mesure que les équipes s’alignent, elles prennent possession et s’impliquent dans d’autres phases de cycle de vie, pas seulement celles qui sont centrales à leurs rôles. Par exemple, les développeurs deviennent responsables non seulement de l’innovation et de la qualité établies dans la phase de développement, mais aussi des performances et de la stabilité que leurs changements apportent dans la phase d’exploitation. En même temps, les opérateurs informatiques sont sûrs d’inclure la gouvernance, la sécurité et la conformité dans le plan et la phase de développement.
- Cycles de publication plus courts : les équipes DevOps restent agiles en mettant en production des logiciels en cycles courts. Les cycles de mise en production plus courts facilitent la planification et la gestion des risques, car la progression est incrémentielle, ce qui réduit également l’impact sur la stabilité du système. Le raccourcissement du cycle de publication permet également aux organisations d’adapter et de réagir aux besoins des clients en constante évolution et à la pression concurrentielle.
- Apprentissage continu : les équipes DevOps hautes performances établissent un état d’esprit de croissance. Ils échouent rapidement et incorporent des apprentissages dans leurs processus. Ils s’efforcent d’améliorer continuellement, d’accroître la satisfaction des clients et d’accélérer l’innovation et l’adaptabilité du marché.
Implémenter des pratiques DevOps
Vous implémentez DevOps en suivant les pratiques DevOps (décrites dans les sections qui suivent) tout au long du cycle de vie de l’application. Certaines de ces pratiques permettent d’accélérer, d’automatiser et d’améliorer une phase spécifique. D’autres couvrent plusieurs phases, aidant les équipes à créer des processus transparents qui aident à améliorer la productivité.
Intégration continue et livraison continue (CI/CD)
L’intégration continue (CI) est la pratique utilisée par les équipes de développement pour automatiser, fusionner et tester le code. CI permet d’intercepter les bogues au début du cycle de développement, ce qui les rend moins coûteux à corriger. Les tests automatisés s’exécutent dans le cadre du processus CI pour garantir la qualité. Les systèmes CI produisent des artefacts et les alimentent pour libérer des processus afin de générer des déploiements fréquents.
La livraison continue (CD) est un processus par lequel le code est généré, testé et déployé dans un ou plusieurs environnements de test et de production. Le déploiement et le test dans plusieurs environnements augmentent la qualité. Les systèmes CD produisent des artefacts déployables, y compris l’infrastructure et les applications. Les processus de mise en production automatisé consomment ces artefacts pour publier de nouvelles versions et des correctifs sur les systèmes existants. Les systèmes qui surveillent et envoient des alertes s’exécutent continuellement pour améliorer la visibilité de l’ensemble du processus CD.
Gestion de version
Le contrôle de version est la pratique de la gestion du code dans les versions : suivi des révisions et de l’historique des modifications pour faciliter la révision et la récupération du code. Cette pratique est généralement implémentée à l’aide de systèmes de contrôle de version tels que Git, qui permettent à plusieurs développeurs de collaborer dans la création de code. Ces systèmes fournissent un processus clair pour fusionner les modifications de code qui se produisent dans les mêmes fichiers, gérer les conflits et restaurer les modifications apportées aux états antérieurs.
L’utilisation du contrôle de version est une pratique DevOps fondamentale, aidant les équipes de développement à travailler ensemble, à diviser les tâches de codage entre les membres de l’équipe et à stocker tout le code pour faciliter la récupération si nécessaire. Le contrôle de version est également un élément nécessaire dans d’autres pratiques telles que l’intégration continue et l’infrastructure en tant que code.
Développement logiciel agile
Agile est une approche de développement logiciel qui met l’accent sur la collaboration d’équipe, les commentaires des clients et les utilisateurs, et une grande adaptabilité au changement par le biais de cycles de publication courts. Les équipes qui pratiquent Agile fournissent des modifications et des améliorations continues aux clients, recueillent leurs commentaires, puis apprennent et s’ajustent en fonction des besoins et des besoins des clients. Agile est sensiblement différent d’autres frameworks plus traditionnels tels que la cascade, qui inclut des cycles de mise en production longs définis par des phases séquentielles. Kanban et Scrum sont deux frameworks populaires associés à Agile.
Infrastructure en tant que code
L’infrastructure en tant que code définit les ressources système et les topologies de manière descriptive qui permet aux équipes de gérer ces ressources comme elles le feraient pour le code. Ces définitions peuvent également être stockées et versionnée dans les systèmes de contrôle de version, où elles peuvent être examinées et rétablies, à nouveau comme le code.
La pratique de l’infrastructure en tant que code aide les équipes à déployer des ressources système de manière fiable, reproductible et contrôlée. L’infrastructure en tant que code permet également d’automatiser le déploiement et de réduire le risque d’erreur humaine, en particulier pour les environnements volumineux complexes. Cette solution reproductible et fiable pour le déploiement d’environnement permet aux équipes de gérer les environnements de développement et de test identiques à la production. La duplication d’environnements vers différents centres de données et plateformes cloud devient également plus simple et plus efficace.
Gestion de la configuration
La gestion de la configuration fait référence à la gestion de l’état des ressources dans un système, notamment les serveurs, les machines virtuelles et les bases de données. À l’aide d’outils de gestion de la configuration, les équipes peuvent déployer des modifications de manière contrôlée et systématique, ce qui réduit les risques de modification de la configuration du système. Teams utilise des outils de gestion de la configuration pour suivre l’état du système et éviter la dérive de configuration, c’est-à-dire comment la configuration d’une ressource système s’écarte au fil du temps de l’état souhaité défini pour elle.
En plus de l’infrastructure en tant que code, il est facile de templater et d’automatiser la définition et la configuration du système, ce qui aide les équipes à exploiter des environnements complexes à grande échelle.
Surveillance continue
La surveillance continue signifie avoir une visibilité complète et en temps réel sur les performances et l’intégrité de l’ensemble de la pile d’applications. Cette visibilité va de l’infrastructure sous-jacente exécutant l’application aux composants logiciels de niveau supérieur. La visibilité est effectuée par le biais de la collecte de données de télémétrie et de métadonnées et de la définition d’alertes pour des conditions prédéfinies qui justifient l’attention d’un opérateur. La télémétrie comprend les données d’événement et la journalisation collectées dans des parties différentes du système, qui sont stockées de manière à pouvoir être analysées et consultées.
Les équipes DevOps performantes s’assurent qu’elles définissent des alertes exploitables, significatives et collectent des données de télémétrie enrichies afin qu’elles puissent tirer des insights de grandes quantités de données. Ces insights aident l’équipe à atténuer les problèmes en temps réel et à voir comment améliorer l’application dans les prochains cycles de développement.
Planning
Au cours de la phase de planification, les équipes DevOps ont l’idée, définissent et décrivent les fonctionnalités et fonctionnalités des applications et des systèmes qu’elles planifient de créer. Les équipes suivent la progression des tâches avec différents niveaux de granularité, allant des produits individuels aux portefeuilles multiples de produits. Teams utilise les pratiques DevOps suivantes pour planifier avec agilité et visibilité :
- Créez des listes de tâches.
- Suivez les bogues.
- Gérer le développement de logiciels Agile avec Scrum.
- Utilisez des tableaux Kanban.
- Visualisez la progression avec les tableaux de bord.
Pour obtenir une vue d’ensemble des différentes leçons apprises et pratiques que Microsoft a adoptées pour prendre en charge la planification DevOps dans les équipes logicielles de l’entreprise, consultez comment Microsoft planifie avec DevOps.
Développement
La phase de développement comprend tous les aspects du développement de code logiciel. Dans cette phase, les équipes DevOps effectuent les tâches suivantes :
- Sélectionnez un environnement de développement.
- Écrivez, testez, passez en revue et intégrez le code.
- Générez le code dans des artefacts à déployer dans différents environnements.
- Utilisez le contrôle de version, généralement Git, pour collaborer sur le code et travailler en parallèle.
Pour innover rapidement sans sacrifier la qualité, la stabilité et la productivité, les équipes DevOps :
- Utilisez des outils hautement productifs.
- Automatisez les étapes banales et manuelles.
- Itérer en petits incréments par le biais de tests automatisés et d’intégration continue (CI).
Pour obtenir une vue d’ensemble des pratiques de développement adoptées par Microsoft pour prendre en charge leur passage à DevOps, consultez comment Microsoft développe avec DevOps.
Livrer
La livraison est le processus de déploiement cohérent et fiable d’applications dans des environnements de production, idéalement via la livraison continue (CD).
Dans la phase de livraison, les équipes DevOps :
- Définissez un processus de gestion des mises en production avec des étapes d’approbation manuelle claires.
- Définissez des portes automatisées pour déplacer des applications entre les phases jusqu’à la version finale des clients.
- Automatisez les processus de livraison pour les rendre évolutifs, reproductibles, contrôlés et bien testés.
La livraison inclut également le déploiement et la configuration de l’infrastructure fondamentale de l’environnement de livraison. Les équipes DevOps utilisent des technologies telles que l’infrastructure en tant que code (IaC),les conteneurs et les microservices pour fournir des environnements d’infrastructure entièrement régis.
Les pratiques de déploiement sécurisées peuvent identifier les problèmes avant d’affecter l’expérience client. Ces pratiques aident les équipes DevOps à offrir fréquemment une facilité, une confiance et une tranquillité d’esprit.
Les principaux principes et processus DevOps que Microsoft a évolué pour fournir des systèmes de livraison efficaces sont décrits dans la façon dont Microsoft fournit des logiciels avec DevOps.
Operations
La phase des opérations implique la maintenance, la surveillance et la résolution des problèmes des applications dans des environnements de production, notamment des clouds hybrides ou publics comme Azure. Les équipes DevOps visent la fiabilité du système, la haute disponibilité, la sécurité forte et aucun temps d’arrêt.
Les pratiques de déploiement automatisée et de livraison sécurisée permettent aux équipes d’identifier et d’atténuer rapidement les problèmes lorsqu’elles se produisent. Maintenir la vigilance nécessite une télémétrie riche, des alertes actionnables et une visibilité complète des applications et des systèmes sous-jacents.
Les pratiques que Microsoft utilise pour exploiter des plateformes en ligne complexes sont décrites dans la façon dont Microsoft exploite des systèmes fiables avec DevOps.
Étapes suivantes
- Planifier des charges de travail efficaces avec DevOps
- Développer des logiciels modernes avec DevOps
- Fournir des services de qualité avec DevOps
- Utiliser des systèmes fiables avec DevOps
Autres ressources
- Solutions DevOps sur Azure
- Le parcours DevOps chez Microsoft
- Commencer à effectuer DevOps avec Azure
- Sécurité dans DevOps (DevSecOps)
- Qu’est-ce que l’ingénierie de plateforme ?
Formation et certifications
- Prise en main d’Azure DevOps
- Présentation de DevOps Dojo : Créer des efficacités qui soutiennent votre entreprise
- AZ-400 : Commencez un parcours de transformation DevOps
- Faciliter la communication et la collaboration
- Examen AZ-400 : Conception et implémentation de solutions Microsoft DevOps
- AZ-400 : Implémenter la sécurité et valider les bases de code pour la conformité