Kayenta é uma ferramenta automatizada e open source de análise canary usada para avaliar a maturidade para a produção de uma nova versão de um software. O Kayenta é baseado em uma ferramenta desenvolvida internamente pela Netflix e foi integrado com a ajuda do Google no Spinnaker para executar a liberação automatizada do canary em várias nuvens ao mesmo tempo. A nova versão do software analisado pode conter alterações de código e/ou ajustes na configuração, por exemplo.
Uma liberação canary é uma técnica para reduzir o risco de implementar uma nova versão do software na produção. Uma nova versão do software, conhecida como canary, é implementada para um pequeno subconjunto de usuários, juntamente com a versão estável em execução. O tráfego é dividido entre essas duas versões, de modo que uma parte das solicitações recebidas é desviada para o canary.
Para analisar uma liberação canary, o Kayenta precisa avaliá-lo e comparar os resultados com aqueles que chegam de uma baseline em produção. Teoricamente, o Kayenta poderia comparar o canary com os sistemas de produção reais, mas isso forneceria um resultado estatisticamente distorcido, uma vez que o sistema de produção encontra-se em funcionamento há algum tempo. Criar um novo cluster baseline garante que as métricas produzidas estejam livres de quaisquer efeitos causados por processos de longa execução.
A Spinnaker executa um canary e um novo cluster baseline em paralelo, além do sistema de produção que é acessado pelos clientes. Esses clusters geralmente incluem três instâncias cada, mas isso não é uma configuração fixa. Depois disso, as requisições provenientes de um pequeno número (~ 1%) de clientes reais são direcionadas para esses clusters, e uma série de métricas de desempenho e funcionalidade são coletadas e registradas em um banco de dados de séries temporais, sendo em seguida comparadas automaticamente para ver como o canary sustenta a baseline. Essa etapa do processo é chamada de judgement e conclui com uma pontuação que varia de 0 a 100. Este passo pode ser executado várias vezes, não apenas uma vez.
A pontuação do judgement cai em uma das três categorias: sucesso – e o canary é promovido para o deploy; marginal – possivelmente pedindo intervenção humana para decidir o que fazer sobre a liberação; e failure – quando todo o pipeline é interrompido e revertido, e o tráfego de entrada é direcionado para o sistema de produção.
O Kayenta possui integração com várias ferramentas de monitoramento: Stackdriver, Prometheus, Datadog e Netflix Atlas. Outras podem ser usadas porque todo o sistema é projetado para ser plugável, incluindo fontes métricas, sistemas de judgement e armazenamento de resultados.
Devido à sua integração com o Spinnaker, o Kayenta pode ser usado para analisar e fazer o deploy de canaries em plataformas compatíveis, como AWS, GCP, Azure, Openstack, Kubernetes ou mesmo em ambientes híbridos.
A Netflix está em processo de transferir todo seu sistema de implementação canary para a Kayenta, o que será feito nos próximos meses, de acordo com a empresa. A Kayenta realiza atualmente cerca de 200 judgements por dia, algo que representa cerca de 30% de sua carga completa. A Netflix acrescentou que “a Kayenta aumentou a produtividade dos desenvolvedores ao fornecer aos engenheiros um alto grau de confiança em seus deploys”.
E você? O que achou da ferramenta? Conte pra gente nos comentários abaixo!
Fonte: InfoQ
Gostou do conteúdo? Tem alguma dúvida? Entre em contato com nossos Especialistas Mandic Cloud, ficamos felizes em ajudá-lo.