Liste de contrôle DevOpsDevOps Checklist

Le DevOps consiste à intégrer le développement, l’assurance qualité et les opérations informatiques dans une culture unifiée et dans un ensemble de processus pour la distribution de logiciels.DevOps is the integration of development, quality assurance, and IT operations into a unified culture and set of processes for delivering software. Utilisez cette liste de contrôle comme point de départ pour évaluer votre culture et vos processus DevOps.Use this checklist as a starting point to assess your DevOps culture and process.

CultureCulture

Vérifiez l’alignement des objectifs au sein des organisations et des équipes.Ensure business alignment across organizations and teams. Les conflits au sujet des ressources, des objectifs et des priorités au sein d’une organisation peuvent compromettre la réussite des opérations.Conflicts over resources, purpose, goals, and priorities within an organization can be a risk to successful operations. Assurez-vous que les objectifs des équipes commerciales, de développement et des opérations sont alignés.Ensure that the business, development, and operations teams are all aligned.

Assurez-vous que toute l’équipe comprend bien le cycle de vie du logiciel.Ensure the entire team understands the software lifecycle. Votre équipe doit comprendre le cycle de vie complet de l’application et savoir dans quelle phase de son cycle de vie l’application se trouve.Your team needs to understand the overall lifecycle of the application, and which part of the lifecycle the application is currently in. Cela permet à tous les membres de l’équipe de savoir ce qu’ils doivent faire maintenant et ce qu’ils doivent planifier et préparer pour plus tard.This helps all team members know what they should be doing now, and what they should be planning and preparing for in the future.

Réduisez la durée du cycle.Reduce cycle time. Essayez de réduire le temps nécessaire pour passer de l’idée d’origine au logiciel fini.Aim to minimize the time it takes to move from ideas to usable developed software. Limitez la taille et la portée des différentes versions pour réduire la charge de travail imposée aux équipes de test.Limit the size and scope of individual releases to keep the test burden low. Automatisez aussi souvent que possible les processus de génération, de test, de configuration et de déploiement.Automate the build, test, configuration, and deployment processes whenever possible. Supprimez tous les obstacles à la communication entre les développeurs et entre les développeurs et l’équipe chargée des opérations.Clear any obstacles to communication among developers, and between developers and operations.

Révisez et améliorez les processus.Review and improve processes. Vos processus et procédures, qu’ils soient automatisés ou manuels, ne sont jamais définitifs.Your processes and procedures, both automated and manual, are never final. Prévoyez des révisions régulières du workflow, des procédures et de la documentation existants, avec pour objectif de les améliorer.Set up regular reviews of current workflows, procedures, and documentation, with a goal of continual improvement.

Anticipez.Do proactive planning. Anticipez les pannes.Proactively plan for failure. Mettez en place des processus pour identifier rapidement les problèmes lorsqu’ils se produisent, pour les faire remonter aux membres de l’équipe chargée de les résoudre et pour confirmer leur résolution.Have processes in place to quickly identify issues when they occur, escalate to the correct team members to fix, and confirm resolution.

Exploitez les informations issues des pannes.Learn from failures. Les pannes sont inévitables, mais il est important de savoir en tirer des informations pour éviter qu’elles ne se répètent.Failures are inevitable, but it's important to learn from failures to avoid repeating them. En cas de défaillance opérationnelle, triez le problème, documentez sa cause et sa solution et partagez les leçons que vous en tirez.If an operational failure occurs, triage the issue, document the cause and solution, and share any lessons that were learned. Quand c’est possible, mettez à jour votre processus de génération pour détecter automatiquement ce type de défaillance à l’avenir.Whenever possible, update your build processes to automatically detect that kind of failure in the future.

Accélérez vos processus et collectez des données.Optimize for speed and collect data. Chaque amélioration planifiée est une hypothèse.Every planned improvement is a hypothesis. Faites des incréments aussi petits que possible.Work in the smallest increments possible. Considérez les nouvelles idées comme des expériences.Treat new ideas as experiments. Instrumentez les expériences afin de pouvoir collecter des données de production pour évaluer leur efficacité.Instrument the experiments so that you can collect production data to assess their effectiveness. Préparez-vous à effectuer un Fail-fast si l’hypothèse est incorrecte.Be prepared to fail fast if the hypothesis is wrong.

