Checkly, uma plataforma de monitoramento que executa verificações sintéticas e verificações de tempo de atividade, reescreveu recentemente seu componente Results Daemon de Node.js para Go usando agentes de IA. O Results Daemon processa aproximadamente 92 milhões de mensagens todos os dias, tornando-se um componente crítico da plataforma. A reescrita foi motivada pela necessidade de melhorar o desempenho do componente e reduzir o número de incidentes.
A equipe da Checkly projetou um conjunto de testes para garantir que o comportamento do novo aplicativo corresponda ao sistema legado. O conjunto de testes testa o componente como uma caixa preta, com zero acoplamento entre o código ou linguagem do sistema em teste e o conjunto de testes em si. Cada caso de teste fornece uma entrada e espera uma saída determinística, com todas as saídas registradas em "arquivos dourados". Esses arquivos são gerados contra o sistema legado e posteriormente usados pela reescrita para afirmar a paridade byte-a-byte.
O conjunto de testes foi construído usando Playwright, um framework de testes construído para confiabilidade, com ferramentas fortes para interceptação de rede e execução de testes paralelos. Docker Compose foi usado para iniciar e desmontar containers para os limites, tanto localmente quanto no CI. Toxiproxy, um proxy TCP, foi usado para emular condições de rede e testar como o sistema se comporta quando a infraestrutura circundante falha.
Com o conjunto de testes no lugar, a equipe despachou uma instância de Claude Code, um agente de IA, para reescrever o Results Daemon em Go. O agente produziu um serviço implantável de cerca de 13.000 linhas de código de aplicativo, espelhando arquitetonicamente a implementação legada. O novo aplicativo foi então implantado em todos os ambientes, exceto produção, onde foi testado e refinado antes de ser implantado para os clientes.
A estratégia de migração foi deliberadamente cautelosa, com o novo daemon sendo implantado em contas internas primeiro, seguido por contas gratuitas, contas pagas e, finalmente, contas empresariais. A equipe monitorou o rollout de perto, corrigindo bugs e problemas menores à medida que surgiam. O resultado final foi uma migração bem-sucedida sem incidentes principais, e a carga de trabalho legada foi descomissionada.
A reescrita resultou em melhorias significativas, incluindo uma redução de 70% nos pods em execução, melhoria no desempenho do banco de dados e aumento da eficiência e operabilidade. O novo aplicativo também liberou cerca de 15 vCPU e 45GB de memória, e a observabilidade adicional construída no novo aplicativo ajuda com a triagem durante alertas ou incidentes.
O sucesso da reescrita foi atribuído ao conjunto de testes robusto, que garantiu um comportamento consistente antes de qualquer rollout. A equipe foi capaz de enviar código escrito por agentes mais rápido do que antes, confiando no conjunto de testes para capturar regressões em vez de confiar apenas na revisão manual. A experiência demonstrou o potencial dos agentes de IA na reescrita de aplicativos legados e a importância de testes rigorosos e definição de limites estrita para garantir o sucesso de tais projetos.
Dieser Artikel wurde mit Unterstützung von KI verfasst.
News Factory APP - agentische News für besseres SEO & AEO.