Projet de référence sur les pratiques DevOps pour une plateforme de divertissement et d'apprentissage pour enfants
21 février 2025
Pays: France (livré depuis les Émirats arabes unis)
Le client
Le client Akkodis est un fournisseur en ligne de services éducatifs numériques pour les jeunes enfants.
Le défi
La plateforme propose une suite d’applications éducatives pour les enfants de 2 à 10 ans, notamment des vidéos, des livres audio et des jeux, le tout dans un environnement sûr et sans publicité. Son objectif est de fournir un contenu de haute qualité qui divertit et éduque les jeunes enfants.
Le client exploite un environnement multi-production complexe englobant plusieurs serveurs d’applications. Son écosystème comprend diverses applications (TV, histoires, jeux) et sites Web, chacun avec trois environnements distincts: développement, mise en scène et production. Chaque serveur au sein de ces environnements est lié à un serveur de base de données dédié et à un pipeline.
Avant ce projet, le client était confronté à des défis importants liés au déploiement, à la stabilité et à l’évolutivité des applications.
Le principal défi du client était les temps d’arrêt imprévisibles et fréquents. Cela a entraîné une perte de clients, une perte de revenus et un impact négatif sur la satisfaction des clients. Le manque d’agilité a entravé leur capacité à s’adapter à l’évolution des tendances du marché et a ralenti l’introduction de nouvelles fonctionnalités et améliorations. Les déploiements étaient complexes et risqués, nécessitant souvent des heures supplémentaires et des quarts de nuit importants pour les équipes du client et d’Akkodis. La stratégie de déploiement « tout en une seule fois » a amplifié le risque de pannes généralisées. Ce processus inefficace a entravé l’innovation et créé un environnement stressant pour toutes les parties concernées.
La solution
Pour relever ces défis, une solution DevOps complète centrée sur l’intégration continue et la livraison continue (CI/CD) a été mise en œuvre à l’aide des services cloud AWS. Les principaux composants de la solution sont les suivants :
-
Pipeline CI/CD : AWS CodeBuild, CodePipeline et CodeDeploy ont été utilisés pour automatiser les processus de création, de test et de déploiement. AWS CodeArtifact a été utilisé pour gérer les dépendances. Cette automatisation a rationalisé le processus de publication et réduit le risque d’erreur humaine.
-
Diffusion de contenu dynamique : AWS Elastic Beanstalk a été mis en œuvre pour gérer et mettre à l’échelle le contenu dynamique des applications.
-
Diffusion de contenu statique : AWS Simple Storage Service (S3) a été utilisé pour stocker et diffuser du contenu statique, offrant évolutivité et rentabilité. Amazon CloudFront a été intégré en tant que réseau de diffusion de contenu (CDN) pour améliorer les performances et réduire la latence pour les utilisateurs finaux.
-
Mise en cache et invalidation : des fonctions Lambda ont été implémentées pour gérer l’invalidation du cache, garantissant ainsi aux utilisateurs un accès permanent au contenu le plus récent.
-
Surveillance et alertes : CloudWatch a été utilisé pour la surveillance complète de l’état du serveur, y compris les journaux, les alarmes et les informations sur les journaux. Les alarmes ont été configurées pour avertir l’équipe via Amazon Simple NOTification Service (SNS) et Simple Email Service (SES), permettant une résolution proactive des problèmes. Ce système de surveillance a fourni une visibilité sur les performances de l’application et l’état de l’infrastructure.
-
Stratégie de déploiement : un passage des déploiements « tout à la fois » aux déploiements bleu/vert a été mis en œuvre pour les cas d’utilisation applicables. Cette stratégie, dans la mesure du possible, a permis des versions transparentes et moins risquées, minimisant les temps d’arrêt et permettant des retours en arrière rapides si nécessaire. Pour d’autres déploiements, le pipeline CI/CD et les tests automatisés ont considérablement réduit les risques et amélioré la vitesse de déploiement par rapport à l’approche manuelle et « tout à la fois » précédente. Le choix de la stratégie de déploiement (déploiements bleu/vert ou autres déploiements automatisés) est désormais déterminé en fonction de l’application spécifique, de l’évaluation des risques et des exigences commerciales. Cette approche hybride garantit que la stratégie de déploiement la plus appropriée est utilisée pour chaque situation, maximisant à la fois l’efficacité et la stabilité.

Le résultat
La solution DevOps mise en œuvre a apporté des améliorations significatives dans plusieurs domaines clés:
-
Temps d’arrêt prévisibles: le système de surveillance permet d’anticiper les problèmes potentiels du serveur, d’intervenir de manière proactive et d’éviter les pannes inattendues.
-
Temps d’arrêt réduits: les temps d’arrêt ont été considérablement réduits à environ 0,05 %, ce qui minimise les perturbations pour les utilisateurs et les pertes de revenus. Les problèmes sont souvent résolus avant même que les abonnés n’en aient connaissance.
-
Délai de mise sur le marché plus rapide: le pipeline CI/CD a permis des versions plus rapides et plus fréquentes, permettant à la plateforme de s’adapter rapidement aux demandes du marché et d’introduire de nouvelles fonctionnalités plus rapidement. La possibilité de revenir en arrière sur les déploiements a fourni un filet de sécurité pour une itération rapide.
-
Optimisation des coûts: la surveillance des services inutilisés et la possibilité d’augmenter ou de réduire la capacité du serveur ont permis de réaliser des économies de plus de 30 % sur la facture mensuelle du cloud.
-
Satisfaction accrue des clients: la combinaison de temps d’arrêt réduits, de versions de fonctionnalités plus rapides et de performances améliorées des applications a contribué à accroître la satisfaction des clients.
-
Amélioration du moral de l’équipe: l’automatisation et la rationalisation des processus ont réduit la charge de travail des équipes clientes, éliminant le besoin d’heures supplémentaires fréquentes et de quarts de nuit. Cela a amélioré le moral et la productivité de l’équipe.