Nota: O seguinte artigo irá ajudá-lo com: Como escolher o sistema de integração e entrega contínua certo para o seu negócio
A integração contínua e a entrega contínua tornaram-se pilares no cenário de desenvolvimento nos últimos anos, tornando-os quase um requisito para a maioria dos fluxos de trabalho de desenvolvimento. Nos últimos anos, novos players entraram no mercado e trouxeram novos fluxos de trabalho e plataformas para permitir etapas adicionais, testes automatizados e até implantação automatizada no mix.
CONSULTE: Kit de Contratação: Desenvolvedor JavaScript (TechRepublic )
Neste artigo, explicaremos o que é integração e entrega contínuas, discutiremos o que CI/CD significa para sua empresa e desenvolvedores e veremos as principais plataformas para integração e entrega contínuas.
O que é CI/CD?
No ciclo de vida de desenvolvimento de software, os desenvolvedores enviam o código para um sistema de controle de versão distribuído, como GitHub, GitLab, Bitbucket ou alguma outra plataforma em um sistema auto-hospedado ou outro sistema. Uma plataforma de integração contínua fica entre isso, procurando por alterações enviadas para o DVCS e executando compilações na base de código quando determinados gatilhos são atendidos. Os acionadores de integração contínua podem ser baseados em pushs de código individual para uma ramificação específica, mesclagem de código de uma solicitação pull ou com base em uma programação baseada em tempo (compilações noturnas, compilações semanais etc.).
O aspecto de entrega contínua de CI/CD permite que as equipes de software obtenham compilações em ambientes de produção com facilidade e segurança, construindo código, testando o código e, em seguida, colocando esses artefatos de compilação no ambiente de produção. Com a entrega contínua, as compilações geralmente são acionadas manualmente ou em um cronograma baseado em tempo, os conjuntos de testes são executados e os resultados são relatados se houver algum problema com o código; em seguida, os artefatos são disponibilizados para envio em um ambiente de produção.
VEJO: O que é CI/CD? (PDF grátis) (TechRepublic)
Os sistemas de integração contínua geralmente são plataformas hospedadas, mas também podem ser sistemas auto-hospedados para clientes corporativos; essas plataformas se integram às plataformas DVCS mais populares, incluindo o GitHub. Ser remoto significa que as compilações podem ser acionadas de forma consistente e não exigem que as máquinas de desenvolvimento local sejam configuradas com chaves de API secretas ou de outra forma vinculadas às compilações em execução.
Quais são os benefícios de usar uma plataforma CI/CD?
Quando você tem um sistema de CI/CD em funcionamento, os desenvolvedores executam automaticamente os conjuntos de testes, garantindo que cada mesclagem de uma solicitação pull tenha ado nos testes, o que permite que vários desenvolvedores lidem com o processo de compilação e a entrega à produção com mais eficiência. Todas essas coisas acabam levando a um código com menos bugs e podem resultar em menos tempo desperdiçado em tarefas rudimentares de desenvolvimento de software, quando esse tempo pode ser melhor gasto no próprio processo de desenvolvimento.
CI/CD é um aspecto importante de qualquer fluxo de trabalho de desenvolvimento de software moderno e libera os desenvolvedores para não se preocuparem com a implementação de fluxos de trabalho de compilação em suas máquinas de desenvolvimento ou precisam se preocupar com ações de compilação – tudo pode ser feito automaticamente.
Quais são as plataformas de CI/CD mais populares?
Jenkins
Jenkins é uma plataforma de CI/CD de código aberto baseada em Java e é de longe uma das opções mais populares. Ele possui uma arquitetura de plug-in que significa que é infinitamente expansível para atender a praticamente qualquer necessidade de CI/CD que você possa ter para seu fluxo de trabalho de desenvolvimento de software. Você pode criar software da Web, software nativo e projetos de software móvel nele, e ele é capaz de ser executado em praticamente qualquer arquitetura de servidor, incluindo Windows, Linux e macOS. Ele também pode ser executado a partir de um contêiner do Docker, se preferir.
Jenkins tem um legado extenso e a muitas configurações e é altamente flexível; no entanto, requer um pouco mais de tempo de configuração e refinamento do que muitas equipes de software podem gostar de fazer. Se você estiver disposto a investir tempo e esforço para configurar inicialmente o Jenkins, ele pode ser um sistema sustentável que pode fazer quase tudo o que você precisa pelo custo de apenas operar um servidor dedicado para ele. A manutenção contínua é outro custo que também deve ser calculado em qualquer configuração do Jenkins que você possa implementar.
Se você estiver executando e operando uma plataforma de sistema de compilação para um aplicativo focado em segurança, ter uma opção auto-hospedada como Jenkins significa que você pode controlar mais rigidamente o pipeline de CI/CD em vez de depender de um serviço hospedado de terceiros.
Essa plataforma é gratuita e pode ser baixada e instalada no site do Jenkins. Com qualquer produto gratuito como o Jenkins, você deve sempre levar em consideração a configuração inicial, a manutenção necessária e os custos de servidor associados à execução de sua própria instância do software; dependendo de suas necessidades e uso, esses custos podem superar um produto comercialmente disponível e hospedado como os outros que abordo neste guia.
Quais empresas e usuários podem se beneficiar mais com o Jenkins?
Jenkins é uma excelente plataforma para empresas e usuários que preferem executar sua própria plataforma CI/CD localmente em seu próprio equipamento devido a segurança ou precedentes legais, que preferem gerenciar seu próprio hardware e pilha de software, ou se o software que está sendo construído e testado na plataforma CI/CD tem requisitos específicos de pilha de hardware/software.
Ações do GitHub
O GitHub Actions é uma plataforma de CI/CD mais recente da Microsoft que se integra totalmente à plataforma DVCS hospedada no GitHub e ao GitHub Enterprise. O GitHub Actions é integrado a cada página do repositório como uma guia e pode ser facilmente configurado e executado remotamente e é incluído automaticamente em sua conta hospedada no GitHub.com ou em contas corporativas no local.
Com uma plataforma hospedada corporativa do GitHub, você pode controlar com mais rigor seu pipeline de compilação e não se preocupar com os riscos de segurança que afetam aplicativos e sistemas hospedados publicamente online. O GitHub Actions oferece e a executores Linux, macOS, Windows e ARM (os executores são plataformas nas quais o código pode ser compilado).
Como o GitHub Actions está totalmente integrado ao DVCS, ele pode fazer coisas adicionais que o Jenkins e outras plataformas de CI/CD não podem. O GitHub Actions também pode executar seus conjuntos de testes de código automaticamente quando solicitações pull são feitas e podem ser adicionadas como uma verificação para garantir que uma mesclagem só ocorra se e quando um teste for executado e aprovado com sucesso.
O preço do GitHub Actions começa no nível gratuito para contas hospedadas do GitHub e aumenta com base nos minutos de compilação usados e no armazenamento necessário. Consulte o guia de preços do GitHub Actions para obter mais informações sobre como calcular os preços com base nas necessidades do projeto.
Quais empresas e usuários podem se beneficiar mais do uso do GitHub Actions?
O GitHub Actions é uma excelente opção se sua empresa já se comprometeu a usar o GitHub como seu DVCS, tem todo o seu código armazenado no GitHub e não se importa que seu código esteja sendo construído e testado remotamente nos servidores do GitHub (embora uma conta corporativa seja disponível se você preferir executar em seu próprio hardware usando o GitHub Enterprise). O GitHub pode lidar com as pilhas de hardware/software mais comuns (como macOS, Windows e Linux), mas se você precisar de uma pilha de software/hardware personalizada que o GitHub não a, talvez seja necessário usar outra solução para CI/CD.
Se você é uma organização sem fins lucrativos, o GitHub tem preços especiais que você pode aproveitar que outras plataformas de CI/CD podem não oferecer.
Círculo CI
O CircleCI é conhecido por sua facilidade de uso para colocar em funcionamento um sistema de construção de integração contínua. A empresa oferece hospedagem em nuvem ou hospedagem corporativa no local e integração com GitHub, GitHub Enterprise e Bitbucket para o provedor DVCS.
A CircleCI divulga seu e 24 horas por dia, 7 dias por semana para clientes corporativos, além de extensões e integrações reutilizáveis chamadas “orbs” que ajudam você a começar a trabalhar mais rapidamente com os sistemas de compilação contínua e permitem que você personalize seus ambientes de compilação de uma maneira que você pode ‘ t com outras plataformas, a menos que você esteja hospedando você mesmo.
O CircleCI pode trabalhar com compilações para Docker, Linux, macOS, Android, Windows ou executores auto-hospedados em uma plataforma de sua escolha. Assim como o GitHub Actions, o CircleCI tem um nível gratuito que oferece 6.000 minutos de compilação por mês no Docker, Windows ou Linux (incluindo Arm); se você precisar compilar no macOS, precisará atualizar para o nível de desempenho de US$ 15 por mês, que inclui minutos de compilação ilimitados e e para macOS. Para mais detalhes, leia o guia de preços do CircleCI.
Quais empresas e usuários podem se beneficiar mais com o uso do CircleCI?
O CircleCI é uma ótima opção se você já estiver integrado ao GitHub ou Bitbucket e preferir um modelo de preços mais direto em vez de ser cobrado por minutos de compilação, como outras plataformas hospedadas. CircleCI também se integra com os runners mais comuns como macOS, Windows e Linux; além disso, ele fornece uma licença corporativa se você preferir integrar com seu próprio hardware e infraestrutura. Assim como o GitHub Actions, se você precisar compilar e testar em uma pilha de hardware ou software específica, o CircleCI pode não funcionar para você – em vez disso, você pode precisar de uma solução alternativa como o Jenkins.
Apresenta comparações de Jenkins, GitHub Actions e CircleCI
Característica |
Jenkins |
Ações do GitHub |
Círculo CI |
Preços |
Disponível gratuitamente |
Linux $ 0,008/min |
Planos gratuitos de US $ 15 por mês e opções corporativas disponíveis |
e disponível |
Não |
Sim |
Sim |
Hospedagem auto-hospedada ou no local |
Sim |
Sim |
Sim |
Construir ambientes ados |
Docker e qualquer plataforma que possa instalar o Jenkins com um ambiente Java |
Linux, macOS, Windows, Arm e contêineres |
Docker, Linux, macOS, Windows, GPU e Arm |
Qual plataforma de CI/CD você deve escolher?
Jenkins, GitHub Actions e CircleCI são as opções de plataforma CI/CD mais fortes do setor no momento, e você realmente não pode errar com nenhuma delas. Cada uma dessas plataformas de CI/CD tem vantagens e desvantagens, dependendo do que sua equipe de desenvolvimento precisa. Esses pacotes apresentam inúmeras opções disponíveis, desde auto-hospedado até baseadas em nuvem e uma variedade de plataformas adas.
Para longevidade e uso sem complicações, recomendo usar uma solução baseada em nuvem como GitHub Actions ou CircleCI, mas para uma solução mais consciente da segurança ou do tipo faça você mesmo, o Jenkins é insuperável.