Prenez le temps d’apprendre.Allow time for learning. Vous pouvez apprendre de vos échecs aussi bien que de vos réussites.Both failures and successes provide good opportunities for learning. Avant de passer à de nouveaux projets, prenez le temps de tirer les leçons importantes de vos résultats et assurez-vous que votre équipe les intègre correctement.Before moving on to new projects, allow enough time to gather the important lessons, and make sure those lessons are absorbed by your team. Donnez aussi à votre équipe le temps d’acquérir de nouvelles compétences, d’expérimenter et d’en apprendre plus sur les nouveaux outils et techniques.Also give the team the time to build skills, experiment, and learn about new tools and techniques.

Documentez vos opérationsDocument operations. Documentez tous les outils, les processus et les tâches automatisées avec le même niveau de qualité que le code de votre produit.Document all tools, processes, and automated tasks with the same level of quality as your product code. Documentez la conception et l’architecture actuelles de tous les systèmes que vous prenez en charge, ainsi que les processus de récupération et les autres procédures de maintenance.Document the current design and architecture of any systems you support, along with recovery processes and other maintenance procedures. Concentrez-vous sur les étapes que vous effectuez réellement et non sur les processus théoriquement optimaux.Focus on the steps you actually perform, not theoretically optimal processes. Révisez et mettez à jour régulièrement votre documentation.Regularly review and update the documentation. Pour le code, assurez-vous d’inclure des commentaires pertinents, en particulier dans les API publiques, et utilisez autant que possible des outils pour générer automatiquement la documentation du code.For code, make sure that meaningful comments are included, especially in public APIs, and use tools to automatically generate code documentation whenever possible.

Partagez vos connaissances.Share knowledge. La documentation n’est utile que si les utilisateurs connaissent son existence et savent où la trouver.Documentation is only useful if people know that it exists and can find it. Vérifiez que la documentation est bien organisée et facile à trouver.Ensure the documentation is organized and easily discoverable. Soyez créatif : partagez votre documentation de façon informelle lors d’un déjeuner, créez des vidéos ou envoyez des bulletins d’informations.Be creative: Use brown bags (informal presentations), videos, or newsletters to share knowledge.

DéveloppementDevelopment

Offrez aux développeurs des environnements qui reproduisent l’environnement de production.Provide developers with production-like environments. Si les environnements de développement et de test ne correspondent pas à l’environnement de production, il est difficile de tester et de diagnostiquer les problèmes.If development and test environments don't match the production environment, it is hard to test and diagnose problems. Par conséquent, essayez de fournir des environnements de développement et de test aussi similaires que possible à l’environnement de production.Therefore, keep development and test environments as close to the production environment as possible. Assurez-vous que les données de test sont cohérentes avec les données utilisées en production, même s’il s’agit d’exemples de données et non de vraies données de production (pour des raisons de confidentialité ou de conformité).Make sure that test data is consistent with the data used in production, even if it's sample data and not real production data (for privacy or compliance reasons). Prévoyez de générer et d’anonymiser des données de test.Plan to generate and anonymize sample test data.

Assurez-vous que tous les membres de l’équipe autorisés peuvent approvisionner l’infrastructure et déployer l’application.Ensure that all authorized team members can provision infrastructure and deploy the application. La configuration de ressources similaires à celles utilisées en production et le déploiement de l’application ne doivent pas impliquer de tâches manuelles complexes ou des connaissances techniques détaillées sur le système.Setting up production-like resources and deploying the application should not involve complicated manual tasks or detailed technical knowledge of the system. Toute personne disposant des autorisations appropriées doit être en mesure de créer ou de déployer des ressources similaires à celles utilisées en production sans passer par l’équipe chargée des opérations.Anyone with the right permissions should be able to create or deploy production-like resources without going to the operations team.

Cette recommandation ne signifie pas que tout le monde peut envoyer des mises à jour automatiques pour le déploiement en production.This recommendation doesn't imply that anyone can push live updates to the production deployment. Elle a pour but de réduire les difficultés que les équipes de développement et d’assurance qualité rencontrent pour créer des environnements qui reproduisent l’environnement de production.It's about reducing friction for the development and QA teams to create production-like environments.

Instrumentez l’application pour obtenir des informations.Instrument the application for insight. Pour vérifier l’intégrité de votre application, vous devez savoir comment elle s’exécute et pouvoir reconnaître les erreurs ou les problèmes qui surviennent.To understand the health of your application, you need to know how it's performing and whether it's experiencing any errors or problems. Il faut toujours considérer l’instrumentation comme une exigence de conception et l’intégrer dans l’application dès le début.Always include instrumentation as a design requirement, and build the instrumentation into the application from the start. L’instrumentation doit inclure la journalisation des événements pour l’analyse de la cause racine, mais également des données de télémétrie et des métriques pour surveiller l’intégrité globale et l’utilisation de l’application.Instrumentation must include event logging for root cause analysis, but also telemetry and metrics to monitor the overall health and usage of the application.

