Integração contínua e entrega contínua (CI/CD)

O pipeline de integração contínua e implementação contínua (CI/CD) é uma prática recomendada para equipes de DevOps. Ele permite que os desenvolvedores forneçam alterações de código com frequência e confiabilidade, sem erros. A criação de um pipeline de CI/CD é um aspecto importante do desenvolvimento de software moderno no ciclo de vida completo da API, desde o projeto até o gerenciamento e a implementação.

O que é a integração contínua (CI)?

A integração contínua é uma filosofia de prática e codificação que facilita para equipes de desenvolvimento fazerem o preparo, a implementação e a execução do controle de qualidade em uma versão. O objetivo da integração contínua é automatizar e garantir consistência na forma como essas equipes criam, testam e integram aplicativos. Muitos dos aplicativos atuais são criados com um código que foi desenvolvido em várias ferramentas e plataformas diferentes. Por isso, as equipes de desenvolvimento precisam de uma maneira para integrar e validar suas mudanças. A CI oferece grandes benefícios, como reduzir o trabalho de implementação propenso a erros para fornecer visibilidade antecipada de bugs.

O que é a entrega contínua (CD)?

A entrega contínua (CD) é a outra extremidade do pipeline de CI/CD. A CD automatiza a entrega de aplicativos e alterações de código, muitas vezes para vários ambientes de infraestrutura, como testes e desenvolvimento. Em seguida, a automação de CD realiza chamadas para bancos de dados, servidores Web e serviços adicionais que devem ser atualizados ou reiniciados assim que um aplicativo é implementado. Assim, as equipes podem implementar produções em um cronograma de implementação por dia, por hora ou contínuo.

CI/CD em ação

Quando as equipes de TI implementam um modelo de desenvolvimento de aplicativos com testes e relatórios multifacetados automatizados enraizados em seu ciclo de vida de desenvolvimento de software (SDLC), com integração e entrega completamente contínuas, elas possibilitam que a organização teste e lance rapidamente novos recursos e aplicativos. Essas organizações bem-sucedidas combinam as métricas de SDLC com financiamento de projetos para medir e priorizar projetos que terão o maior impacto nos negócios.

Por exemplo, os desenvolvedores Mule usam CI/CD para automatizar implementações Mule com GitHub e Jenkins Pipelines. A maioria dos desenvolvedores conhece o estágio de compilação; o trabalho realizado no Anypoint Studio pode ser facilmente conectado ao seu pipeline de integração contínua, aproveitando algumas das tecnologias mencionadas anteriormente: o GitHub para controle de versão, o Maven para gerenciamento de dependências e automação de compilação, o JUnit e o Munit para automação de testes e o JIRA ou o ServiceNow para gerenciamento de problemas e serviços. Os clientes com investimentos em Microsoft e que criam apps Mule muitas vezes também utilizam o Team Foundation e o Visual Studio.

Quando o código está pronto para ser enviado, os clientes da MuleSoft geralmente utilizam Jenkins, Puppet, Chef ou HP ALM para automação da implementação e orquestração de processos de lançamento em vários ambientes diferentes: desenvolvimento, teste, preparação e produção. O Puppet e o Chef também podem ser usados para automatizar a instalação e a configuração dos runtimes Mule. O Docker está ganhando popularidade rapidamente para reduzir as complexidades da implementação contínua, e o runtime Mule pode ser enviado em um contêiner do Docker. E por meio do agente de gerenciamento, a Anypoint Platform para APIs e a Anypoint Platform CLI, os usuários podem automatizar ainda mais os processos usando ferramentas de gerenciamento e automação de configuração, como Puppet, Chef, Ansible e Salt, em vez da interface de usuário da Anypoint Platform.