Entrega contínua com arquitetura distribuida

20
Entrega contínua com arquitetura distribuida. Exemplo com demonstração do SV+.

Transcript of Entrega contínua com arquitetura distribuida

Entrega contínua com arquitetura distribuida.

Exemplo com demonstração do SV+.

Tópicos

Geração de Artefatos e versionamento.

Gestão de configuração.

Pipeline de implantação.

Script de implantação.

Ferramenta de entrega contínua.

Demonstração.

Geração de artefatos.

Todo build deve gerar artefatos.

Artefatos devem ser versionados.

Salvando artefatos podemos buscar com a versão.

Uma vez gerado ele deve ser imutável.

Todo build deve gerar artefatos.

Botar imagem do jenkins gerando binarios.

Versionamento.

explicar versionamento...

Gestão de configuração.

Deve ser versionada.

Deve ser possível colocá-la em produção sem alterar código.

Versionamento de configurações.

Commit da configuração para atualização.

Pipeline de implantaçãoNo pipeline de implantação, todo mudança no controle de versão dispara um processo (geralmente em um servidor de integração continua) que cria pacotes para implantação e roda testes unitários e outras validações como análise de código.

O primeiro passo é otimizado para que dure apenas alguns minutos. Se o estágio inicial falhar, o problema deve ser corrigido imediatamente, ninguém deve subir alterações em cima de builds quebradas.

Cada passo completado pelo commit dispara um novo processo no pipeline que começa a receber testes mais pesados e complexos. Commits que conseguem passar pelos testes automatizados, estão prontos para serem implantados para receber testes exploratórios, testes de performance, aceitação e produção conforme a imagem a seguir.

- Jez Humble https://continuousdelivery.com/implementing/patterns/

Pipeline de implantação

Segundo Jez Humble - “The key pattern introduced in continuous delivery is the deployment pipeline.”

Script de implantação.

Deve conter todas as instruções de :

Compilação

Configuração da aplicação

Instruções de como fazer Deploy

Instruções de como fazer teste.

Deve possuir acessos (user/password) e IPs de máquinas para configurações remotas.

Deve ser possível colocar a aplicação em produção só lendo o script de implantação (Analogia com a especificação tecnica do deploy).

Script de implantação.

O Script de implantação vai permitir atingir práticas valiosas para entrega contínua.

Only build packages once. We want to be sure the thing we’re deploying is the same thing we’ve tested throughout the

deployment pipeline, so if a deployment fails we can eliminate the packages as the source of the failure.

Deploy the same way to every environment—including development. This way, we test the deployment process many, many

times before it gets to production, and again, we can eliminate it as the source of any problems.

Smoke test your deployments. Have a script that validates all your application’s dependencies are available, at the location you

have configured your application. Make sure your application is running and available as part of the deployment process.

Keep your environments similar. Although they may differ in hardware configuration, they should have the same version of the

operating system and middleware packages, and they should be configured in the same way. This has become much easier to

achieve with modern virtualization and container technology.

Script de implantação

É recomendável que o script de implantação esteja escrito em uma linguagem que permita automação e fácil modificação pela equipe como um todo exemplos

Phyton

Shell Script

Powershell

Linguagens scripts são boas pois possuem rico

acesso a recursos de sistema operacional e não precisam

ser compiladas para executar.

Script de implantação.

O script de implantação deve ter todo o recurso necessario para fazer deploys/compilar/acessos e etc.

Ips

Usuários/Senhas

Informações de diretórios.

Demais configurações.

Script de implantação

Usar uma DSL de automação de build pode auxiliar na integração com a ferramenta de integração contínua.

Script de implantação

Usar uma linguagem que permita automação do SO pode facilitar o processo de implantação da aplicação, permitindo também usar código mais alto nível.

Ferramenta de entrega contínua.

O Script de implantação deve estar preparado para ser executado de qualquer ambiente que possua as ferramentas e infraestrutura necessária para as tarefas contidas.

A ferramenta de entrega contínua deve conhecer coisas básicas como :

Máquina onde vai executar o script.

Linha de comando para chamar o script.

Saber onde buscar o script (SVN/Rede/Repositórios).

Efetivamente executar ele.

Ferramenta de entrega contínua.

Exemplo de configuração de step de geração de artefato no Jenkins.

Ferramenta de entrega contínua.

Abstraindo a sintaxe o Job executa apenas sua tarefa.

Demonstração