De AWS Elastic Beantsalk à ECS: Refactoring réussi

Étude de cas

lire

Chez Technofy, nous sommes ravis de vous partager le projet de refactoring d'architecture de WeWeb. Cet article décrit les défis auxquels ils ont été confrontés et les solutions que nous avons proposées en tant que partenaire de confiance pour assurer une optimisation fluide et efficace de leur infrastructure.


Contexte

WeWeb est une plateforme de développement web no-code permettant aux utilisateurs de créer le front-end d’applications web sans avoir à coder. Grâce à son interface intuitive de type drag & drop, elle offre la possibilité et la flexibilité de créer des front-endà la fois responsifs et esthétiques sans compétences techniques poussées.  

En tant que constructeur front-end no code, WeWeb peut être associé à n'importe quel back-end (base de données et serveur). Il prend en charge l'intégration de données en temps réel et l'automatisation, rendant ainsi la création d’applications web professionnelles beaucoup plus rapide.

La solution Weweb reposait principalement sur les services AWS ElasticBeanstalk, AWS Codebuild, AWS Codepipeline et RDS. 

ElasticBeanstalk ElasticBeanstalk est un service managé d’AWS permettant de déployer et de mettre à l'échelle des applications et services Web. C’est une solution pratique et efficace pour les équipes techniques ayant peu d'expérience dans la gestion des infrastructures du fait de la rapidité de la mise en œuvre et de sa simplicité.

Dû à la popularité croissante de sa solution et anticipant une forte augmentation du trafic, WeWeb a souhaité optimiser son infrastructure afin d'offrir à ses clients des performances et une fiabilité de premier ordre.  


Les enjeux principaux  

Avec la montée en popularité de la plateforme et l'évolution des besoins des équipes techniques vers une granularité accrue, plusieurs besoins ont été identifiés :

À ces besoins immédiats s'ajoutent des perspectives à plus long terme, telles que l'adoption d'une architecture multi-région, l'intégration avec des outils serverless d'AWS et la mise en œuvre de solutions event-driven (architecture orientée événements).  

Après une analyse approfondie, il est apparu que l'infrastructure de WeWeb n'était pas optimisée pour le cloud et ne suivait pas les meilleures pratiques DevOps, de sorte que l'optimisation de l'infrastructure actuelle était difficilement possible. Cela, plus le fait qu’ElasticBeanstalk ne répondait plus aux exigences de WeWeb en termes de granularité nous a conduit à un projet de refactoring de l’architecture, où l'objectif était d'améliorer et d'optimiser à la fois sur le plan financier et technique l'infrastructure existante.  


Présentation de la solution

Suite à cette analyse de l’existant, nous avons pu établir une architecture cible adaptée et évolutive qui pourra accompagner WeWeb sur le long terme.  

Le cœur de cette solution d'architecture est l'exécution des charges avec AWS ECS (Elastic Container Service). Cette solution a été retenue car c’est un service managé d’AWS qui permet d'exécuter des containers, et qui demande surtout peu de maintenance et de compétences spécifiques comparé à un cluster EKS (Kubernetes) par exemple. Pour en savoir plus, rendez-vous sur https://www.technofy.io/blog/container-orchestration-and-execution-on-aws


Les principaux avantages d'ECS sont les suivants : 

Cette évolution offrait également une occasion propice pour mettre en place de l'Infrastructure as Code via Terraform et des pipelines CI/CD, cela toujours dans l’objectif de simplifier les déploiements et la gestion de l'infrastructure.  

Architecture simplifiée
Weweb - Architecture simplifiée

Pipeline CI/CD

Nous avons mis en place un pipeline de déploiement CI/CD classique sur Github : 

Flux de travail CI/CD
Vue de haut niveau du pipeline CI/CD

Monitoring et alerting

En ce qui concerne le monitoring de l'infrastructure, nous avons envisagé deux solutions principales : AWS et Datadog. Afin d'aider WeWeb à faire le choix le plus adapté, nous avons opté pour un test des deux solutions.

Initialement, nous avons mis en place le monitoring via AWS, tandis que l'intégration de Datadog est prévue après la migration. Cette approche permet de nous concentrer sur un seul sujet à la fois, offrant ainsi le temps nécessaire pour évaluer ces solutions.

Le système de monitoring déployé sur AWS est basé principalement sur AWS CloudWatch. Il comprend des alarmes pour chaque service, avec un système de notification par e-mail et / ou Slack. Ces alarmes sont également associées à des tableaux de bord personnalisés pour chaque service et pour une vue globale. De plus, la centralisation des logs a été un élément important pour faciliter la recherche d'erreurs et le processus de débogage.

