O script implantado no pipeline separa a ação por etapas, o que mantém um ambiente limpo durante a manutenção e reduz as dependências entre os componentes que fazem parte do software. Mas há diversos outros benefícios que o uso de scripts pode trazer.

Para você leitor, entender um pouco mais o nosso artigo, sugiro antes de tudo ler o nosso artigo explicando primeiramente o que é um pipeline de implantação contínua. Resumindo para você, em um nível abstrato, o pipeline de implantação é uma manifestação automatizada do processo de levar o software do controle de versão até os usuários. Cada mudança no software passa por um processo complexo no percurso de entrega. Esse processo envolve compilar o software, seguido pelo progresso do resultado da compilação por vários estágios de testes e implantação. Isso, por sua vez, requer a colaboração entre vários indivíduos, ou mesmo entre várias equipes. O pipeline de implantação modela esse processo, e sua inversão em uma ferramenta de integração continua e gerência de versões é o que permite que uma equipe veja e controle o processo de cada mudança à medida que ela se move do controle de versão, por vários testes e implantações, até a entrega ao usuário final.

Jez Humble trás diversos princípios e práticas de criação e implantação de scripts no pipeline, e são elas que nós vamos trazer e comentar para vocês no artigo de hoje.

Princípios e práticas de criação e implantação de scripts no pipeline

Pipeline

1. Criar um script para cada fase no seu pipeline de implantação

Gostamos muito de projetos orientados a domínio, e aplicamos essas técnicas no projeto de qualquer software que criamos. Isso funciona da mesma forma quando fazemos o projeto de nossos scripts de compilação. Talvez essa seja uma maneira idealizada de dizer que desejamos que nossos scripts de compilação representem claramente os processos que estamos implementando. Adotar esta estratégia garante que nossos scripts possuam uma estrutura bem definida, que nos ajuda a mantê-los limpos durante sua manutenção e minimiza as dependências entre componentes do sistema de implantação. Felizmente, os estágios de implantação oferecem excelentes princípios para dividirmos as responsabilidades entre ter os scripts de compilação.

2. Use uma tecnologia apropriada para implantar seu aplicativo

Num esquema típico de implantação, a maioria dos estágios que se seguem depois de um commit bem-sucedido, como testes automatizados de aceitação, depende de a aplicação estar implantada num ambiente similar ao de produção. É vital que essa implantação também seja automatizada. No entanto, você deve utilizar a ferramenta correta  quando estiver automatizando a implantação, não uma linguagem de programação.

3. Use os mesmos scripts para implantar em cada ambiente

É essencial usar o mesmo processo para implantar em todos os ambientes nos quais o aplicativo é executado para garantir que o processo de criação e implantação seja testado de forma eficaz. Isso significa usar os mesmos scripts para implantar em cada ambiente e representar as diferenças entre ambientes – como URIs de serviço e endereços IP – como informações de configuração a serem gerenciadas separadamente. Separar as informações de configuração do script e armazená-lo no controle de versão, fornecendo algum mecanismo para o script de implantação para recuperá-lo.

4. Use as ferramentas de empacotamento do seu sistema operacional

Usamos o termo “binários” como um termo catch-all para os objetos que você coloca em seus ambientes de destino como parte do processo de implantação do aplicativo. Na maioria das vezes, este é um monte de arquivos criados pelo seu processo de compilação, todas as bibliotecas que seu aplicativo é igual, e talvez outro conjunto de arquivos estáticos verificados no controle de versão.

5. Certifique-se que o processo de implantação é idempotente

Seu processo de implantação deve sempre deixar o ambiente de destino no mesmo estado (correto), independentemente do estado no qual ele se encontra ao iniciar uma implantação. A maneira mais simples de conseguir isso é começar com um ambiente de linha de base conhecido, provisionado automaticamente ou por meio da virtualização. Esse ambiente deve incluir todo o middleware apropriado e qualquer outra coisa que sua aplicação exija para funcionar. Seu processo de implantação pode então buscar a versão do aplicativo que você específica e implantá-la nesse ambiente, usando as ferramentas de implantação apropriadas para seu middleware.

6. Evolua seu sistema de implantação de forma incremental

Todos podem ver o apelo de um processo de implantação totalmente automatizado: “Liberte seu software com o toque de um botão”. Quando você vê um sistema de grande empresa implantado dessa forma, parece mágico. O problema com a magia é que ele pode parecer assustadoramente complexo do lado de fora. De fato, se você examinar um de nossos sistemas de implantação, é apenas uma coleção de passos simples e incrementais que – com o tempo – criam um sistema sofisticado

Usamos o termo “script” de uma maneira bem ampla. Geralmente ele significa qualquer tipo de automação que nos ajude a compilar, testar, implantar e entregar o software. Quando você aborda a ampla coleção de scripts do fim do pipeline de implantação, ela parece bastante complexa. Entretanto, cada tarefa em um script de compilação ou implantação é simples, e o processo não é realmente complexo. Nosso

conselho é usar o processo de compilação e implantação como um guia para sua coleção de scripts. Aumente as capacidades de compilação e implantação gradualmente, identificando de maneira iterativa as necessidades do pipeline e automatizando os passos mais complicados. Tenha em mente o objetivo final a todo momento – isto é, compartilhar o mesmo mecanismo de implantação entre desenvolvimento, testes e produção –, mas não se fixe muito nisso quando começar a criar suas ferramentas. Entretanto, envolva as equipes de operação e desenvolvimento desde o começo na criação desse mecanismo.

Finalmente, vale reiterar que scripts são partes essenciais de seu sistema e devem passar pelo mesmo ciclo de vida da aplicação. Além disso, devem ser versionados, mantidos, testados e refatorados, bem como o único mecanismo usado para implantação. Muitas equipes tratam seus sistemas de implantação como uma consideração secundária; nossa experiência tem mostrado que a arquitetura de sistemas de compilação e implantação é sempre deixada de lado. Como resultado, sistemas mantidos de maneira tão pobre são em geral a barreira para um processo sensato e passível de repetição de entrega, em vez de sua implantação. Equipes de entrega devem dedicar tempo e atenção para fazer a coisa certa nos scripts de compilação e implantação. Essa não é uma tarefa para um estagiário. Use um tempo para pensar sobre os objetivos que quer atingir e faça uma arquitetura apropriada para alcançá-los.

Gostaria de saber mais sobre tema? Então confira o vídeo que preparamos para você!

Newsletter HNZ

Fique por dentro de nossos conteúdos se cadastrando na nossa newsletter semanal! Clique aqui!

HNZ

HNZ

Leave a Reply