Modifier

Application web multirégion avec réplication personnalisée des tables de stockage

Azure Front Door
Azure App Service
Azure Functions
Stockage de table Azure
Cache Azure pour Redis

Cette architecture fournit une solution haute disponibilité pour une application web qui utilise de grandes quantités de données. Il s’agit d’une approche flexible qui peut fournir une solution globale distribuant des applications et des données pour les maintenir à proximité des utilisateurs.

L’architecture requiert un logiciel de réplication personnalisé. En fonction des applications et de la configuration, cela peut être difficile à créer.

Voici quelques configurations possibles :

  • Actif/passif : il existe une région principale qui fournit normalement un service à tous les utilisateurs. Il y a également une région de secours qui devient active lorsque la région primaire ne peut pas fonctionner. Lorsque le système principal est actif, un service de réplication réplique les modifications apportées à la base de données dans la région de secours.

  • Actif/actif : il existe une région primaire qui est normalement active, fournissant un service de lecture aux utilisateurs à proximité et un service d’écriture à tous les utilisateurs. Une ou plusieurs autres régions sont actives et fournissent un service en lecture seule aux utilisateurs situés à proximité. Les écritures sont toujours dirigées vers la région primaire, et les lectures sont toujours dirigées vers la région active la plus proche.

    Comme pour la configuration active/passive, il existe une région de secours qui devient active lorsque la région primaire ne peut pas fonctionner. Lorsque le système principal est actif, un service de réplication réplique les modifications apportées à la base de données aux régions en lecture seule et à la région de secours. Lorsque la région de secours est active, le service de réplication réplique les modifications apportées à la base de données aux régions en lecture seule.

    L’un des inconvénients de cette approche est la latence élevée des opérations d’écriture.

  • Multi-active : il existe plusieurs régions actives, chacune capable de fournir un service complet aux utilisateurs. L’activité de l’utilisateur est toujours dirigée vers la région active la plus proche.

    L’implémentation de multi-active est assez complexe et peut nécessiter une conception et une implémentation d’experts.

La réplication étant une implémentation personnalisée, le niveau de cohérence peut être celui qui est nécessaire.

La difficulté liée à l’implémentation de la réplication personnalisée et le temps nécessaire sont des éléments importants à prendre en compte avec cette architecture.

Notes

Dans certains cas, votre application peut nécessiter plusieurs comptes de stockage. Pour plus d’informations, consultez les considérations.

Cas d’usage potentiels

L’architecture peut être adaptée à toute application qui utilise de gros volumes de données qui doivent toujours être disponibles. Il s’agit par exemple d’applications qui permettent de :

  • Suivre les habitudes de dépense client et le comportement d’achat (industrie du commerce de détail).
  • Prévoir la météorologie (agriculture, environnement et médias/industries d’actualités).
  • 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 (industries de l’automobile et du transport).
  • Analyser les données de l’Internet des objets de fabrication (IoT).
  • Afficher les données des compteurs intelligents ou utiliser la technologie intelligente pour surveiller les données des compteurs (industrie de l’énergie).

Architecture

Architecture d’un système résilient qui utilise Stockage Table Azure. Il peut avoir plusieurs régions actives et peut basculer vers une région de secours.

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

Dataflow

  1. Le client s’authentifie par Microsoft Entra ID et se voit octroyer l’accès aux applications web hébergées sur Azure App Service.
  2. Azure Front Door, un pare-feu et un équilibreur de charge de couche 7, bascule le trafic utilisateur vers une autre région Azure en cas de panne régionale.
  3. Azure App Service héberge les sites web et les API web RESTful. Les clients de navigateur exécutent des applications AJAX qui utilisent les API.
  4. Les API web délèguent des applications de fonction 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 applications de fonction hébergées par Azure Functions effectuent les tâches en arrière-plan, déclenchées par les messages mis en file d’attente.
  6. Le logiciel de réplication personnalisée garantit que les tables restent identiques parmi les régions.
  7. Azure Cache pour Redis met en cache les données de la table pour les applications de fonction. Cela décharge l’activité de la base de données et accélère les applications de fonction et les applications web.
  8. Stockage Table Azure contient les données utilisées par les applications web.

Composants

  • 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.
  • Azure App Service est un service complètement managé pour générer, 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.
  • Azure Functions fournit un environnement pour exécuter de petits morceaux de code, appelés fonctions, sans avoir à établir une infrastructure d’application. Vous pouvez l’utiliser pour traiter des données en bloc, intégrer des systèmes, utiliser IoT 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 Azure et Stockage File d’attente Azure. Azure Files est souvent un outil efficace pour la migration des charges de travail des mainframes.
  • Stockage File d’attente Azure fournit une mise en file d’attente de messages simple, économique et durable pour les charges de travail volumineuses.
  • Stockage Table Azure est un stockage de valeurs de clé NoSQL permettant un développement rapide à l’aide de 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 les performances des applications de traitement transactionnel en ligne à haut débit en les concevant pour mettre à l’échelle et pour utiliser un magasin de données en mémoire comme Azure Cache pour Redis.

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 (CDN) met en cache le contenu statique des serveurs de périphérie pour des réponses rapides et utilise des optimisations du réseau pour améliorer la réponse pour le contenu dynamique. CDN 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.

Considérations

  • L’architecture requiert un logiciel de réplication personnalisé. Cela peut être difficile à créer, en fonction des applications et de la configuration. La difficulté liée à l’implémentation de la réplication personnalisée et le temps nécessaire sont des éléments importants à prendre en compte avec cette architecture.

  • La réplication étant conçue sur mesure, les développeurs disposent d’une grande souplesse pour mettre en œuvre une stratégie de cohérence des données.

  • Il existe des limites de performances sur Stockage Table, qui peuvent être contournées par l’ajout de comptes de stockage. Les circonstances suivantes peuvent nécessiter davantage de comptes :

    • L’implémentation d’une architecture mutualisée pour prendre en charge plusieurs clients
    • La prise en charge de clients avec des taux de transaction supérieurs
    • La prise en charge de clients avec des jeux de données volumineux
    • L’accélération de l’accès aux données par la répartition des données sur plusieurs comptes de stockage
    • La séparation des données en niveaux chaud, froid et archive
    • La création de copies de données à des fins de sauvegarde et de création de rapports

    Pour plus d’informations, consultez Objectifs de performance et de scalabilité pour Stockage Table.

  • Si votre application contient déjà des données, vous devez écrire des routines pour copier les anciennes données dans des comptes de stockage. Assurez-vous d’avoir des indicateurs d’horodatage et de copie pour suivre la progression de la migration des données.

Contributeurs

Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.

  • Nabil Siddiqui | Architecte de solution cloud - Innovation numérique et applicative

Étapes suivantes