Klarx deixa de usar o GitHub Actions para obter builds 3x mais rápidos com o Semaphore

  • ⛔️️ 30 minutos para obter feedback do CI
  • ⛔️ Desenvolvedores presos esperando em longas filas durante horários de pico
  • ⛔️ Builds falhando aleatoriamente
  • ✅ 10 minutos para obter feedback ⬇️ 3x
  • ✅ Desenvolvedores nunca esperam o CI iniciar, graças ao autoscaling de recursos
  • ✅ Builds estáveis sem esforço da equipe de engenharia

Experimente o Semaphore

O desafio

A Klarx usava seus próprios runners para executar o GitHub Actions. No entanto, o tempo de implementação e manutenção aumentou à medida que a equipe e suas necessidades cresceram. A carga na infraestrutura de CI/CD da equipe varia ao longo do dia, com horários de pico quando todos os engenheiros tentam enviar para seus repositórios e momentos de tranquilidade durante os finais de semana. Isso exigia escalonamento manual para a infraestrutura de CI/CD.

Como a empresa nem sempre tinha tempo para escalar os recursos manualmente, isso levava a:

✔️ Longo tempo de espera em filas durante horários de pico

✔️ Builds falhando aleatoriamente, exigindo reruns

A solução

A Klarx procurava uma solução que escalasse de acordo com as necessidades da equipe, sem exigir esforço de implementação e manutenção. Eles sentiram a necessidade de mudar do GitHub Actions e consideraram o CircleCI e o TeamCity como opções. No entanto, escolheram o Semaphore por sua velocidade e facilidade de configuração.

“Estávamos procurando uma solução fácil de configurar, com mínimo acoplamento técnico e rápida por design. O Semaphore parecia satisfazer essas características, então implementamos uma POC no Semaphore”, diz Amin Ben Slimen.

Mudar de ferramenta pode parecer uma tarefa desafiadora. No entanto, a equipe de engenharia da Klarx descobriu que a migração para o Semaphore era relativamente tranquila. “A plataforma é projetada para exigir poucas mudanças no código e oferece uma caixa de ferramentas eficiente; migramos cerca de 60% do nosso fluxo de trabalho de CI para o Semaphore em duas semanas”, afirma Amin Ben Slimen.

Os resultados

Desde que migrou para o Semaphore, o pipeline de CI da Klarx tem sido estável e apresenta tempos de execução mais consistentes, permitindo que a equipe detecte falhas e specs inconsistentes mais rapidamente.

A equipe de engenharia da Klarx também considera recursos como cache e condições de execução em tarefas muito úteis para o seu monorepo. Finalmente, ambientes com uma ampla gama de dependências e versões disponíveis em questão de segundos (ex: Postgres, Elasticsearch, Node, Ruby) tornaram o design do pipeline de CI mais tranquilo e eficiente para a Klarx.

Pipeline de CI do Klarx no Semaphore

Após a mudança para o Semaphore, o fluxo completo de CI (compilação e teste de aplicativos monolíticos e front-end) agora leva de 10 a 15 minutos, em comparação com os 25 a 30 minutos que levava quando a equipe dependia do GitHub Actions para sua infraestrutura de CI.

Desde a migração para o Semaphore, a equipe de engenharia da Klarx tem um pipeline de CI mais estável, permitindo que eles se concentrem no mais importante: desenvolver recursos.

O processo de depuração também se tornou muito mais simples. A equipe considera extremamente útil a facilidade do Semaphore de acessar a VM/contêiner e investigar um teste com falha, reproduzindo as mesmas condições do erro.

Com a capacidade do Semaphore de encaminhar uma porta para um navegador local, depurar configurações complexas de testes de ponta a ponta alcança um nível de simplicidade sem precedentes. A equipe de engenharia da Klarx também acha os Relatórios de Teste um recurso prático e útil. No geral, o Semaphore se revelou uma solução de CI/CD plug and play eficiente, que permite à equipe focar na entrega de novos recursos.

Setor:

Construção

Tamanho da Empresa

51-100 funcionários

Equipe de Engenharia

14 pessoas

Stack

Ruby on Rails

Postgres

Elasticsearch

React

GraphQL

Star us on GitHub