Partager via


Créer des solutions natives du cloud

Une fois la planification terminée, la phase suivante consiste à créer et à configurer la solution dans un environnement de développement, en respectant les meilleures pratiques et en garantissant la qualité grâce aux tests. Une solution native cloud utilise des modèles d’architecture évolutifs, résilients et observables pour optimiser les avantages des services Azure. La création dans un environnement hors production avec des pratiques de test et d’automatisation fortes garantit la qualité et la préparation du déploiement de production.

Développer de nouvelles solutions conçues pour le cloud

Le développement natif cloud nécessite une approche structurée qui intègre des pratiques de qualité dès le départ. Ce guide vous aide à créer des solutions fiables, sécurisées et évolutives grâce à des pratiques de développement éprouvées.

Appliquer des principes de Well-Architected Framework pendant le développement

Une solution native cloud bénéficie d’une application cohérente des principes Well-Architected Framework (WAF) Well-Architected Framework (WAF) fournit des principes essentiels qui guident le développement cloud natif efficace. Intégrez ces cinq piliers à votre processus de développement pour créer des applications robustes qui fonctionnent bien en production.

Développer des solutions dans un environnement hors production

  1. Créez des environnements de développement qui reflètent les configurations de production. Configurez des environnements hors production (développement, test, qa) qui reflètent étroitement la configuration de production. Plus vos environnements de test ressemblent à ceux de la production, plus vous pouvez être confiants que tout fonctionne correctement lors de la mise en production. Cette approche est particulièrement importante lors de l’ajout de nouvelles fonctionnalités à une charge de travail existante.

  2. Utilisez des jeux de données réalistes qui représentent des volumes de données de production. Testez avec des données qui correspondent à la taille et à la complexité des charges de travail de production. Les jeux de données volumineux exposent des goulots d’étranglement des performances et des problèmes de mise à l’échelle que l'on ne détecte pas avec de petits jeux de données de test. Anonymisez les données de production ou générez des données synthétiques qui conservent les propriétés statistiques des données réelles.

  3. Implémentez des contrôles de coût pour les environnements hors production. Utilisez Azure DevTest Labs ou la planification des ressources pour démarrer et arrêter automatiquement les ressources lorsqu’elles ne sont pas utilisées. Appliquez les niveaux de service appropriés pour les charges de travail de développement et implémentez des limites de dépense pour éviter les coûts inattendus tout en conservant l’efficacité des tests.

Pour plus d’informations, consultez Configurer l’environnement de test dans WAF.

Implémenter des modifications à l’aide du contrôle de code source et de CI/CD

  1. Stockez tout le code et la configuration dans un référentiel Git. Suivez le code d’application, les modèles d’infrastructure, les scripts de déploiement et les fichiers de configuration dans le contrôle de version. Cette pratique fournit un historique complet des changements et permet la collaboration entre les membres de l’équipe.

  2. Diviser le travail de développement en de petites validations fréquentes. Effectuer le développement de fonctionnalités par petits incréments qui peuvent être fusionnés et testés indépendamment. Cette approche réduit les conflits d’intégration et facilite l’identification de la source des problèmes lorsqu’ils se produisent.

  3. Automatisez les builds et les tests sur chaque modification de code. Configurez des pipelines CI/CD qui compilent automatiquement du code, exécutent des tests et déploient dans des environnements hors production lorsque des modifications sont validées. Les boucles de commentaires rapides aident les développeurs à détecter et résoudre rapidement les problèmes.

  4. Utilisez des indicateurs de fonctionnalité pour contrôler la mise en production de nouvelles fonctionnalités. Implémentez des bascules de fonctionnalité qui vous permettent de déployer du code en production tout en conservant les nouvelles fonctionnalités désactivées jusqu’à ce qu’elles soient prêtes pour les utilisateurs. Cette stratégie sépare le déploiement de la mise en production et permet des déploiements plus sûrs et plus contrôlés.

