O caminho da Luft para a elasticidade - Parte 2: Auto Scaling com histórico de consultas
(engineering.ab180.co)> Compartilhamos a experiência de implementar um autoscaler baseado em custo usando o histórico de consultas para melhorar a elasticidade do Luft, um banco de dados desenvolvido internamente.
- Em um trabalho anterior, houve a migração para uma arquitetura de Shared Storage, mas para obter resultados práticos era necessário um sistema de auto scaling eficiente.
- Saímos do Kubernetes e migramos para um modelo de cluster self-managed usando a AWS SDK, implementando uma forma de retomar instâncias paradas e reduzindo o tempo de scaling para a casa dos 10 segundos.
- Em vez da abordagem tradicional de auto scaling baseada em métricas defasadas, como uso de CPU/memória, foi desenvolvido um modelo de previsão de custo com base no histórico de consultas.
- Por meio da canonicalization de consultas, foi possível identificar consultas semelhantes, e com a implementação de uma função de custo que usa o histórico das consultas, tornou-se viável prever recursos com precisão.
- Alocando recursos apenas quando necessário, sem overprovisioning, foi possível reduzir os custos de instâncias em cerca de 40% e construir um sistema elástico capaz de lidar até mesmo com consultas pesadas.
Ainda não há comentários.