Surveillez votre dette technique.Track your technical debt. Dans de nombreux projets, le calendrier de mise en production devient, à un certain degré, prioritaire sur la qualité du code.In many projects, release schedules can get prioritized over code quality to one degree or another. Essayez de déterminer quand cela se produitAlways keep track when this occurs. et prenez note de tous les raccourcis et autres implémentations non optimales afin de planifier du temps à l’avenir pour réexaminer ces problèmes.Document any shortcuts or other nonoptimal implementations, and schedule time in the future to revisit these issues.

Envisagez d’envoyer des mises à jour directement en production.Consider pushing updates directly to production. Pour réduire la durée globale du cycle de mise en production, envisagez d’envoyer la validation des codes dument testés directement en production.To reduce the overall release cycle time, consider pushing properly tested code commits directly to production. Utilisez les bascules de fonctionnalité pour contrôler l’activation des fonctionnalités.Use feature toggles to control which features are enabled. Cela vous permet de passer rapidement du développement à la mise en production, en utilisant les bascules pour activer ou désactiver des fonctionnalités.This allows you to move from development to release quickly, using the toggles to enable or disable features. Les bascules sont également utiles lors de l’exécution de tests tels que les versions de contrôle de validité, où une fonctionnalité particulière est déployée sur un sous-ensemble de l’environnement de production.Toggles are also useful when performing tests such as canary releases, where a particular feature is deployed to a subset of the production environment.

TestTesting

Automatisez les tests.Automate testing. Le test manuel des logiciels est une tâche fastidieuse et sujette aux erreurs.Manually testing software is tedious and susceptible to error. Automatisez les tâches de test communes et intégrez les tests dans vos processus de génération.Automate common testing tasks and integrate the tests into your build processes. Les tests automatisés garantissent la cohérence et la reproductibilité des tests.Automated testing ensures consistent test coverage and reproducibility. Les tests de l’interface utilisateur intégrée doivent également être effectués par un outil automatisé.Integrated UI tests should also be performed by an automated tool. Azure propose des ressources de développement et de test qui peuvent vous aider à configurer et exécuter vos tests.Azure offers development and test resources that can help you configure and execute testing. Pour plus d’informations, consultez la page Développement et test.For more information, see Development and test.

Test de détection des défaillances.Test for failures. Si un système ne peut pas se connecter à un service, comment réagit-il ?If a system can't connect to a service, how does it respond? Peut-il reprendre son fonctionnement une fois le service à nouveau disponible ?Can it recover once the service is available again? Intégrez systématiquement des tests par injection d’erreurs à la phase de révision dans les environnements de test et intermédiaires.Make fault injection testing a standard part of review on test and staging environments. Lorsque vos processus et pratiques de test sont bien rodés, envisagez d’exécuter ces tests en production.When your test process and practices are mature, consider running these tests in production.

Testez en production.Test in production. Le processus de mise en production ne s’arrête pas avec le déploiement en production.The release process doesn't end with deployment to production. Mettez en place des tests pour vérifier que le code déployé fonctionne comme prévu.Have tests in place to ensure that deployed code works as expected. Pour les déploiements rarement mis à jour, intégrez des tests en production réguliers à votre procédure de maintenance.For deployments that are infrequently updated, schedule production testing as a regular part of maintenance.

Automatisez les tests de performance afin d’identifier rapidement les problèmes de performances.Automate performance testing to identify performance issues early. L’impact d’un grave problème de performances peut être important que celui d’un bogue dans le code.The impact of a serious performance issue can be as severe as a bug in the code. Si les tests fonctionnels automatisés peuvent détecter les bogues applicatifs, il arrive qu’ils ne détectent pas les problèmes de performances.While automated functional tests can prevent application bugs, they might not detect performance problems. Il est donc important de définir des objectifs de performances acceptables pour les métriques telles que la latence, le temps de chargement et l’utilisation des ressources.Define acceptable performance goals for metrics like latency, load times, and resource usage. Pensez à inclure des tests de performance automatisés dans votre pipeline de mise en production, pour vous assurer que l’application répond à ces objectifs.Include automated performance tests in your release pipeline, to make sure the application meets those goals.

Effectuez un test de capacité.Perform capacity testing. Une application peut fonctionner parfaitement dans des conditions de test, puis avoir des problèmes une fois en production à cause du changement d’échelle ou des limitations de ressources.An application might work fine under test conditions, and then have problems in production due to scale or resource limitations. Veillez à toujours définir les limites maximales de capacité et d’utilisation attendues.Always define the maximum expected capacity and usage limits. Effectuez des tests pour vérifier que l’application peut gérer ces limites et pour savoir ce qu’il se passe lorsque ces limites sont dépassées.Test to make sure the application can handle those limits, but also test what happens when those limits are exceeded. Il est conseillé d’effectuer des tests de capacité à intervalles réguliers.Capacity testing should be performed at regular intervals.

