Guide de l’architecture des applications AzureAzure Application Architecture Guide

Ce guide présente une approche structurée pour concevoir des applications sur Azure qui sont scalables, sécurisées, résilientes et hautement disponibles.This guide presents a structured approach for designing applications on Azure that are scalable, secure, resilient, and highly available. Il est basé sur des pratiques éprouvées que nous avons apprises au contact des clients.It is based on proven practices that we have learned from customer engagements.

IntroductionIntroduction

Le cloud change la façon dont les applications sont conçues et sécurisées.The cloud is changing how applications are designed and secured. À la place de monolithes, les applications sont décomposées en services plus petits et décentralisés.Instead of monoliths, applications are decomposed into smaller, decentralized services. Ces services communiquent via des API ou à l’aide d’une messagerie ou d’une gestion des évènements asynchrone.These services communicate through APIs or by using asynchronous messaging or eventing. Les applications sont mises à l’échelle horizontalement, en ajoutant de nouvelles instances lorsque c’est demandé.Applications scale horizontally, adding new instances as demand requires.

Ces tendances amènent de nouveaux défis.These trends bring new challenges. L’état de l’application est distribué.Application state is distributed. Les opérations sont effectuées en parallèle et de façon asynchrone.Operations are done in parallel and asynchronously. Les applications doivent être résilientes quand des échecs se produisent.Applications must be resilient when failures occur. Des acteurs malveillants ciblent sans arrêt les applications.Malicious actors continuously target applications. Les déploiements doivent être automatisée et prévisibles.Deployments must be automated and predictable. La surveillance et les données de télémétrie sont critiques pour obtenir des informations du système.Monitoring and telemetry are critical for gaining insight into the system. Ce guide est conçu pour vous aider à bien comprendre ces changements.This guide is designed to help you navigate these changes.

Traditionnel sur siteTraditional on-premisesCloud moderneModern cloud
MonolithiqueMonolithic
Conception pour une scalabilité prévisibleDesigned for predictable scalability
Base de données relationnelleRelational database
Traitement synchroniséSynchronized processing
Conception pour éviter les échecs (MTBF)Design to avoid failures (MTBF)
Grandes mises à jour occasionnellesOccasional large updates
Gestion manuelleManual management
Serveurs en floconSnowflake servers
DécomposéDecomposed
Conception pour une mise à l’échelle élastiqueDesigned for elastic scale
Persistance polyglotte (combinaison de technologies de stockage)Polyglot persistence (mix of storage technologies)
Traitement asynchroneAsynchronous processing
Conception pour l’échec (MTTR)Design for failure (MTTR)
Petites mises à jour fréquentesFrequent small updates
Autogestion automatiséeAutomated self-management
Infrastructure immuableImmutable infrastructure

Structure de ce guideHow this guide is structured

Le guide d’architecture des applications Azure est organisé comme une série d’étapes, depuis l’architecture et la conception jusqu’à l’implémentation.The Azure Application Architecture Guide is organized as a series of steps, from the architecture and design to implementation. À chaque étape, des recommandations vous aideront pour la conception de l’architecture de votre application.For each step, there is supporting guidance that will help you with the design of your application architecture.

Diagramme illustrant la structure de ce guide, avec les sections de cet article représentées dans un diagramme de flux.

Styles d’architectureArchitecture styles

Le premier point de décision est le plus fondamental.The first decision point is the most fundamental. Quel type d’architecture concevez-vous ?What kind of architecture are you building? Cela peut être une architecture de microservices, une application multiniveau plus classique ou une solution Big Data.It might be a microservices architecture, a more traditional N-tier application, or a big data solution. Nous avons identifié plusieurs styles d’architecture distincts.We have identified several distinct architecture styles. Voici les avantages et les problèmes de chacun.There are benefits and challenges to each.

En savoir plus : Styles d’architectureLearn more: Architecture styles

Choix de technologieTechnology choices

Après avoir déterminé le type d’architecture à concevoir, vous pouvez commencer à choisir les principaux éléments technologiques de l’architecture.Knowing the type of architecture you are building, now you can start to choose the main technology pieces for the architecture. Les choix technologiques suivants sont essentiels :The following technology choices are critical:

  • Calcul fait référence au modèle d’hébergement pour les ressources de calcul utilisées par vos applications.Compute refers to the hosting model for the computing resources that your applications run on. Pour plus d’informations, consultez Choisir un service de calcul.For more information, see Choose a compute service.

  • Les magasins de données comprennent les bases de données, mais également le stockage pour les files d’attente, caches, journaux et tout ce qu’une application peut stocker d’autre d’une façon persistante.Data stores include databases but also storage for message queues, caches, logs, and anything else that an application might persist to storage. Pour plus d’informations, consultez Choisir un magasin de données.For more information, see Choose a data store.

  • Les technologies de messagerie permettent d’envoyer des messages asynchrones entre les composants du système.Messaging technologies enable asynchronous messages between components of the system. Pour plus d’informations, consultez Choisir un service de messagerie.For more information, see Choose a messaging service.