Implémenter la surveillance pendant le développement

  1. Intégrez Azure Monitor et Application Insights dans votre code d’application. Ajoutez la collecte de données de surveillance pour suivre les métriques de performances clés, les interactions utilisateur et les indicateurs d’intégrité du système. Configurez ces outils pendant le développement pour s’assurer qu’ils fonctionnent correctement avant le déploiement de production.

  2. Implémentez la journalisation structurée dans votre application. Utilisez des formats de journal cohérents et incluez des informations contextuelles telles que des ID d’utilisateur, des ID de demande et des identificateurs de processus métier. Structurez vos journaux en tant qu’objets JSON pour permettre de puissantes fonctionnalités d’interrogation et d’analyse.

  3. Configurez des alertes pour les métriques clés et les conditions d’échec. Configurez une surveillance proactive qui vous avertit lorsque les taux d’erreur augmentent, que les temps de réponse se dégradent ou que les métriques métier tombent en dehors des plages attendues. Définissez des seuils d’alerte en fonction de vos objectifs de niveau de service et de vos besoins métier.

  4. Créez des tableaux de bord qui fournissent une visibilité sur les performances du système. Créez des tableaux de bord de surveillance qui montrent l’intégrité de votre application, de votre infrastructure et de vos processus métier. Incluez des métriques qui importent à la fois pour les équipes techniques et les parties prenantes de l’entreprise afin d’activer les décisions pilotées par les données.

Pour plus d’informations, consultez Concevoir un système de surveillance et Instrumenter une application dans WAF.

Valider des solutions natives cloud avec des tests

Les tests complets valident que votre solution répond aux exigences métier et s’effectue de manière fiable dans des conditions réelles. Chaque type de test sert un objectif spécifique pour garantir la qualité de la solution.

  1. Exécutez des tests fonctionnels de bout en bout pour vérifier les flux de travail métier. Testez les scénarios utilisateur complets à partir de l'authentification jusqu'à l'achèvement des transactions en utilisant des données et interactions réalistes. Vérifiez que les nouvelles fonctionnalités fonctionnent correctement et que les fonctionnalités existantes restent intactes après les modifications. Exécutez des tests de régression pour intercepter les effets secondaires inattendus du nouveau développement.

  2. Effectuez des tests d’acceptation des utilisateurs avec les parties prenantes de l’entreprise. Engagez des utilisateurs ou des représentants professionnels réels pour vérifier que la solution répond à leurs besoins et attentes. Demandez-leur de tester des scénarios clés dans un environnement de tests d'acceptation utilisateur, et fournissez des commentaires sur la facilité d’utilisation et les fonctionnalités. Obtenez une approbation formelle auprès des parties prenantes avant de passer au déploiement de production.

  3. Effectuez des tests de charge dans des conditions réalistes pour valider les performances. Utilisez Azure Load Testing pour simuler les volumes d’utilisateurs et le débit de données attendus. Testez les niveaux de charge de pointe et au-delà pour identifier les goulots d’étranglement et les limites de mise à l’échelle des performances. Mesurez les temps de réponse, le débit et l’utilisation des ressources pour garantir que votre solution répond aux exigences de performances.

  4. Exécutez des tests de sécurité et de conformité pour identifier les vulnérabilités. Exécutez des analyses de sécurité automatisées sur le code d’application, les images conteneur et les configurations d’infrastructure. Utilisez Microsoft Defender pour Cloud pour vérifier les erreurs de configuration de sécurité et les violations de conformité. Résolvez les vulnérabilités à haut risque avant le déploiement et implémentez des contrôles de compensation pour les risques acceptés.

  5. Résolvez les problèmes critiques avant le déploiement de production. Traitez les phases de test comme des portes de qualité qui doivent être passées avant de continuer. Corrigez les problèmes de performances qui empêchent la réunion des contrats de niveau de service, résolvez les vulnérabilités de sécurité qui présentent un risque important. Résolvez les défauts fonctionnels qui affectent les processus métier de base. Documentez les problèmes connus de faible priorité avec les plans de résolution future.

  6. Gérer les suites de tests unitaires et d’intégration automatisées. Créez des tests automatisés complets qui valident des composants individuels et leurs interactions avec des dépendances externes. Exécutez ces tests dans le cadre de votre pipeline CI/CD et après chaque correctif de bogue pour empêcher les régressions. Une suite de tests automatisée robuste permet une livraison continue fiable dans les environnements natifs cloud.

Créer une infrastructure réutilisable