Après la mise en production initiale, vous devez effectuer des tests de capacité et de performance à chaque mise à jour du code de production.After the initial release, you should run performance and capacity tests whenever updates are made to production code. Utilisez les données d’historique pour affiner les tests et pour déterminer les types de tests à exécuter.Use historical data to fine-tune tests and to determine what types of tests need to be performed.

Effectuez des tests de pénétration automatisés.Perform automated security penetration testing. La sécurité de votre application est aussi importante que le bon fonctionnement de ses fonctionnalités.Ensuring your application is secure is as important as testing any other functionality. Intégrez des tests de pénétration automatisés à vos processus de génération et de déploiement.Make automated penetration testing a standard part of the build and deployment process. Planifiez régulièrement des tests de sécurité et des analyses de vulnérabilité sur les applications déployées, et surveillez les ports ouverts, les points de terminaison et les attaques.Schedule regular security tests and vulnerability scanning on deployed applications, monitoring for open ports, endpoints, and attacks. Les tests automatisés ne vous dispensent pas d’effectuer des révisions de sécurité approfondies à intervalles réguliers.Automated testing does not remove the need for in-depth security reviews at regular intervals.

Effectuez des tests automatisés de continuité de l’activité.Perform automated business continuity testing. Développer des tests pour la continuité à grande échelle, notamment le basculement et récupération d’une sauvegarde.Develop tests for large-scale business continuity, including backup recovery and failover. Configurez des processus automatisés pour effectuer ces tests régulièrement.Set up automated processes to perform these tests regularly.

LibérerRelease

Automatisez les déploiements.Automate deployments. Automatisez le déploiement des applications pour les environnements de test, intermédiaires et de production.Automate deploying the application to test, staging, and production environments. L’automatisation accélère les déploiements et augmente leur fiabilité tout en garantissant leur cohérence sur tous les environnements pris en charge.Automation enables faster and more reliable deployments, and ensures consistent deployments to any supported environment. Elle supprime le risque d’erreur humaine due aux déploiements manuels.It removes the risk of human error caused by manual deployments. Elle simplifie aussi la planification de la mise en production, afin de minimiser les effets des éventuels temps d’arrêt.It also makes it easy to schedule releases for convenient times, to minimize any effects of potential downtime.

Utilisez l’intégration continue.Use continuous integration. L’intégration continue (CI) consiste à fusionner le code du développeur dans un codebase centralisé selon un planning régulier, puis à effectuer automatiquement les processus de génération et de test.Continuous integration (CI) is the practice of merging all developer code into a central codebase on a regular schedule, and then automatically performing standard build and test processes. L’intégration continue permet à une équipe tout entière de travailler sur un codebase en même temps sans générer de conflits.CI ensures that an entire team can work on a codebase at the same time without having conflicts. Elle permet également de détecter plus rapidement les erreurs de code.It also ensures that code defects are found as early as possible. Idéalement, le processus d’intégration continue doit s’exécuter chaque fois que le code est validé ou archivé.Preferably, the CI process should run every time that code is committed or checked in. Au minimum, il doit s’exécuter une fois par jour.At the very least, it should run once per day.

Vous pouvez envisager l’adoption d’un modèle de développement « trunk ».Consider adopting a trunk based development model. Dans ce modèle, les développeurs n’effectuent leurs validations que sur une seule branche (le « trunk »).In this model, developers commit to a single branch (the trunk). Les validations ne doivent jamais arrêter la génération.There is a requirement that commits never break the build. Ce modèle facilite l’intégration continue, car tout le travail sur les fonctionnalités est effectué sur le « trunk » et les conflits de fusion sont ensuite résolus lors de la validation.This model facilitates CI, because all feature work is done in the trunk, and any merge conflicts are resolved when the commit happens.

Envisagez la livraison continue.Consider using continuous delivery. La livraison continue (CD) consiste à s’assurer que le code est toujours prêt à être déployé, en automatisant la génération, le test et le déploiement du code dans des environnements similaires à l’environnement de production.Continuous delivery (CD) is the practice of ensuring that code is always ready to deploy, by automatically building, testing, and deploying code to production-like environments. L’intégration de la livraison continue pour créer un pipeline de CI/CD complet vous permet de détecter plus rapidement les erreurs de code et d’assurer la mise en production rapide des mises à jour dument testées.Adding continuous delivery to create a full CI/CD pipeline will help you detect code defects as soon as possible, and ensures that properly tested updates can be released in a very short time.

Le déploiement continu est un processus supplémentaire qui déploie automatiquement en production toutes les mises à jour qui ont traversé le pipeline de CI/CD.Continuous deployment is an additional process that automatically takes any updates that have passed through the CI/CD pipeline and deploys them into production. Le déploiement continu requiert un processus de test robuste et automatisé ainsi qu’un processus de planification avancé. Il ne convient pas forcément à toutes les équipes.Continuous deployment requires robust automatic testing and advanced process planning, and may not be appropriate for all teams.

Effectuez de petites modifications incrémentielles.Make small incremental changes. Plus la modification apportée au code est importante, plus vous risquez d’introduire des bogues.Large code changes have a greater potential to introduce bugs. Privilégiez les petites modifications.Whenever possible, keep changes small. Cela limite les effets potentiels de chaque modification et simplifie la compréhension et le débogage des problèmes.This limits the potential effects of each change, and makes it easier to understand and debug any issues.

Gardez le contrôle sur la publication des modifications.Control exposure to changes. Gardez le contrôle sur la publication des mises à jour pour vos utilisateurs finaux.Make sure you're in control of when updates are visible to your end users. Vous pouvez utiliser des bascules de fonctionnalité pour décider de l’activation des fonctionnalités pour les utilisateurs finaux.Consider using feature toggles to control when features are enabled for end users.

Implémentez des stratégies de gestion des mises en production afin de réduire les risques liés au déploiement.Implement release management strategies to reduce deployment risk. Le déploiement d’une mise à jour applicative en production implique toujours des risques.Deploying an application update to production always entails some risk. Pour les réduire au maximum, vous pouvez recourir à des stratégies telles que les versions de contrôle de validité ou les déploiements bleu-vert pour déployer des mises à jour dans un sous-ensemble d’utilisateurs.To minimize this risk, use strategies such as canary releases or blue-green deployments to deploy updates to a subset of users. Vérifiez que la mise à jour fonctionne comme prévu, puis déployez la mise à jour sur le reste du système.Confirm the update works as expected, and then roll the update out to the rest of the system.

