Cet article présente une solution de haute disponibilité pour une application web traitant de grands volumes de données devant être accessibles dans un délai spécifique. La solution implique l’utilisation d’Azure Cosmos DB comme principal stockage de données et l’utilisation du flux de modifications d’Azure Cosmos DB pour répliquer les données vers un stockage secondaire à faible coût. Lorsque la période spécifiée expire, Azure Functions est utilisé pour supprimer les données d’Azure Cosmos DB. Les données dans le stockage secondaire restent disponibles plus longtemps pour permettre d’autres solutions à des fins d’audit et d’analyse. La solution offre également une haute durabilité en répliquant les données vers différents services de données.
Architecture
Téléchargez un fichier Visio de cette architecture.
Dataflow
- Le client s’authentifie auprès de Microsoft Entra ID et se voit octroyer l’accès aux applications web hébergées sur Azure App Service.
- Azure Front Door, pare-feu et équilibreur de charge de couche 7, transfère le trafic utilisateur vers la région de secours en cas de panne régionale.
- App Service héberge des sites web et des API web RESTful. Les clients du navigateur exécutent des applications JavaScript et XML asynchrones (AJAX) qui utilisent les API.
- Les API web délèguent la responsabilité au code hébergé par Functions pour gérer les tâches en arrière-plan. Les tâches sont mises en file d’attente dans les files d’attente Stockage File d’attente Azure.
- Les messages mis en file d’attente déclenchent les fonctions, qui exécutent les tâches en arrière-plan.
- Azure Cache pour Redis met en cache les données de la base de données pour les fonctions. En utilisant le cache, la solution décharge l’activité de la base de données et accélère les applications de fonction et les applications web.
- Azure Cosmos DB contient les données générées récemment.
- Azure Cosmos DB émet un flux de modification qui peut être utilisé pour répliquer les modifications.
- Une application de fonction lit le flux de modification et réplique les modifications dans les tables Stockage Table Azure. Une autre application de fonction supprime périodiquement les données expirées d’Azure Cosmos DB.
- Le Stockage Table fournit un stockage à faible coût.
Composants
- Azure Microsoft Entra ID est un service multilocataire de gestion des identités et des accès qui peut être synchronisé avec un annuaire local.
- Azure DNS est un service d’hébergement à haute disponibilité pour les domaines DNS qui fournit aux applications des requêtes DNS rapides et des mises à jour rapides des enregistrements DNS. La gestion d’Azure DNS est semblable à la gestion d’autres services Azure et utilise les mêmes informations d’identification, API, outils et informations de facturation.
- Azure Front Door est un réseau de distribution de contenu (CDN) sécurisé et un équilibreur de charge avec basculement instantané. Il fonctionne à proximité des utilisateurs, accélérant la distribution de contenu tout en protégeant les applications, les API et les sites web contre les menaces informatiques.
- App Service est un service complètement managé permettant de créer, déployer et mettre à l’échelle des applications web. Vous pouvez générer des applications avec .NET, .NET Core, Node.js, Java, Python ou PHP. Les applications peuvent s’exécuter dans des conteneurs ou sur Windows ou Linux. Dans une migration de mainframe, les écrans ou l’interface web du front-end peuvent être codés en utilisant des API REST basées sur HTTP. Ils peuvent être séparés et être sans état pour permettre l’orchestration d’un système basé sur des microservices. Pour plus d’informations sur les API web, consultez conception d’API web RESTful.
- Functions offre un environnement permettant d’exécuter de petits bouts de code, appelés fonctions, sans avoir à établir une infrastructure d’application. Vous pouvez vous en servir pour traiter des données en bloc, intégrer des systèmes, utiliser des appareils IoT (Internet des objets) et créer des API et des microservices simples. Avec les microservices, vous pouvez créer des serveurs qui se connectent aux services Azure et qui sont toujours à jour.
- Stockage Azure est un ensemble de services cloud hautement évolutifs et sécurisés pour les données, les applications et les charges de travail. Il comprend Azure Files, Stockage Table et Stockage File d’attente. Azure Files est souvent un outil efficace pour la migration des charges de travail des mainframes.
- Stockage File d’attente propose une mise en file d’attente de messages simple, économique et durable pour les charges de travail volumineuses.
- Stockage Table est un magasin de paires clé-valeur NoSQL favorisant un développement rapide basé sur des jeux de données semi-structurés volumineux. Les tables sont sans schéma et s’adaptent facilement au fur et à mesure que les besoins évoluent. L’accès est rapide et rentable pour de nombreux types d’applications, et est généralement moins cher que les autres types de stockage avec clé.
- Azure Cache pour Redis est un service de mise en cache en mémoire et un répartiteur de messages entièrement managés permettant de partager des données et des états entre des ressources de calcul. Il inclut à la fois le composant open source Redis et un produit commercial de Redis Labs sous la forme de services managés. Vous pouvez améliorer le niveau de performance des applications de traitement transactionnel en ligne à haut débit en les concevant de sorte qu’elles se mettent à l’échelle et qu’elles utilisent un magasin de données en mémoire comme Azure Cache pour Redis.
- Azure Cosmos DB est une base de données multimodèle de Microsoft qui est distribuée à l’échelon mondial et qui vous permet de mettre à l’échelle de manière indépendante et élastique le débit et le stockage de vos solutions dans n’importe quel nombre de régions géographiques. Il offre des garanties en termes de débit, de latence, de disponibilité et de cohérence avec des contrats SLA complets.
Autres solutions
- Azure Traffic Manager dirige les requêtes DNS entrantes sur les régions Azure globales en fonction de votre choix de méthodes de routage du trafic. Il fournit également le basculement automatique et le routage des performances.
- Azure Content Delivery Network met en cache le contenu statique dans des serveurs de périphérie pour une réponse rapide et utilise des optimisations réseau pour améliorer la réponse pour le contenu dynamique. Content Delivery Network est particulièrement utile quand la base des utilisateurs est mondiale.
- Azure Container Apps est un service conteneur serverless, complètement managé, qui permet de créer et déployer des applications modernes à grande échelle.
- Azure Kubernetes Service (AKS) est un service complètement managé qui sert au déploiement et à la gestion d’applications conteneurisées. Vous pouvez l’utiliser pour implémenter une architecture de microservices dont les composants sont mis à l’échelle indépendamment à la demande.
- Azure Container Instances offre un moyen simple et rapide d’exécuter des tâches sans avoir à gérer l’infrastructure. Il est utile pendant le développement ou pour l’exécution de tâches non planifiées.
- Azure Service Bus est un service de messagerie cloud fiable pour une intégration hybride simple. Il peut être utilisé à la place de Stockage File d’attente Azure dans cette architecture. Pour plus d’informations, consultez Files d’attente de stockage et files d’attente Service Bus - comparaison et différences.
Détails du scénario
Cette solution utilise Azure Cosmos DB pour stocker le volume de données important qu’utilise l’application web. Les applications web qui gèrent de grandes quantités de données bénéficient de la capacité d’Azure Cosmos DB à mettre à l’échelle de manière élastique et indépendante le débit et le stockage.
Un autre composant de solution clé est le flux de modification Azure Cosmos DB. Quand des modifications sont apportées à la base de données, le flux de modification est envoyé à un déclencheur Functions piloté par les événements. Une fonction exécute et réplique ensuite les modifications apportées aux tables de Stockage Table, ce qui offre une solution de stockage à faible coût.
L’application web a besoin des données pour une durée limitée. La solution profite de cette réalité pour réduire un peu plus les coûts. Plus précisément, une autre fonction s’exécute régulièrement et supprime les données arrivées à expiration d’Azure Cosmos DB. Indépendamment de leur déclenchement, les fonctions peuvent aussi être planifiées pour s’exécuter à des heures définies.
Cas d’usage potentiels
L’architecture est indiquée pour toute application qui :
- utilise une quantité massive de données ;
- exige que les données soient toujours disponibles quand elle en a besoin ;
- utilise des données qui expirent.
Il s’agit par exemple d’applications qui permettent de :
- Personnalisez l’expérience client et stimulez l’engagement grâce aux flux de données en direct et aux capteurs dans les emplacements physiques.
- Suivre les habitudes de dépense client et le comportement d’achat.
- Suivez les flottes de véhicules en collectant des données sur l’emplacement des véhicules, leurs performances et le comportement des conducteurs pour améliorer l’efficacité et la sécurité.
- Prévisions météorologiques.
- Offrir des systèmes de trafic intelligents ou implémenter des systèmes de trafic intelligents ou utiliser la technologie intelligente pour surveiller le trafic.
- analysent les données IoT de fabrication ;
- Afficher les données des compteurs intelligents ou utiliser la technologie intelligente pour surveiller les données des compteurs.
Considérations
Ces considérations implémentent les piliers d’Azure Well-Architected Framework qui est un ensemble de principes directeurs qui permettent d’améliorer la qualité d’une charge de travail. Pour plus d’informations, consultez Microsoft Azure Well-Architected Framework.
- Pendant que vous implémentez cette solution et en assurez la maintenance, vous vous exposez à des coûts supplémentaires.
- L’utilisation du flux de modification pour la réplication requiert moins de maintenance de code que la réplication dans l’application principale.
- Vous devez migrer les données existantes. Le processus de migration a besoin de scripts ou de routines ad hoc pour copier les anciennes données dans des comptes de stockage. Quand vous migrez les données, veillez à utiliser des horodatages et des indicateurs de copie pour suivre la progression de la migration.
- Pour éviter de supprimer des entrées du stockage secondaire Table Azure, ignorez les flux de suppression générés lorsque vos fonctions suppriment des entrées d’Azure Cosmos DB.
Contributeurs
Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.
Auteur principal :
- Nabil Siddiqui | Architecte de solution cloud - Innovation numérique et applicative
Étapes suivantes
- Style d’architecture Web-File d’attente-Worker
- Concevoir une application distribuée géographiquement
- Distribuer les données à l’échelle mondiale avec Azure Cosmos DB
- Choisir l’API appropriée pour Azure Cosmos DB
- Stocker et accéder aux données NoSQL avec Azure Cosmos DB pour Table
- Utiliser des données NoSQL dans Azure Cosmos DB
- Guide pratique pour modéliser et partitionner des données sur Azure Cosmos DB à l’aide d’un exemple concret
- Options de migration de vos données locales ou cloud vers Azure Cosmos DB
- Migrer des centaines de téraoctets de données dans Azure Cosmos DB
- Modèles de conception des flux de modification dans Azure Cosmos DB
- Architectures basées sur des événements serverless avec Azure Cosmos DB et Azure Functions
- Présentation du service Azure Data Factory
- Orchestrer le déplacement et la transformation des données dans le pipeline Azure Data Factory ou Azure Synapse