A origem da palavra vem do inglês, que podemos entender como um duto ou tubo daqueles pelos quais pode passar óleo, água ou qualquer outro material líquido ou gasoso. O termo também vem sendo muito utilizado na indústria como um conjunto de instruções, ou uma esteira de processos ou comandos que alguém ou algo deve seguir sempre. Por exemplo, uma pipeline de vendas, na qual há sempre os passos e estratégias a serem seguidas.
No mundo da engenharia da computação, o termo pipelining é utilizado para descrever a estratégia onde o CPU procura a próxima instrução para executar, como se numa esteira de instruções já enviadas que são executadas, um comando após o outro.
E na indústria de software?
Na indústria de software o termo também continua com a mesma ideia. Uma pipeline é desenvolvida ou pensada como uma forma de reduzir trabalhos manuais do dia a dia de um desenvolvedor, como:
- Fez um código novo e precisa testar
- Fez alguma mudança de grande impacto ou arquitetura do software
- Testar a instalação de todas ferramentas necessárias
- Subir todas as suas alterações para validar se tudo está OK
Pode parecer bobeira, mas em um projeto onde vários desenvolvedores estão trabalhando em entregas independentes, esse tipo de processo pode economizar muito tempo. Por exemplo, se você levar 5 minutos para subir todas as alterações que você fez para testar, imagine 10 desenvolvedores também esperando todo esse tempo! Você poderia usar esses 5 minutos para fazer outra atividade produtiva enquanto esse conjunto de instruções, ou essa pipeline, fizesse todos esses passos para você.
Para concluir, uma pipeline nada mais é que um conjunto de instruções, scripts, passos que deverão ser executados de forma sequencial e que representam operações manuais, como instalação de dependências, build, start e etc.
Quais são os primeiros passos para desenvolver uma pipeline?
A melhor forma de desenvolver uma pipeline seria entrevistar o passo a passo de quem conhece a aplicação no detalhe. Jamais assuma ou presuma todos os passos de uma pipeline (principalmente se você trabalha como/com DevOps). Sempre entreviste todos que estão envolvidos no projeto, entenda desde versão do sistema operacional no qual eles trabalham e em que o sistema esteja rodando, conheça todos os comandos necessários para criar o set up inicial do ambiente, quais comandos disparam os testes, o build e o que for necessário para aplicação.
Entenda a necessidade de notificação das pipelines em caso de sucesso ou erros, qual é o público alvo que deverá receber esses dados, se há necessidade de salvar todas essas informações em algum sistema secundário para controle e etc.
Quais são os melhores players de pipeline no mercado?
Quando se trata de benchmark de ferramentas, um dos primeiros lugares que você sempre deve acompanhar o relatório é o Gartner, que traz avaliações e ponderações sobre cada ferramenta.
Por outro lado, você como implantador deve sempre pensar no impacto, custo e tempo de adaptação na implantação de uma pipeline; sempre devemos prezar pela comodidade e simplicidade. Muitas empresas acabam utilizando prestadores de serviços como Bitbucket, Azure DevOps, GitLab e GitHub e todos eles além de dar o suporte para fazer a gestão de todo seu código, também contêm sua própria solução de pipelines. A diferença de um para o outro geralmente é a interface gráfica, pois no geral a parte de configuração e criação de scripts é bem parecida, mudando apenas alguns pequenos detalhes. Não caia na pegadinha de tentar procurar a melhor solução pois ela não existe, cada prestador de serviço tem seus defeitos e qualidades e cabe a você decidir qual atende o cenário da sua empresa em termos de custos, implantação e manutenção. Temos também a opção de utilizar outros serviços focados em pipeline, como o TravisCI, Circle CI e Jenkins.
Acelere sua Carreira Conosco
A Mentoria DevOps é um programa de mentoria de 12 meses com encontros semanais ao vivo, com um grupo seleto e restrito, onde estaremos do seu lado para mantê-lo relevante e atualizado no mercado de tecnologia, aprendendo e implementando as melhores práticas e ferramentas de DevOps.
Clique aqui para entrar na lista de espera da oferta de lançamento
Agora é hora de se aventurar e brincar com alguns players que oferecem fee-tier para você conhecer:
- GitHub Actions — https://docs.github.com/pt/actions
- Azure DevOps Pipelines — https://docs.microsoft.com/pt-br/azure/architecture/example-scenario/apps/devops-dotnet-webapp
- GitLab Runners — https://docs.gitlab.com/runner/
- Bitbucket Pipelines — https://bitbucket.org/product/br/features/pipelines
- CircleCI — https://circleci.com/
- Travis — https://travis-ci.org/
- Jenkins — https://www.jenkins.io/