Étude de Cas
Une entreprise logistique néerlandaise adopte un environnement de production entièrement automatisé
Ce qui m'a le plus surpris, c'est que je ne remarque même plus quand une version est déployée. Le processus est devenu si fluide et optimisé.
Points forts
À propos du client
Ce client est un commissionnaire de transport numérique mondial spécialisé dans l'optimisation et la gestion des chaînes d'approvisionnement en temps réel.
Ils proposent une plateforme moderne axée sur la technologie qui offre transparence et efficacité aux entreprises gérant des opérations logistiques complexes et des mouvements de fret mondiaux.
Le défi
Alors que leur plateforme SaaS connaissait une croissance exponentielle, le besoin de mise à l'échelle rapide est devenu critique.
Cependant, leur processus de livraison était hautement manuel, reposant sur des scripts personnalisés et des VMs Google Cloud configurées et maintenues manuellement, ce qui les rendait fragiles et chronophages.
Cette organisation a été confrontée à plusieurs défis :
- Leur infrastructure avait du mal à gérer le volume croissant de données en temps réel, entraînant des goulots d'étranglement en termes de performances lors des pics d'utilisation.
- Les correctifs majeurs suivaient une stratégie de « tenter sa chance », car il n'y avait aucun moyen automatisé de créer des machines de remplacement en cas de problème.
- Les déploiements étaient imprévisibles et complexes, comprenant de nombreuses étapes manuelles, ce qui entraînait des temps d'arrêt fréquents et des risques opérationnels élevés.
- Ils manquaient de visibilité sur la stabilité de leurs services et les métriques nécessaires pour contrôler le temps moyen de récupération, rendant la réponse aux incidents inefficace et lente.
La solution
Pour relever les défis de mise à l'échelle et introduire l'automatisation, nous avons migré tous leurs services des VMs gérées manuellement vers des conteneurs Docker exécutés sur Kubernetes. Cette transition a permis une gestion plus efficace et évolutive de leur infrastructure, Kubernetes offrant des capacités d'auto-réparation pour gérer automatiquement les pannes de conteneurs et garantir une haute disponibilité.
Avec KEDA, nous avons pu mettre en œuvre une mise à l'échelle adaptée à la demande exacte du système, sans attendre que l'utilisation des ressources atteigne un pic. Cela nous a permis de préallouer les ressources nécessaires à court terme.
Nous n'avons plus d'anxiété lorsqu'un client contacte le support. C'est libérateur de ressentir de l'enthousiasme lorsqu'un client nous sollicite. Dans le passé, c'était un signe de panique car le système était probablement en panne.
CTO
Nous avons mis en œuvre l'infrastructure as code avec Terraform, permettant des modifications d'infrastructure fiables, cohérentes et reproductibles. Cela a considérablement amélioré leur processus de déploiement en éliminant les interventions manuelles, permettant aux développeurs de déployer des mises à jour d'applications et d'infrastructure en toute confiance. L'approche GitOps de Kubernetes a assuré que l'ensemble de l'environnement, de l'infrastructure au niveau applicatif, soit géré de manière déclarative et contrôlée par version.
Pour améliorer encore l'observabilité et la fiabilité de leur système, nous avons intégré Prometheus pour la surveillance, Grafana pour la visualisation en temps réel des métriques, et Thanos pour le stockage à long terme et la haute disponibilité des métriques à travers les clusters. Cette configuration a offert à l'équipe une vision approfondie des performances du système et leur a permis de surveiller proactivement la santé et la stabilité de leurs services.
Grâce à cette combinaison de l'auto-réparation de Kubernetes, de la fiabilité de l'infrastructure as code avec Terraform, et de l'ensemble d'outils de surveillance avec Prometheus, Grafana et Thanos, leur capacité à mettre à l'échelle, déployer et surveiller leurs systèmes est devenue plus efficace et prévisible.
Je peux maintenant enfin m'attaquer à ces demandes de fonctionnalités en attente dans notre backlog. Par le passé, j'étais trop accaparé par des tâches ad hoc pour trouver le temps. Cela rend mon travail bien plus agréable.
Développeur principal
Notre impact
Configuration initiale | Avec PolitePixels |
---|---|
Infrastructure gérée manuellement via des scripts personnalisés et des VMs fragiles. | Infrastructure automatisée et évolutive avec des conteneurs Docker et Kubernetes. |
Les déploiements étaient complexes, manuels et sujets à des échecs, entraînant des pannes fréquentes. | Déploiements quasi instantanés et fiables. |
Goulots d'étranglement des performances pendant les pics de trafic dus à une réponse lente à la demande croissante. | Pré-allocation des ressources pour répondre à la demande avant les pics de trafic. |
Manque de visibilité sur la santé du système, rendant difficile la récupération après des incidents. | Surveillance en temps réel, vision approfondie et gestion proactive du système. |
Les temps d'arrêt et les incidents provoquaient la panique, sans moyen rapide de récupération. | Élimination quasi complète des temps d'arrêt non planifiés. |
Résultats clés
Réduction quasi totale des temps d'arrêt grâce aux capacités d'auto-réparation de Kubernetes et à la mise à l'échelle automatisée pour répondre aux demandes des applications, garantissant une haute disponibilité même en cas de pannes.
Déploiements 50 % plus rapides grâce à l'adoption de l'infrastructure as code avec Terraform, permettant des modifications d'infrastructure plus fréquentes et fiables.
Augmentation majeure de la visibilité du système grâce à l'intégration de Prometheus, Grafana et Thanos, offrant une surveillance en temps réel, une vision approfondie et une résolution proactive des problèmes.