Maison > interface Web > js tutoriel > Du local au mondial : la migration Azure qui a accru notre efficacité et notre sécurité

Du local au mondial : la migration Azure qui a accru notre efficacité et notre sécurité

Linda Hamilton
Libérer: 2025-01-11 07:03:43
original
884 Les gens l'ont consulté

Contexte : aperçu du système d'origine

Dans l'un de mes emplois, j'ai travaillé sur un système de gestion robuste, développé en Java, intégré à RabbitMQ et PostgreSQL, avec pour mission de contrôler les paiements, les expéditions et les stocks d'une grande plateforme de commerce électronique. Le système d'origine, qui fonctionnait localement dans un centre de données sur site, ne répondait plus aux demandes croissantes d'évolutivité et de fiabilité. Ce système était confronté à des défis tels qu'une latence élevée dans les transactions critiques, des difficultés de maintenance et une augmentation des coûts opérationnels à mesure que les charges de travail augmentaient.

L'objectif de cette migration était non seulement de déplacer le système vers le cloud, mais également d'améliorer l'architecture pour la rendre plus évolutive, résiliente et efficace. Le choix d'Azure comme plate-forme cloud a été motivé par sa capacité à répondre aux besoins spécifiques d'une architecture moderne et robuste tout en prenant en charge les meilleures pratiques en matière de sécurité, de gouvernance et d'optimisation des coûts, comme décrit dans Azure Well -Architected Framework.

Contexte système : le nouveau modèle dans Azure

Aperçu

Le nouveau système est conçu pour être hautement évolutif, résilient et facile à gérer, en utilisant les principes d'Azure Well-Architected Framework. L'architecture est conçue pour gérer l'augmentation du trafic, garantir une haute disponibilité et réduire les coûts opérationnels. Migrer vers Azure ne signifiait pas seulement déplacer les composants existants, mais également revoir et moderniser l'architecture pour garantir que le système était agile, sécurisé et efficace.

L'architecture a été planifiée en quatre niveaux du modèle C4, en mettant l'accent sur une vision claire du contexte, des conteneurs, des composants et du code. Cela garantirait que toutes les parties prenantes – des ingénieurs aux gestionnaires – sont alignées sur les objectifs d’évolutivité et de fiabilité du nouveau système.

Contexte (diagramme de contexte)

Le diagramme contextuel illustre le système de paiement, de fret et de gestion des stocks dans son ensemble. Le système interagit avec divers composants externes tels que les clients, les systèmes de paiement et les plateformes de transport. Ce diagramme se concentre sur la manière dont les utilisateurs et les systèmes externes interagissent avec le système.

Do Local ao Global: A Migração para Azure que Aumentou Nossa Eficiência e Segurança

Le nouveau système a été divisé en trois domaines d'activité principaux :

  1. Gestion des paiements : traite les transactions financières en utilisant l'intégration avec des passerelles de paiement et d'autres services financiers externes.
  2. Gestion du fret : interagit avec les prestataires logistiques pour calculer et surveiller l'état de livraison des commandes.
  3. Gestion des stocks : surveille les niveaux de stock et génère des alertes automatiques lorsque les articles sont proches de la pénurie.

Chacun de ces domaines a été traité comme un microservice distinct, facilitant une évolutivité indépendante et une gestion simplifiée. Le diagramme contextuel se concentre sur les interactions entre ces services et les plateformes externes, telles que les systèmes de paiement, les systèmes d'expédition et les services utilisateurs.

Conteneurs (diagramme des conteneurs)

Le diagramme de conteneur se concentre sur les principaux conteneurs logiciels au sein de l'architecture. Chaque service a été transformé en un conteneur d'application distinct, exploitant les capacités de conteneurisation de Kubernetes sur Azure. RabbitMQ a été remplacé par un Azure Service Bus pour améliorer la communication asynchrone, tandis que PostgreSQL a été migré vers Azure Database pour PostgreSQL, avec des optimisations pour garantir une plus grande disponibilité et évolutivité.

Do Local ao Global: A Migração para Azure que Aumentou Nossa Eficiência e Segurança

