O GitLab, criador do homônimo gerenciador de código baseado no Git e da plataforma de integração contínua, fez uma parceria com o provedor de plataforma cloud DigitalOcean, e o Y Combinator, para fornecerem hospedagem grátis para a comunidade open source, incentivando-os a migrar a integração contínua para o cloud.
A solução da GilLab para a integração contínua tem como base o GitLab CI, um serviço que gerencia projetos/builds e que é parte do GitLab.com, e o GitLab Runner, o qual é responsável por processar os builds, executar os testes e fornecer acesso ao GitLab CI através de uma API. O GitLab CI fornece funcionalidades essenciais para a integração contínua, como a paralelização de build, logging em tempo real, testes versionados, etc.
O GitLab Runner escrito em Go fornece uma funcionalidade que escala automaticamente, ampliando e reduzindo a VM para garantir que os builds serão processados o mais rápido possível. De acordo com o GitLab, essa funcionalidade do GitLab Runner facilita a execução de builds em paralelo e é particularmente bem adaptada graças ao seu tempo de início rápido. O que torna possível ter uma nova instância executando em menos de um minuto.
O InfoQ conversou com Sid Sijbrandij, CEO do GitLab, para descobrir mais sobre o que isso significa para a comunidade de desenvolvedores.
É possível explicar como a integração GitLab/DigitalOcean será moldada? Quais as novidades?
O DigitalOcean está oferecendo um Droplet template (imagem pré-construída) para instalar o GitLab rapidamente. O GitLab Runner Autoscale permitirá que os desenvolvedores executem os próprios servidores GitLab usando suas credenciais usadas no DigitalOcean, e os desenvolvedores poderão iniciar e parar novos Droplets automaticamente para se certificar que os testes de integração contínua executarão rapidamente, com segurança e custo efetivo.
Em quais cenários a implementação da integração contínua através do GitLab no DigitalOcean traz mais benefícios para o processo de desenvolvimento?
Existe uma série de fatores que torna a integração contínua auto escalável e mais vantajosa com a DigitalOcean e GitLab. Seguem alguns exemplos:
- Possibilidade de usar a integração contínua e testes em vários projetos caso seja necessário testar vários projetos;
- Possibilidde de executar testes em paralelo ao contrário das suítes que executam testes longos que demoram muito mais tempo;
- Uma solução para testes mais lentos e que utilizam navegadores para simular a experiência do usuário;
- Uma solução para a questão dos projetos que compartilham informações terem os testes comprometidos devido ao compartilhamento de máquinas de integração contínua;
- Uma solução para o uso imprevisível das máquinas durante o dia ou mês devido a diferença de fuso horário e sprints SCRUM a cada três semanas;
- A possibilidade de executar os testes em cada mudança proposta, ao contrário de testar somente após a mudança ser aceita;
- Uma solução para infraestruturas caras e tempo de espera muito grande para provisionamento de novos servidores como em muitas grandes empresas.
O que a disponibilidade de execução gratuita na DigitalOcean significa para os projetos GitLab.com?
Os desenvolvedores podem trabalhar em um projeto privado e usar as ferramentas poderosas de integração contínua sem ter que assinar várias subscrições. Historicamente, usar uma ferramenta de integração contínua era realmente caro e se os desenvolvedores quisessem usar 10 execuções paralelas teriam que pagar $550 por mês. Com a parceria da DigitalOcean, a integração contínua agora é gratuita para desenvolvedores.
O GitLab disponibilizou instruções detalhadas para instalar e configurar os executores no DigitalOcean.