Upgrade to Pro — share decks privately, control downloads, hide ads and more …

A Saga do Continuous Delivery - Do Make ao Depl...

A Saga do Continuous Delivery - Do Make ao Deploy Automatizado!

Esta talk visa mostrar de que a adoção de práticas de Infraestrutura como Código, Infraestrutura Imutável e o ponto principal que foi a mudança do mindset do time, que é o que mais importa, saímos de um processo extremamente manual para algo minimamente automatizado.

Avatar for Pery Lemke

Pery Lemke

April 30, 2019
Tweet

More Decks by Pery Lemke

Other Decks in Technology

Transcript

  1. $ whoami • Pery Lemke mas pode me chamar de

    Pery mesmo! • Site Reliability Engineer na Nuveo; • Sudocaster; • Membro da organização do meetup DevOps Floripa; • Entusiasta da cultura DevOps e de Infra como Código; • Garimpeiro de bandas obscuras de Stoner e Prog Rock; • Baterista n00b;
  2. Quando eu tentava explicar para alguém de fora como funcionava

    nosso processo de deploy, a reação geralmente era...
  3. $ ssh -t -A bastion 'ssh -A 10.200.0.30' $ cd

    /opt/core/ $ /opt/core/$ make deploy.prod .... Logado no canal #deploys do Slack $
  4. Problemas deste processo manual • Dependia de um humano; •

    Deploy de um ambiente ser feito em um lugar errado. Exemplo: Produção em Staging, Staging em Produção; • Necessidade de parar alguém para fazer o deploy; • Downtime grande (2~3 minutos no mínimo).
  5. E o que ganhamos com isso? • Releases de baixo

    risco • Time to Market • Maior qualidade • Custos mais baixos • Produtos melhores • Times mais felizes :)
  6. O que é Infraestrutura como Código? "Infrastructure as code is

    an approach to infrastructure automation based on practices from software development. It emphasizes consistent, repeatable routines for provisioning and changing systems and their configuration. Changes are made to definitions and then rolled out to systems through unattended processes that include thorough validation." Kief Morris (2016)
  7. O que é Infraestrutura Imutável? "An immutable infrastructure is another

    infrastructure paradigm in which servers are never modified after they're deployed. If something needs to be updated, fixed, or modified in any way, new servers built from a common image with the appropriate changes are provisioned to replace the old ones. After they're validated, they're put into use and the old ones are decommissioned." Hazel Virdó
  8. Pets São aqueles servidores indispensáveis e/ou exclusivos que normalmente são

    geridos manualmente. Exemplos: • Servidores de Bastion • Banco de Dados (Master/Slave) • Load Balancers • Mainframes • Firewalls
  9. Cattle São servidores que ganham um número de identificação, ou

    no caso do GCP um hash, da mesma maneira que gado (cattle) recebe em seus ouvidos. Onde cada servidor é quase idêntico a outro, e quando um "cai" é substituído por outro. Exemplos: • Clusters diversos (Cassandra, Kafka, Kubernetes (Com Multi-Master)); • Múltiplos servidores web.
  10. PhoenixServers e SnowflakeServers Visão Martinfoloweriana: SnowflakeServers são semelhantes Pets. São

    servidores que são gerenciados manualmente, atualizados com freqüência e ajustados no local, levando a um ambiente exclusivo. PhoenixServers são semelhantes a Cattle. São servidores que são sempre construídos do zero e são fáceis de recriar (ou "renascem") por meio de procedimentos automatizados.
  11. Ferramentas • Google Cloud Platform (Cloud Provider) • TravisCI (Continuous

    Integration e Continuous Deployment); • Docker (Build das imagens dos containers); • Docker Hub (Registry das imagens dos containers); • Packer (Criação das imagens das Instâncias (VMs)); • Ansible (Provisionamento das imagens das Instâncias (VMs)); • Terraform (Provisionamento dos Grupos de Instâncias e Templates de Instâncias).
  12. Melhorias Futuras • Implementar testes de Infra com o Molecule

    (Ansible); • Implementar testes do Packer com o Goss; • Modularizar o código no Terraform; • Melhorar o Observability; • Estatísticas de deploy.
  13. Links Úteis • Immutable Infra • Continuous Integration: Improving Software

    Quality and Reducing Risk • Infrastructure as Code • Terraform Documentation • Packer Documentation • Ansible Documentation • The History of Pets vs Cattle and How to Use the Analogy Properly • 10Deploys - Episódio 17 - Infraestrutura Imutável • Sudocast - Episódio 19 - Infra as a Code • PhoenixServer • SnowflakeServer • Infraestrutura Imutável - DODRJ 2018 • On the theory of system administration