Le chemin de Luft vers l’élasticité - Partie 2 : auto-scaling avec l’historique des requêtes
(engineering.ab180.co)Pour améliorer l’élasticité de Luft, une base de données développée en interne, nous partageons notre expérience de mise en œuvre d’un autoscaler basé sur les coûts en exploitant l’historique des requêtes.
- Lors d’un précédent chantier, l’architecture a été migrée vers un modèle de Shared Storage, mais pour en tirer un bénéfice réel, un système d’auto-scaling efficace était nécessaire.
- L’équipe a quitté Kubernetes pour adopter un cluster self-managed s’appuyant sur l’AWS SDK, et a implémenté une méthode de reprise d’instances arrêtées, réduisant ainsi le temps de scaling à une dizaine de secondes.
- Au lieu de l’approche classique d’auto-scaling fondée sur des métriques retardées (utilisation CPU/mémoire), un modèle de prédiction des coûts utilisant l’historique des requêtes a été développé.
- Grâce à la canonicalization des requêtes, il est devenu possible d’identifier les requêtes similaires, puis d’implémenter une fonction de coût calculée à partir de leur historique, permettant une prévision précise des ressources.
- En allouant les ressources uniquement quand c’est nécessaire, sans surprovisionnement, le coût des instances a été réduit d’environ 40 %, tout en construisant un système élastique capable de traiter des requêtes lourdes.
Aucun commentaire pour le moment.