Pipelines: Integração Continua facilitada com Docker

Mary Marchini
Sthima Insights
Published in
3 min readMay 30, 2017

A Atlassian lançou no final do ano passado uma nova solução de integração continua: o Bitbucket Pipelines. Diferente do Bamboo— sua antiga solução de CI — o Pipelines é completamente na nuvem e possuí uma ótima — e exclusiva, pelo menos por enquanto ,— integração com o Bitbucket.

Mas com tantas soluções de CI existentes no mercado hoje, qual a vantagem de utilizar o Bitbucket Pipelines?

Utilizando uma arquitetura baseada em Docker Containers, o Pipelines permite uma configuração simplificada e altamente customizada, duas características que dificilmente encontramos em conjunto em outras soluções. Além disso, é uma solução muito mais em conta do que os concorrentes!

Customização

As imagens padrões oferecidas pela equipe do Docker abrangem as principais linguagens, e configurar projetos simples — que não possuem dependências externas, de outras linguagens, etc — é extremamente rápido. Basta seguir os passos apresentados ao habilitar o Pipelines no seu projeto que você irá configurar a sua build em alguns minutos.

Mas e se você precisar instalar mais dependências externas? Você tem duas opções: você pode procurar no Docker Hub para ver se não existe alguma imagem que satisfaça suas dependências, ou você pode criar a sua própria imagem e utilizá-la no Bitbucket Pipelines. Isso permite um nível de customização muito grande e sem muito trabalho!

Para saber mais sobre como criar uma imagem customizada e enviá-la para o Docker Hub de uma forma automatizada, siga o tutorial abaixo:

http://techfree.com.br/2015/04/criacao-automatizada-de-imagens-docker-github-e-docker-hub/

Serviços

O Pipelines possibilita conectar serviços ao seu container principal. Por exemplo, se a sua aplicação usa o PostgreSQL como banco de dados, você pode conectar o serviço de PostgreSQL (que também é um container) ao seu container principal, simplificando muito a configuração do mesmo. E como o Docker possui imagens oficiais dos principais bancos de dados utilizados hoje em dia, a escolha de qual banco integrar é muito fácil.

Outro exemplo de utilização de serviços é integrar com o Selenium para realizar testes funcionais. A SeleniumHQ disponibiliza imagens de Chrome e Firefox que podem ser utilizadas como serviços e acessados usando um WebDriver remoto, e a configuração é super fácil!

Integrações

Além de todos os recursos oferecidos pela utilização de Docker como estrutura para as builds, o Bitbucket Pipelines oferece uma lista variada de integrações com outros serviços, desde serviços de notificação até ferramentas para automatizar testes funcionais ou realizar deploy do projeto para a nuvem. Uma lista de todas as integrações pode ser encontrada aqui.

Conclusões

Mesmo que o seu projeto não esteja utilizando Docker no momento, o Bitbucket Pipelines é uma ótima opção de ferramenta de integração contínua. A combinação da facilidade e versatilidade das configurações do container permitem que a maioria dos projetos possam ser executados com configurações muito semelhantes às utilizadas em ambientes de produção. Além disso, o preço acessível oferecido pelo serviço pode trazer uma boa economia para o seu projeto, sem prejudicar a qualidade do mesmo.

Um dos pontos negativos que identificamos foi a integração exclusiva com o Bitbucket, o que impossibilita a sua utilização com outros serviços de Git, como o GitHub e o GitLab, e esse cenário muito provavelmente não irá mudar, pois o Pipelines acaba virando um diferencial competitivo para o Bitbucket. Além disso, vários recursos ainda não estão disponíveis, mas é bem provável que eles sejam oferecidos num futuro próximo, afinal de contas o Pipelines é um serviço recente e que já evoluiu muito em pouco tempo.

--

--