Une fois que votre solution modernisée réussit tous les tests dans l’environnement hors production, vous devez capturer la configuration et les configurations de l’infrastructure en tant que code, afin qu’elle puisse être facilement répliquée dans les environnements de production et futurs. L’infrastructure réutilisable signifie utiliser des modèles IaC (Infrastructure-as-code) et une automatisation pour la cohérence et la vitesse.

  1. Créez des modèles IaC pour des configurations éprouvées. Prenez l’architecture finale de votre environnement de test (qui reflète ce que vous voulez en prod) et codifiez-la. Utilisez des modèles Bicep, Terraform ou Azure Resource Manager pour définir votre infrastructure. Paramétrez ces modèles afin qu’ils puissent être réutilisés pour différentes phases, comme le développement, le test, la production avec de petits ajustements tels que des noms ou des tailles. Cette configuration garantit que l’environnement de production que vous créez correspond à ce que vous avez testé. Il évite l’erreur humaine en cliquant manuellement sur le portail Azure pour créer des ressources. Cela signifie également que si vous avez besoin de recréer l’environnement, comme pour la récupération d’urgence ou le déploiement dans de nouvelles régions, vous disposez du déploiement de l’infrastructure prêt. Pour plus d’informations, consultez CAF Manage - Gérer les déploiements basés sur du code.

  2. Stocker des modèles dans le contrôle de version. Vérifiez votre code d’infrastructure dans un référentiel Git (en même temps que le code de l’application ou dans un référentiel distinct). Utilisez GitHub ou Azure DevOps pour gérer les ressources IaC avec un contrôle de version approprié. Le contrôle de version permet des révisions de code, prend en charge la collaboration d’équipe et encourage la réutilisation des modèles dans les projets. Cette approche offre une traçabilité complète des modifications d’infrastructure et prend en charge les fonctionnalités de restauration lorsque des problèmes se produisent.

  3. Automatisez l’installation et la configuration des dépendances. Créez des scripts ou des tâches de pipeline pour déployer ces modèles et gérez également toutes les tâches de configuration ou d’amorçage requises. Utilisez Azure Pipelines, GitHub Actionspour exécuter des travaux de déploiement qui prennent le modèle IaC et déploient sur un abonnement/groupe de ressources cible. Automatisez l’installation des dépendances d’application, la configuration des paramètres et la gestion des secrets. L’objectif est la configuration de l’environnement en un clic (ou une commande) : de rien à un environnement entièrement en cours d’exécution qui correspond à ce que vous avez testé.

  4. Testez l’iaC et l’automatisation de bout en bout. Utilisez un abonnement Ou un groupe de ressources Azure distinct en tant que bac à sable et pratiquez le déploiement de votre environnement entier à partir de zéro à l’aide de vos modèles et scripts. Testez la capacité de vos modèles, pipelines et scripts IaC à créer une pile d’infrastructure complète à partir de zéro. Testez différents scénarios de déploiement, notamment le déploiement initial, les mises à jour de configuration et les procédures de restauration pour confirmer que l’automatisation fonctionne correctement.

Pour plus d’informations, consultez Concevoir une chaîne d'approvisionnement pour le développement des charges de travail et Infrastructure en tant que code dans WAF.

Créer une documentation de déploiement

Même avec l’automatisation, avoir une bonne documentation autour des déploiements est cruciale pour l’audit, pour l’intégration de nouveaux membres d’équipe et pour une maintenance future. La documentation de déploiement doit couvrir les configurations, les procédures et les étapes de restauration sous forme lisible par l’homme.

  1. Documenter les paramètres de configuration et les étapes. Enregistrez tous les paramètres spécifiques à l’environnement, les chaînes de connexion, les points de terminaison de service et les configurations de sécurité dans la documentation accessible. Incluez des instructions de déploiement pas à pas, des conditions préalables requises et des étapes de validation post-déploiement. Cette documentation permet des déploiements cohérents et prend en charge la résolution des problèmes lorsque des problèmes se produisent. Si un nouvel ingénieur devait déployer, il pourrait lire ce document et suivre ou comprendre les résultats du pipeline.

  2. Mettre à jour les procédures d'annulation et de récupération. Une fois vos tests terminés, formalisez les étapes permettant de rétablir les modifications lorsque des problèmes de déploiement se produisent. Incluez les déclencheurs de restauration, les procédures de sauvegarde et de restauration des données et les étapes de validation de récupération. Testez régulièrement les procédures de restauration et de récupération pour s’assurer qu’elles fonctionnent correctement si nécessaire. Cette préparation réduit les temps d’arrêt.

  3. Collectez toutes ces documentations dans un emplacement central. Utilisez SharePoint, GitHub ou un wiki pour stocker ces informations. Assurez-vous que l’équipe et le personnel du support technique savent où le trouver. Lors d'un incident très stressant, avoir des documents clairs à portée de main est une bouée de sauvetage.

Étape suivante