Modifier

Stockage minimal – Flux de modification pour répliquer les données

Azure Front Door
Azure App Service
Azure Functions
Azure Cosmos DB
Stockage de table Azure

Cet article présente une solution de haute disponibilité pour une application web qui utilise de gros volumes de données qui doivent être disponibles sur une période précise. Elle stocke les données dans Azure Cosmos DB et utilise le flux de modification Azure Cosmos DB pour répliquer les données vers le stockage secondaire. À l’issue de la période en question, Azure Functions est utilisé pour supprimer les données d’Azure Cosmos DB.

Architecture

Architecture d’un système résilient qui utilise deux types de stockage pour réduire les coûts.

Téléchargez un fichier Visio de cette architecture.

Dataflow

  1. 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.
  2. 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.
  3. App Service héberge des sites web et des API web RESTful. Les clients de navigateur exécutent des applications AJAX qui utilisent les API.
  4. 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.
  5. Les messages mis en file d’attente déclenchent les fonctions, qui exécutent les tâches en arrière-plan.
  6. 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.
  7. Azure Cosmos DB contient les données générées récemment.
  8. Azure Cosmos DB émet un flux de modification qui peut être utilisé pour répliquer les modifications.
  9. 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.
  10. 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 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 :

  • Suivre les habitudes de dépense client et le comportement d’achat.
  • 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