Les principaux conteneurs comprennent :

  1. Frontend Web (App) : une application Web qui interagit avec les utilisateurs pour gérer les commandes, les paiements, l'expédition et l'inventaire. Cette application a été déplacée vers Azure App Service.
  2. API Gateway : Un service qui gère le routage des demandes vers des microservices spécifiques de paiement, d'expédition et d'inventaire. Utilise Azure API Management pour gérer la sécurité, l'authentification et le contrôle du trafic.
  3. Microservice de paiement : Responsable du traitement et de la validation des transactions financières. Il a été restructuré pour communiquer avec les passerelles de paiement et effectuer des transactions en toute sécurité. Il était hébergé sur Azure Kubernetes Service (AKS).
  4. Microservice d'expédition : Responsable du calcul des frais d'expédition et du suivi de l'état des livraisons. Ce service communique avec les prestataires logistiques externes via des API RESTful et a été hébergé dans des conteneurs sur AKS.
  5. Microservice d'inventaire : responsable du contrôle des stocks, de l'émission d'alertes de stock faible et de la communication avec les systèmes de vente pour garantir que les produits sont disponibles pour les clients. Ce service a également été déplacé vers AKS.
  6. Base de données PostgreSQL : la base de données a été migrée vers Azure Database pour PostgreSQL, offrant une haute disponibilité et une sauvegarde automatique. La migration a été réalisée à l'aide de l'outil Azure Database Migration Service.
  7. Service Bus (RabbitMQ remplacé par Azure Service Bus) : gère les files d'attente de messages asynchrones entre les microservices, garantissant que les transactions et les processus métier se déroulent de manière efficace et résiliente.

Composant (Diagramme des composants)

Le diagramme des composants se concentre sur l'architecture interne de chacun des microservices. Chaque composant est représenté comme une unité logicielle autonome et facilement évolutive.

Microservice de paiement

Do Local ao Global: A Migração para Azure que Aumentou Nossa Eficiência e Segurança

Les composants clés incluent :

  1. Composant de traitement des paiements : responsable de la communication avec la passerelle de paiement, de la validation et du traitement des paiements. Utilise Azure Key Vault pour stocker en toute sécurité les informations d'identification et les informations sensibles.
  2. Composant de notification : envoie des notifications au client et à l'administrateur concernant l'état du paiement.

Microservice d’expédition

Do Local ao Global: A Migração para Azure que Aumentou Nossa Eficiência e Segurança

Les composants clés incluent :

  1. Composant de calcul d'expédition : interagit avec des API externes pour calculer les frais d'expédition en fonction du poids, de la destination et d'autres variables. Il a été adapté pour utiliser Azure Logic Apps afin de s'intégrer à des services tiers.
  2. Composant de suivi : surveille l'état de livraison des commandes et met automatiquement à jour les clients via Azure Functions.

Microservice d'inventaire

Do Local ao Global: A Migração para Azure que Aumentou Nossa Eficiência e Segurança

Les composants clés incluent :

Composante de contrôle des stocks : responsable du suivi et de l'ajustement des niveaux de stock. S'intègre aux systèmes de vente pour garantir que les produits ne s'épuisent pas sans un réapprovisionnement programmé.
Composant Alertes : génère des alertes pour les responsables du réapprovisionnement des stocks lorsque les niveaux atteignent le minimum.

Code (diagramme de code)

Microservice de paiement :

Do Local ao Global: A Migração para Azure que Aumentou Nossa Eficiência e Segurança

Microservice d’expédition :

Do Local ao Global: A Migração para Azure que Aumentou Nossa Eficiência e Segurança

Microservice d'inventaire :

Do Local ao Global: A Migração para Azure que Aumentou Nossa Eficiência e Segurança

Conclusion : améliorations et résultats en matière de migration

La migration du système vers Azure a apporté plusieurs améliorations significatives :

  1. Évolutivité : l'utilisation d'Azure Kubernetes Service (AKS) et d'Azure App Service a permis à chaque microservice d'évoluer indépendamment en fonction de la charge de travail, garantissant ainsi que le système puisse gérer les pics de trafic sans problème.
  2. Résilience : l'utilisation d'Azure Service Bus pour la messagerie asynchrone et d'Azure Database pour PostgreSQL avec haute disponibilité a permis de garantir que le système était plus résilient aux pannes et aux pannes.
  3. Coûts optimisés : la migration vers le cloud a permis d'optimiser les coûts grâce au modèle de paiement à l'utilisation, en plus de réduire les coûts d'infrastructure et de maintenance des serveurs physiques.
  4. Sécurité : l'utilisation d'Azure Key Vault pour le stockage sécurisé des informations d'identification et la mise en œuvre de pratiques de sécurité telles que l'authentification multifacteur (MFA) et le contrôle d'accès strict ont augmenté la sécurité globale du système.

En utilisant les meilleures pratiques d'Azure Well-Architected Framework et en mettant en œuvre le modèle C4, la migration a non seulement modernisé l'architecture, mais a également assuré un système plus fiable, évolutif et sécurisé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal