De l'architecture monolithique à l'architecture conteneurisée – maintenance applicative
Giuseppe Gangemi, fournisseur mondial de fixations et de solutions d'assemblage, souhaitait améliorer l'évolutivité de son application GlassCad et réduire les coûts d'infrastructure. Nous avons amélioré les performances et la sécurité de l'application en mettant en œuvre des conteneurs, l'auto-scaling et des services AWS sélectionnés. Nous avons également utilisé Terraform pour rationaliser la gestion de l'infrastructure et faciliter le déploiement dans divers environnements.
Services
Technologies
À propos du client
FREEDOM Giuseppe Gangemi est un fournisseur mondial de solutions de fixation et d'assemblage. L'entreprise est spécialisée dans la fourniture de services liés aux industries de production et de transformation du verre. GlassCad est une application créée pour aider les clients dans la conception et la planification d'espaces vitrés. Elle permet d'optimiser le processus de commande et d'améliorer la découpe et l'usinage du verre. Le logiciel s'appuie sur des algorithmes avancés et la technologie CAD pour générer des plans de découpe efficaces. Cela minimise les déchets et maximise l'utilisation des matériaux, avec un soin avancé porté à la sélection optimale des ferrures et des matériaux auxiliaires.
Maintenance applicative – objectifs du projet
Les principaux objectifs du projet étaient les suivants :
- Migrer l'application AWS de la région « eu-central-1 » vers « eu-west-1 »
- Migrer l'application d'une architecture monolithique vers une architecture conteneurisée
- Améliorer l'évolutivité et la disponibilité de l'application
- Réduire les coûts d'infrastructure
- Mettre en place des environnements de développement, de préproduction et de production
- Mettre en œuvre un réseau de diffusion de contenu (CDN) pour améliorer les performances et réduire la latence
- Mettre en œuvre une solution de base de données managée pour l'application
- Mettre en œuvre AWS Secrets Manager pour stocker et récupérer en toute sécurité les données sensibles de l'application
- Mettre en œuvre AWS Certificate Manager pour gérer les certificats SSL/TLS de l'application
arrow_circle_right témoignage
Ce que l'on dit de nous
Étapes du projet
- Planification et conception
La première étape consistait à planifier la migration et à concevoir la nouvelle architecture. Cela impliquait l'analyse de l'application existante, l'identification des composants pouvant être conteneurisés et la création de la nouvelle infrastructure sur AWS. L'équipe a décidé d'utiliser Amazon Elastic Container Service (ECS) pour gérer les conteneurs, Amazon CloudFront comme CDN pour améliorer les performances et réduire la latence, et Amazon Relational Database Service (RDS) comme solution de base de données managée pour l'application. Elle a également décidé de mettre en œuvre AWS Secrets Manager pour stocker et récupérer en toute sécurité les données sensibles de l'application et AWS Certificate Manager pour gérer les certificats SSL/TLS de l'application.
- Conteneurisation de l'application
La tâche suivante consistait à conteneuriser l'application. Il s'agissait de décomposer l'application monolithique en composants plus petits pouvant être gérés et mis à l'échelle indépendamment. L'équipe a utilisé Docker pour conteneuriser les composants de l'application et a créé des images pour chaque composant afin qu'elles puissent être stockées dans Amazon Elastic Container Registry (ECR).
- Construction de la nouvelle infrastructure avec Terraform
Une fois les conteneurs prêts, l'équipe a commencé à construire la nouvelle infrastructure sur AWS à l'aide de Terraform. Nous avons créé des modules Terraform distincts pour les environnements de développement, de préproduction et de production, chacun avec ses propres VPC, sous-réseaux, équilibreurs de charge, groupes d'auto-scaling, clusters ECS et instances RDS.
- Mise en œuvre d'Amazon CloudFront
Une fois la nouvelle infrastructure en place, nous avons implémenté Amazon CloudFront en tant que CDN pour améliorer les performances et réduire la latence. Nous avons également créé une distribution CloudFront pour chaque environnement et l'avons configurée pour mettre en cache les contenus fréquemment consultés, tels que les images et les fichiers statiques.
- Mise en œuvre d'Amazon RDS
L'étape suivante consistait à mettre en œuvre Amazon RDS comme solution de base de données gérée pour l'application. Nous avons créé des instances RDS pour chaque environnement et configuré les bases de données pour utiliser Amazon Aurora, un moteur de base de données hautement disponible et évolutif. Pour cette raison, notre équipe a également configuré les groupes de sécurité et les contrôles d'accès afin de garantir la sécurité des bases de données.
- Mise en œuvre d'AWS Secrets Manager
L'équipe a ensuite mis en place AWS Secrets Manager. Cela nous a permis de stocker et de récupérer en toute sécurité des données applicatives sensibles telles que les identifiants de base de données, les clés API et d'autres secrets. Le SDK AWS a été utilisé pour accéder par programmation aux secrets depuis l'application, et des contrôles d'accès précis ont été mis en œuvre pour garantir que seuls les utilisateurs autorisés pouvaient accéder aux secrets.
- Mise en œuvre d'AWS Certificate Manager
AWS Certificate Manager a été introduit pour gérer les certificats SSL/TLS de l'application. Nous avons utilisé ACM pour générer des certificats SSL/TLS pour chaque environnement et configuré les équilibreurs de charge et les services ECS pour utiliser ces certificats afin d'assurer une communication sécurisée avec l'application.
- Migration de l'application
Une fois la nouvelle infrastructure, le CDN, les bases de données, Secrets Manager et Certificate Manager en place, il était temps de commencer à migrer l'application de l'ancienne infrastructure vers la nouvelle. Nous avons utilisé une stratégie de déploiement progressif pour déployer graduellement les nouveaux conteneurs et valider le fonctionnement de l'application après chaque déploiement. De plus, AWS CloudWatch a permis de surveiller les performances et la disponibilité de l'application, et nous avons mis en place l'auto-scaling pour garantir que l'application puisse gérer une augmentation du trafic.
- Tests et validation
Une fois la migration terminée, notre équipe a mené des tests et une validation approfondis. Il était nécessaire de s'assurer que l'application fonctionnait correctement dans le nouvel environnement. C'est pourquoi nous avons également réalisé des tests de charge approfondis pour valider la capacité de l'application à gérer le volume de trafic et la charge attendus.
Processus

Résultats
Nous avons mené à bien le projet de maintenance applicative, et la nouvelle infrastructure a atteint les objectifs d'amélioration de l'évolutivité, de la disponibilité et de réduction des coûts d'infrastructure. L'utilisation de conteneurs et de l'auto-scaling a permis à l'application de gérer un trafic et une charge accrus, tandis que l'utilisation d'AWS Secrets Manager et Certificate Manager a également contribué à améliorer la sécurité de l'application. La mise en œuvre d'AWS CloudFront a également amélioré les performances de l'application et réduit la latence pour l'utilisateur. Enfin, l'utilisation de Terraform a permis une gestion et un déploiement faciles de l'infrastructure sur plusieurs environnements, et a simplifié le contrôle de l'ensemble de la pile applicative, ce qui a répondu au besoin de M. Gangemi d'un processus de réplication rationalisé.
arrow_circle_right notre travail
Découvrez d'autres réussites de nos clients
arrow_circle_rightCONTACT