Matando o medo do deploy

Bianca Rosa

lider de tecnologia @ stone

  • Python
  • Go
  • Lua
  • JS
  • PythOnRio / Gophers RJ
  • Pyladies / WWG

Contexto

O processo de implantação de um software é a parte que mais impacta no cliente. É o momento em que efetivamente entregamos valor pro nosso cliente.

deploy, do verbo deployar, aportuguesado de deployment.

comumente usado pelo carioca nas frases: "deploya ae!", "vamo deployá!", "partiu deploy?"

também chamado de processo de implantação, do verbo implantar.

Às vezes, parece que cada deploy é uma montanha russa...

Ou um grande trem fantasma.

"Sempre dá algo errado. Se não deu, é porque não chegou no final."

Durante a minha vida eu já...

  1. Esqueci de tirar um nó do load balancer (300x vezes).
  2. Vi que tinha algo errado, tentei cancelar, entrei em desespero.
  3. Só descobri que um deploy deu errado uma semana depois.
  4. Esqueci de atualizar um(1!!) arquivo JavaScript do pacote de deploy.

Todas essas situações, que ocorreram ao longo dos últimos 7 anos (e ainda ocorrem), possuem um fator comum

Eu.

VOU PARAR DE FAZER DEPLOY!

Calma.

Na verdade, o fator comum de todos esses deploys foi que havia um processo manual.

Todo mundo no seu time pode errar um processo manual: estagiários, júniores, plenos, sêniores, C-levels.

Não aceite a culpa da falha de um processo manual.

Melhore o processo.

Automatize tudo que for possível.

Uma casa se constrói tijolo a tijolo. Pode ir devagar. Não precisa mudar o mundo do dia pra noite.

Processo de Build

Como você gera pacotes de deploy?

Aonde você gera pacotes de deploy?

Pessoas que desenvolvem software podem (e devem) automatizar várias coisas, independente de estarem num lugar com ou sem cultura DevOps.

Seu processo de build precisa ser...

  • Reproduzível.
  • Automatizado.
  • Independente de ambientes externos. (tip: containers)

Processo de Implantação

Como você executa seu deploy?

Como você verifica se seu deploy funcionou?

Como você desfaz o seu deploy se der problema (rollback)?

Aqui, vale o disclaimer: nem tudo pode ser automatizado sem se unir com o time de infraestrutura. Vale brigar pela melhoria no processo do local que você trabalha.

Mas se você trabalha sozinho ou numa startup, não tem desculpa pra não fazer bonito!

Seu processo de deploy precisa ser...

  • Reproduzível.
  • Automatizado.

Seu processo de rollback precisa ser...

  • Rápido.
  • Automatizado.
  • Preferencialmente, quase nunca usado.

Em 2011 Amazon faz um deploy a cada 11.6 segundos em produção

https://www.youtube.com/watch?v=dxk8b9rSKOo

Estratégias de Deploy

Escolha uma e seja feliz.

https://thenewstack.io/deployment-strategies/

Containers

Ferramentas

Mas Bia, isso é responsabilidade de desenvolvedores?

É o seu sistema. Peça ajuda a especialistas de infraestrutura, mas entregue seu produto até a ponta, com a melhor experiência possível para seus clientes.

DevOps é cultura, processo ou cargo?

https://pt.slideshare.net/cfelippe/devops-cultura-processo-ou-cargo

twitter: @__biancarosa

slides: biancarosa.com.br/slides

tks :)

Referências

DevOps é cultura, processo ou cargo? Amazon faz um deploy a cada 11.6 segundos em produção Estratégias de Deploy