Internationaliser
Dans l’unité précédente, nous avons décrit la mise à l’échelle du calcul pour augmenter sa disponibilité dans le processus. Nous avons également suggéré l’ajout d’Azure Cache pour Redis afin d’améliorer les performances et le scale-out des bases de données Azure SQL avec un partitionnement.
L’étape suivante, lorsque votre activité croît, peut être d’internationaliser. Toutefois, il y a des choses à prendre en compte avant d’essayer d’implémenter une architecture au niveau mondial.
Questions à se poser
La première question est : Avez-vous vraiment besoin d’internationaliser ?
Il est important de comprendre les difficultés rencontrées par nos clients avant de s’engager dans une telle tâche. Par conséquent, posez-vous quelques questions supplémentaires :
- Pouvez-vous rapprocher le contenu de vos utilisateurs via un réseau de distribution de contenu ?
- Avez-vous vraiment besoin de mettre à l’échelle ce système particulier sur deux zones géographiques (ou plus) ? Par exemple, un utilisateur situé aux États-Unis doit-il avoir exactement le même compte au Royaume-Uni ? Des systèmes indépendants seraient-ils plus appropriés ? Ce modèle est courant dans l’e-commerce.
- Si vous avez vraiment besoin d’un système distribué à l’échelle mondiale, de quelle cohérence avez-vous besoin pour la base de données ? Une cohérence forte à l’échelle mondiale est très difficile à obtenir et n’est pas autorisée dans des services comme Cosmos DB, littéralement à cause de la vitesse de la lumière.
Cohérence des données
Examinons un peu plus en détail le problème de la cohérence des données.
La cohérence dans les systèmes de base de données fait référence à l’obligation que toute transaction de base de données a de modifier les données affectées uniquement selon les méthodes autorisées. Deux modèles de cohérence sont utilisés en informatique distribuée.
La cohérence forte offre une garantie de linéarisabilité. Garantit que les lectures retournent la version validée la plus récente d’un élément.
Ensuite, nous avons la cohérence éventuelle, c’est-à-dire l’idée qu’une base de données ou un système finit par devenir cohérent au fil du temps. Il n’existe aucune garantie de classement pour les lectures. En l’absence d’écritures ultérieures, les réplicas finissent par converger.
Outils pour internationaliser
Si vous avez vraiment besoin d’étendre votre application à l’échelle mondiale, certains services Azure peuvent vous aider à y parvenir. Jetons un œil à Azure Traffic Manager et Azure Front Door :
- Azure Traffic Manager est un service mondial d’équilibrage de charge basé sur DNS. Il utilise DNS et des sondes d’intégrité pour router vos utilisateurs vers le meilleur back-end sain en fonction des stratégies de routage que vous avez définies. Cette définition peut être basée sur les performances, la localisation, le tourniquet (round robin), etc. Une fois qu’un back-end sain a été identifié, les clients se connectent toujours directement au back-end.
- Azure Front Door Service est un réseau ADN (Application Delivery Network) en tant que service, qui offre diverses fonctionnalités d’équilibrage de charge de couche 7 pour vos applications. Il fournit l’accélération de site dynamique (DSA) et un équilibrage de charge mondial, avec basculement en quasi-temps réel. Il s’agit d’un service hautement disponible et scalable, complètement géré par Azure.
Azure Front Door est fondamentalement un équilibreur de charge mondial, basé sur HTTP. Le client établit une connexion avec Front Door, si bien que Front Door sert de proxy pour la demande des utilisateurs. Si l’élément demandé n’est pas dans le cache, la règle de routage appropriée est identifiée. Ensuite, il vérifie la sonde d’intégrité du back-end approprié et, en supposant que tout est sain, il transfère la demande de l’utilisateur au meilleur back-end en fonction de la méthode de routage.
Comme Azure Front Door proxyse la connexion, vous pouvez effectuer certaines fonctions avancées, comme l’exécution d’un pare-feu d’applications web et la mise en cache, ce qui est utile pour la mise à l’échelle. Aucune de ces fonctions n’est réalisable avec Traffic Manager.
Le diagramme montre comment utiliser les deux ensemble.
Cette configuration utilise Traffic Manager pour l’équilibrage de charge simple basé sur DNS vers vos ressources statiques dans des comptes de stockage. Elle utilise également Front Door pour le routage basé sur un chemin sur votre application web dans App Service et des machines virtuelles.