Vous devrez probablement faire des choix technologiques supplémentaires en cours de route, mais ces trois éléments (calcul, données et messagerie) sont centraux à la plupart des applications cloud et déterminent de nombreux aspects de votre conception.You will probably have to make additional technology choices along the way, but these three elements (compute, data, and messaging) are central to most cloud applications and will determine many aspects of your design.

Concevoir l’architectureDesign the architecture

Une fois que vous avez choisi le style d’architecture et les principaux composants technologiques, vous pouvez vous attaquer à la conception spécifique de votre application.Once you have chosen the architecture style and the major technology components, you are ready to tackle the specific design of your application. Chaque application est différente, mais les ressources suivantes pourront vous aider tout au long du chemin :Every application is different, but the following resources can help you along the way:

Architectures de référenceReference architectures

Selon votre scénario, l’une de nos architectures de référence peut être un bon point de départ.Depending on your scenario, one of our reference architectures may be a good starting point. Chaque architecture de référence comprend les pratiques recommandées ainsi que des considérations pour la scalabilité, la disponibilité, la sécurité, la résilience et d’autres aspects de la conception.Each reference architecture includes recommended practices, along with considerations for scalability, availability, security, resilience, and other aspects of the design. La plupart d’entre elles comprend aussi une implémentation de référence ou de solution déployable.Most also include a deployable solution or reference implementation.

Principes de conceptionDesign principles

Nous avons identifié 10 principes de conception généraux qui amélioreront la scalabilité, la résilience et la gestion de votre application.We have identified 10 high-level design principles that will make your application more scalable, resilient, and manageable. Ces principes de conception s’appliquent à tous les styles d’architecture.These design principles apply to any architecture style. Tout au long du processus de conception, gardez à l’esprit ces 10 principes de conception généraux.Throughout the design process, keep these 10 high-level design principles in mind. Pour plus d’informations, consultez Principes de conception.For more information, see Design principles.

Modèles de conceptionDesign patterns

Les modèles de conception de logiciels sont des modèles reproductibles dont l’efficacité pour résoudre des problèmes spécifiques est avérée.Software design patterns are repeatable patterns that are proven to solve specific problems. Notre catalogue de modèles de conception cloud répond aux défis spécifiques des systèmes distribués.Our catalog of Cloud design patterns addresses specific challenges in distributed systems. Ils traitent d’aspects tels que la disponibilité, la résilience, les performances et la sécurité.They address aspects such as availability, resiliency, performance, and security. Vous trouverez notre catalogue de modèles de conception ici.You can find our catalog of design patterns here.

Meilleures pratiquesBest practices

Nos articles sur les bonnes pratiques couvrent différentes considérations en matière de conception, notamment la conception d’API, la mise à l’échelle automatique, le partitionnement des données, la mise en cache, etc.Our best practices articles cover various design considerations including API design, autoscaling, data partitioning, caching, and so forth. Passez-les en revue et appliquez les bonnes pratiques adaptées à votre application.Review these and apply the best practices that are appropriate for your application.

Meilleures pratiques en matière de sécuritéSecurity best practices

Nos bonnes pratiques de sécurité décrivent comment garantir que la confidentialité, l’intégrité et la disponibilité de votre application ne sont pas compromises par des acteurs malveillants.Our security best practices describe how to ensure that the confidentiality, integrity, and availability of your application aren't compromised by malicious actors.

Piliers de qualitéQuality pillars

Une application cloud réussie s’appuiera sur les cinq piliers de la qualité d’un logiciel : Optimisation des coûts, Excellence opérationnelle, Efficacité des performances, Fiabilité et Sécurité.A successful cloud application will focus on five pillars of software quality: Cost optimization, Operational excellence, Performance efficiency, Reliability, and Security.

Tirez parti de Microsoft Azure Well-Architected Framework pour évaluer votre architecture par rapport à ces cinq piliers.Leverage the Microsoft Azure Well-Architected Framework to assess your architecture across these five pillars.

Étapes suivantesNext steps