Sécurité 

Pour assurer une sécurité optimale à plusieurs niveaux, les éléments suivants ont été mis en œuvre :


Infrastructure multi-régions

Afin de réduire la latence dans certaines régions, nous avons conçu et développé un module terraform qui permet de provisionner facilement une partie de l'infrastructure dans une (ou plusieurs) nouvelle(s) région(s).  

Lorsqu'une nouvelle région est ajoutée, une réplication partielle de l'infrastructure est automatiquement créée. Ce module déploie les composants essentiels nécessaires pour améliorer l'expérience du client final tout en contrôlant les coûts. Les éléments clés sont les suivants : 

Nous avons utilisé le service AWS Route 53 latency based routing pour les services DNS, qui route automatiquement les demandes vers le Loadbalancer le plus proche (voir le diagramme). Ainsi, quel que soit l'endroit où se trouve le client final, lorsque de nouvelles régions sont ajoutées, ses demandes sont routées vers la région qui répond le plus rapidement. Cela améliore l'expérience globale des utilisateurs de Weweb dans le monde entier, et ajoute également de la résilience (dans l'hypothèse d'une panne régionale).

Optimisation de la latence du CDN
Optimisation du temps de latence du CDN

Migration et accompagnement au changement

Dans le cadre de cette migration, une approche en plusieurs étapes ainsi qu’un accompagnement à la montée en compétence des équipes WeWeb ont été proposés.  

L'approche par étape lors d'une migration vise à réduire les risques (financiers et de sécurité), à offrir de la flexibilité pour ajuster les directives techniques au besoin, et à faciliter une transition graduelle pour les équipes.

Les étapes de ce projet ont été les suivantes : 

  1. Le build et les tests dans un environnement de développement. Nous avons commencé par initialiser les nouveaux environnements avec Terraform et mis en place le déploiement continu de cette infrastructure dans leur outil de gestion de versions (VCS).
  1. Déploiement sur environnement de staging et set up du monitoring.  
  1. Mise en Production (MEP)


Les équipes WeWeb n'étant pas familières des services ECS et Terraform, des efforts importants ont été mis sur le transfert de compétence afin d’assurer la réussite du projet, la prise en main de l’infrastructure par WeWeb et leur autonomie sur le long terme.  

Pour cela, nous avons initié le build sur l’environnement de dev, et par la suite les équipes WeWeb se sont chargées des déploiements sur l’environnement de Staging (répétition générale) puis de Production. Technofy restant en support technique lors des migrations de ces différents environnements.  

A cela, se sont ajoutées des sessions de transfert de compétences lors de la phase 1 ainsi qu’une période de renforcement des compétences entre les phases 1 et 2 incluant des exercices pratiques sur des cas concrets de leur infrastructure.  

Avantages

Bilan

Marc - CTO WeWeb 

L'équipe WeWeb a trouvé cette mission de transformation de notre infrastructure extrêmement enrichissante et efficace. Initialement, nos compétences en Terraform étaient limitées. Grâce au soutien et à la formation efficace dispensée par Technofy, nous avons pu rapidement monter en compétence sur ce sujet critique.

Technofy a su fournir des explications claires et gérer la transition de façon progressive, permettant ainsi à notre équipe de se familiariser sans difficulté avec la nouvelle infrastructure. Les solutions mises en place étaient adaptées à nos besoins en termes de scalabilité, de sécurité et de performance. De plus, cette collaboration a été positive sur le plan humain, la collaboration avec Technofy étant très agréable. Dans l’ensemble, nous sommes très satisfaits du déroulement et des résultats de ce projet. Nous abordons désormais la gestion et le déploiement de notre infrastructure sur AWS avec Terraform avec une confiance renouvelée. .

Jérôme - Solution Architect Technofy

Un aspect particulièrement intéressant et stimulant du projet a été la mise en place d'une infrastructure multi-région. Nous avons eu l'opportunité de concevoir, tester et valider cette infrastructure en environnement de staging.  

Pour le projet de migration en lui-même, les technologies que nous avons mises en place chez Weweb étaient assez similaires à celles utilisées chez nos précédents clients (ECS, Terraform etc), ce qui a minimisé les défis techniques majeurs. Cela nous a ainsi permis de concentrer nos efforts sur le transfert de compétences et l'accompagnement de l'équipe.

Ce projet a été une expérience enrichissante, tant sur le plan technique qu'humain et c'était un véritable plaisir d’accompagner l'équipe WeWeb.

Merci d'avoir lu cet article. Nous espérons qu'il vous a plu !

Contactez-nous pour plus d'informations sur notre accompagnement et notre expertise !