Documentez toutes les modifications.Document all changes. Les modifications de configuration et les mises à jour mineures peuvent vite devenir sources de confusion et de conflit de version.Minor updates and configuration changes can be a source of confusion and versioning conflict. C’est pourquoi il est important de toujours conserver une trace de toutes les modifications, quelle que soit leur importance.Always keep a clear record of any changes, no matter how small. Prenez note de tout ce qui a été modifié, y compris les correctifs et les modifications apportées aux stratégies et à la configuration.Log everything that changes, including patches applied, policy changes, and configuration changes. (Évitez d’inclure des données sensibles dans ces journaux d’activité.(Don't include sensitive data in these logs. Par exemple, vous pouvez noter que des informations d’identification ont été mises à jour et indiquer le nom de la personne qui a apporté la modification, mais ne précisez pas de quelles informations d’identification il s’agit.) Ces notes sur les modifications doivent être accessibles à toute l’équipe.For example, log that a credential was updated, and who made the change, but don't record the updated credentials.) The record of the changes should be visible to the entire team.

Automatisez les déploiements.Automate Deployments. Automatisez tous les déploiements et mettez en place des systèmes pour détecter les problèmes lors du lancement.Automate all deployments, and have systems in place to detect any problems during rollout. Prévoyez un processus d’atténuation pour conserver le code et les données qui existent en production, avant que la mise à jour ne les remplace dans toutes les instances de production.Have a mitigation process for preserving the existing code and data in production, before the update replaces them in all production instances. Mettez en place un moyen de restaurer les correctifs par progression ou de restaurer les modifications.Have an automated way to roll forward fixes or roll back changes.

Envisagez une infrastructure immuable.Consider making infrastructure immutable. L’infrastructure immuable est le principe selon lequel vous ne devez pas modifier l’infrastructure après son déploiement en production.Immutable infrastructure is the principle that you shouldn’t modify infrastructure after it’s deployed to production. Si vous le faites, vous risquez de parvenir à un état dans lequel les modifications ad hoc ont été appliquées. Il est alors difficile de savoir avec exactitude ce qui a changé.Otherwise, you can get into a state where ad hoc changes have been applied, making it hard to know exactly what changed. Une infrastructure immuable fonctionne en remplaçant des serveurs entiers lors de tout nouveau déploiement.Immutable infrastructure works by replacing entire servers as part of any new deployment. Ainsi, le code et l’environnement d’hébergement peuvent être testés et déployés en bloc.This allows the code and the hosting environment to be tested and deployed as a block. Une fois déployés, les composants de l’infrastructure ne sont plus modifiés jusqu’à la nouvelle version et au nouveau cycle de déploiement.Once deployed, infrastructure components aren't modified until the next build and deploy cycle.

SurveillanceMonitoring

Améliorez la visibilité sur vos systèmes.Make systems observable. L’équipe chargée des opérations doit toujours bénéficier d’une bonne visibilité sur l’intégrité et sur l’état d’un système ou d’un service.The operations team should always have clear visibility into the health and status of a system or service. Vous pouvez définir des points de terminaison d’intégrité externes pour contrôler l’état et vérifier que les applications sont codées de façon à instrumenter les métriques opérationnelles.Set up external health endpoints to monitor status, and ensure that applications are coded to instrument the operations metrics. Utiliser un schéma commun et cohérent qui vous permet de mettre en corrélation des événements entre systèmes.Use a common and consistent schema that helps you correlate events across systems. Diagnostics Azure et Application Insights représentent la méthode standard pour le suivi de l’intégrité et de l’état des ressources Azure.Azure Diagnostics and Application Insights are the standard method of tracking the health and status of Azure resources. Microsoft Operation Management Suite fournit également des fonctions de surveillance et de gestion centralisées pour les solutions cloud ou hybrides.Microsoft Operation Management Suite also provides centralized monitoring and management for cloud or hybrid solutions.

Agrégez et mettez en corrélation les métriques et journaux d’activité.Aggregate and correlate logs and metrics. Un système de télémétrie correctement instrumenté fournit une grande quantité de données de performances brutes ainsi que des journaux d’événements.A properly instrumented telemetry system will provide a large amount of raw performance data and event logs. Assurez-vous que les données de télémétrie et les données issues des journaux sont traitées et mises en corrélation rapidement, afin que l’équipe chargée des opérations puisse toujours avoir un aperçu pertinent de l’intégrité du système.Make sure that telemetry and log data is processed and correlated in a short period of time, so that operations staff always have an up-to-date picture of system health. Organisez et affichez les données de manière à obtenir une vue cohérente de tous les problèmes, afin que vous puissiez clairement savoir lorsque plusieurs événements sont liés.Organize and display data in ways that give a cohesive view of any issues, so that whenever possible it's clear when events are related to one another.

Consultez la stratégie de rétention de votre entreprise pour connaître les exigences en matière de traitement des données et de durée de stockage.Consult your corporate retention policy for requirements on how data is processed and how long it should be stored.

Implémentez des alertes et notifications automatiques.Implement automated alerts and notifications. Configurez des outils de surveillance tels qu’Azure Monitor pour détecter les modèles et les conditions qui indiquent des problèmes potentiels ou actuels et envoyer des alertes aux membres de l’équipe chargée de résoudre les problèmes.Set up monitoring tools like Azure Monitor to detect patterns or conditions that indicate potential or current issues, and send alerts to the team members who can address the issues. Vous pouvez configurer vos alertes pour éviter les faux positifs.Tune the alerts to avoid false positives.

Surveillez le délai d’expiration des ressources.Monitor assets and resources for expirations. Certaines ressources, comme les certificats, expirent au bout d’un certain temps.Some resources and assets, such as certificates, expire after a given amount of time. Assurez-vous de suivre les dates d’expiration des ressources et de savoir quels services ou fonctionnalités en dépendent.Make sure to track which assets expire, when they expire, and what services or features depend on them. Utilisez des processus automatisés pour surveiller ces ressources.Use automated processes to monitor these assets. Informez l’équipe chargée des opérations avant l’expiration d’une ressource et réaffectez-la si son expiration risque de perturber l’application.Notify the operations team before an asset expires, and escalate if expiration threatens to disrupt the application.

gestionManagement

Automatisez les tâches opérationnelles.Automate operations tasks. L’exécution manuelle des processus opérationnels répétitifs est sujette aux erreurs.Manually handling repetitive operations processes is error-prone. Automatisez ces tâches aussi souvent que possible pour assurer la qualité et des exécutions cohérentes.Automate these tasks whenever possible to ensure consistent execution and quality. Le code qui implémente l’automation doit être versionné dans le contrôle de code source.Code that implements the automation should be versioned in source control. Comme pour tous les autres codes, les outils d’automatisation doivent être testés.As with any other code, automation tools must be tested.

Adoptez une approche d’approvisionnement de type infrastructure en tant que code.Take an infrastructure-as-code approach to provisioning. Réduisez le nombre de configurations manuelles nécessaires à l’approvisionnement des ressources.Minimize the amount of manual configuration needed to provision resources. À la place, utilisez des scripts et des modèles Azure Resource Manager.Instead, use scripts and Azure Resource Manager templates. Conservez les scripts et les modèles dans le contrôle de code source, comme tous les autres codes que vous gérez.Keep the scripts and templates in source control, like any other code you maintain.

Envisagez l’utilisation de conteneurs.Consider using containers. Les conteneurs fournissent une interface standard basée sur le package pour déployer des applications.Containers provide a standard package-based interface for deploying applications. Avec les conteneurs, une application est déployée à l’aide des packages qu’elle contient. Ceux-ci incluent des logiciels, les dépendances et les fichiers nécessaires pour exécuter l’application, ce qui simplifie considérablement le processus de déploiement.Using containers, an application is deployed using self-contained packages that include any software, dependencies, and files needed to run the application, which greatly simplifies the deployment process.

Les conteneurs créent également une couche d’abstraction entre l’application et le système d’exploitation sous-jacent. Vous bénéficiez ainsi d’environnements cohérents.Containers also create an abstraction layer between the application and the underlying operating system, which provides consistency across environments. Cette couche d’abstraction permet aussi d’isoler un conteneur des autres processus ou applications qui s’exécutent sur un ordinateur hôte.This abstraction can also isolate a container from other processes or applications running on a host.

Implémentez des stratégies de résilience et la réparation spontanée.Implement resiliency and self-healing. La résilience d’une application est sa capacité à récupérer après une défaillance.Resiliency is the ability of an application to recover from failures. Exemples de stratégies pour assurer la résilience : relancer les échecs temporaires, basculer vers une instance secondaire ou même une autre région.Strategies for resiliency include retrying transient failures, and failing over to a secondary instance or even another region. Pour plus d’informations, consultez conception d’applications Azure fiables .For more information, see Designing reliable Azure applications . Instrumentez vos applications afin que les problèmes soient signalés immédiatement et que vous puissiez gérer les pannes ou autres défaillances du système.Instrument your applications so that issues are reported immediately and you can manage outages or other system failures.

Compilez un manuel des opérations.Have an operations manual. Un manuel des opérations, ou runbook, documente les procédures et les informations de gestion nécessaires pour aider l’équipe chargée des opérations à mettre à jour un système.An operations manual or runbook documents the procedures and management information needed for operations staff to maintain a system. Documentez-y également tous les scénarios d’opérations et les plans d’atténuation qui peuvent entrer en jeu lors d’une défaillance ou de toute autre interruption de votre service.Also document any operations scenarios and mitigation plans that might come into play during a failure or other disruption to your service. Créez cette documentation pendant le processus de développement et assurez-vous de la tenir à jour par la suite.Create this documentation during the development process, and keep it up to date afterwards. Ce document doit être vérifié, testé et amélioré régulièrement selon l’évolution de vos processus.This is a living document, and should be reviewed, tested, and improved regularly.

Il est essentiel de partager cette documentation.Shared documentation is critical. Encouragez les membres de votre équipe à collaborer et à partager leurs connaissances.Encourage team members to contribute and share knowledge. Toute l’équipe doit avoir accès à la documentation.The entire team should have access to documents. Faites en sorte que tous les membres de l’équipe puissent mettre à jour ces documents très facilement.Make it easy for anyone on the team to help keep documents updated.

Documentez les procédures d’appel.Document on-call procedures. Assurez-vous que toutes les procédures, planifications et tâches d’appel sont documentées et partagées avec tous les membres de l’équipe.Make sure on-call duties, schedules, and procedures are documented and shared to all team members. Mettez à jour ces informations aussi souvent que possible.Keep this information up-to-date at all times.

Procédures d’escalade de document pour les dépendances tierces.Document escalation procedures for third-party dependencies. Si votre application dépend de services tiers externes que vous ne contrôlez pas directement, vous devez prévoir un plan pour gérer les pannes.If your application depends on external third-party services that you don't directly control, you must have a plan to deal with outages. Créez une documentation pour vos processus d’atténuation planifiés.Create documentation for your planned mitigation processes. N’oubliez pas d’y inclure les informations de contact du support technique et les chemins d’escalade.Include support contacts and escalation paths.

Utilisez la gestion de la configuration.Use configuration management. Les modifications de configuration doivent être planifiées, visibles pour l’équipe chargée des opérations et enregistrées.Configuration changes should be planned, visible to operations, and recorded. Cette opération peut prendre la forme d’une base de données de gestion de la configuration ou d’une approche de type configuration en tant que code.This could take the form of a configuration management database, or a configuration-as-code approach. La configuration doit être auditée régulièrement pour vérifier que ce que vous aviez demandé a réellement été mis en place.Configuration should be audited regularly to ensure that what's expected is actually in place.

Prévoyez un plan de support Azure et étudiez le processus.Get an Azure support plan and understand the process. Azure offre plusieurs plans de support.Azure offers a number of support plans. Identifiez le plan qui correspond à vos besoins et assurez-vous que toute votre équipe sait comment l’utiliser.Determine the right plan for your needs, and make sure the entire team knows how to use it. Chaque membre de l’équipe doit comprendre tous les détails du plan, comment fonctionne le processus de support et comment ouvrir un ticket de support avec Azure.Team members should understand the details of the plan, how the support process works, and how to open a support ticket with Azure. Si vous prévoyez un événement à grande échelle, le support Azure peut vous aider à augmenter les limites de votre service.If you are anticipating a high-scale event, Azure support can assist you with increasing your service limits. Pour plus d’informations, consultez le Forum Aux Questions sur le support technique Azure.For more information, see the Azure Support FAQs.

Suivez les principes de séparation des privilèges lorsque vous octroyez un accès aux ressources.Follow least-privilege principles when granting access to resources. Gérez prudemment l'accès aux ressources.Carefully manage access to resources. L’accès doit être refusé par défaut, sauf si un utilisateur obtient explicitement l’accès à une ressource.Access should be denied by default, unless a user is explicitly given access to a resource. N’accordez aux utilisateurs que les accès dont ils ont besoin pour effectuer leurs tâches.Only grant a user access to what they need to complete their tasks. Effectuez un suivi des privilèges accordés aux utilisateurs et réalisez régulièrement des audits de sécurité.Track user permissions and perform regular security audits.

Utilisez le contrôle d’accès en fonction du rôle.Use role-based access control. L’assignation des comptes utilisateur et des accès aux ressources ne doit pas être un processus manuel.Assigning user accounts and access to resources should not be a manual process. Utilisez [contrôle d’accès en fonction du rôle] rbac (RBAC) accorder l’accès basé sur [Azure Active Directory] azure-ad identités et des groupes.Use role-based access control (RBAC) grant access based on Azure Active Directory identities and groups.

Utilisez un système de suivi des bogues pour suivre les problèmes.Use a bug tracking system to track issues. Si vous ne disposez pas d’un bon moyen pour effectuer le suivi des problèmes, vous risquez d’égarer des éléments, de dupliquer certaines tâches ou même de provoquer des problèmes supplémentaires.Without a good way to track issues, it's easy to miss items, duplicate work, or introduce additional problems. Ne vous fiez pas aux communications orales informelles pour suivre l’état des bogues.Don't rely on informal person-to-person communication to track the status of bugs. Utilisez un outil de suivi des bogues pour enregistrer tous les détails sur les différents problèmes, assigner des ressources pour les résoudre et créer un journal d’audit contenant la progression et l’état de chaque problème.Use a bug tracking tool to record details about problems, assign resources to address them, and provide an audit trail of progress and status.

Gérez toutes les ressources dans un système de gestion des changements.Manage all resources in a change management system. Tous les aspects de votre processus DevOps doivent être inclus dans un système de gestion et de contrôle de version, afin que vous puissiez facilement suivre et auditer les modifications.All aspects of your DevOps process should be included in a management and versioning system, so that changes can be easily tracked and audited. Les aspects en question incluent le code, l’infrastructure, la configuration, la documentation et les scripts.This includes code, infrastructure, configuration, documentation, and scripts. Traitez tous ces types de ressources comme du code tout au long des processus de test, génération, révision.Treat all these types of resources as code throughout the test/build/review process.

Utilisez des listes de contrôleUse checklists. Créez des listes de contrôle des opérations pour assurer le suivi des processus.Create operations checklists to ensure processes are followed. Il n’est pas rare de passer à côté d’un élément dans un manuel volumineux. Si vous suivez une liste de contrôle, vous avez plus de chances de remarquer les détails que vous auriez risqué de manquer.It’s common to miss something in a large manual, and following a checklist can force attention to details that might otherwise be overlooked. Mettez à jour vos listes de contrôle et cherchez en permanence des méthodes pour automatiser les tâches et simplifier les processus.Maintain the checklists, and continually look for ways to automate tasks and streamline processes.

Pour plus d’informations sur le DevOps, consultez l’article Qu’est-ce que DevOps ? sur le site de Visual Studio.For more about DevOps, see What is DevOps? on the Visual Studio site.