Escolar Documentos
Profissional Documentos
Cultura Documentos
● Primeiros estágios são mais rápidos para dar feedback mas a confiança de entrar
em produção é menor
● Últimos estágios tem o feedback mais lento porém a confiança é maior
Feedback rápido
Finalmente, é importante lembrar que o objetivo de tudo isso é obter feedback o mais rápido
possível
Pipeline de implantação (deployment pipeline)
Não existe o pipeline “padrão”. Tipicamente ele incluirá os estágios de:
● Automação de build e integração contínua
● Automação de testes
● Automação da implantação
Necessidade básica para um pipeline
1. Fluxo de valor mapeado
2. Orquestração de release e pipeline (continuous integration)
3. Infraestrutura como código (automatizada e self-service)
4. Testes automatizados (unidade, integração, funcionais)
Situações problema
● Ao solicitar um ambiente de teste para operações, demora-se de ter o ambiente
● Quando recebe, o ambiente de teste é diferente do ambiente de produção
● Sem o teste acontecendo em um ambiente semelhante da produção, possibilidade
de erro é muito grande
O que precisamos fazer
● Garantir o uso de ambientes semelhantes ao de produção (production-like) em todos
os estágios do fluxo de valor (para todos os ambientes)
● Esse ambiente deve ser criado de maneira automatizada, idealmente sob demanda,
a partir de scripts e informações de configuração armazenadas no controle de
versão, inclusive para o ambiente de produção
● Deve ser preferencialmente no formato de autoatendimento (self-service), sem
qualquer trabalho manual exigido de Operações
● O objetivo é garantir que seja possível recriar todo o ambiente de produção com
base no que está no controle de versão
Testes automatizados
Automação de testes é parte primordial de uma iniciativa DevOps
● Testes não podem ser realizados como uma fase executada por um departmaneot
de QA separado e somente após todo o desenvolvimento ter sido concluído
○ Feedback lento
○ Aprendizado lento
○ Capacidade de aprender com o erro é significamente diminuída
● “Sem testes automatizados, quanto mais código escrevemos, mais tempo e dinheiro
são necessários para testar nosso código - na maioria dos casos, esse é um modelo
de negócio totalmente não escalável para qualquer organização de tecnologia” -
Gary Gruver
Adicionando testes automatizados ao pipeline
● Testes automatizados aumenta a frequência de integração e de teste do código e de
ambientes, de periódico para contínuo
● Testes automatizados são parte fundamental para permitir que possa haver vários
deploys ao longo de um mesmo dia
● Isso é feito construindo o pipeline de implantação, que realizará a integração do
código e dos ambientes e acionar uma série de testes toda vez que uma nova
alteração for colocada no controle de versão
Implantação (deployment)
● É a instalação de uma versão do software um determinado ambiente (por exemplo,
implantação em um ambiente de teste ou implantação na produção)
● Especificamente, uma implantação pode ou não está associada a uma liberação de
um recurso para os clientes
Liberação (Release)
● A liberação ocorre quando disponibilizamo um recurso (ou conjunto de recursos) a
todos os nossos clientes ou a um segmento de clientes (por exemplo, permitimos
que o recurso seja usado por 5% da nossa base de clientes)
Padrões de Lançamento (release)
Existem duas grandes categorias de padrões de lançamento que podem usar:
● Padrões de liberação baseado em ambiente (Environment-based release patterns)
● Padrões de liberação baseado em aplicativos (application-based release patterns)