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

O canivete suíço DevOps - v2.0

drequena
December 06, 2018

O canivete suíço DevOps - v2.0

Nessa versão 2.0 da palestra "O Canivete suíço DevOps", abordo as dificuldades culturais normalmente enfrentadas por organizações que querem adotar a cultura DevOps.
O objetivo é destacar as maiores dificuldades no processo de adoção da cultura e demonstrar como é possível transpassar essas barreiras.

drequena

December 06, 2018
Tweet

More Decks by drequena

Other Decks in Technology

Transcript

  1. O canivete suíço
    DevOps - v2.0

    View Slide

  2. O canivete suíço
    DevOps - v1.9.0b

    View Slide

  3. 3
    Agenda
    + Whoami
    + O Canivete suíços DevOPs - v1 (ferramental)
    + O Canivete suíços DevOPs - v2 (cultural)
    + Resumo
    + Referências

    View Slide

  4. 4
    Whoami
    Daniel Requena
    + Sysadmin há 12 anos (3 anos de DevOps)
    + LPI-1/LPI-2 e Zabbix Specialist
    + Bacharel em CCP / Mestre em Eng. da Computação.
    + Tech Lead Mandic - Rivendel
    + Barista Júnior.

    View Slide

  5. O canivete Suíço DevOps
    v1
    (melhores momentos)

    View Slide

  6. 6
    O Canivete suíço DevOps - v1
    Problema:
    ◆ Pneu furado
    Missão:
    ◆ Trocar o pneu usando as ferramentas mais adequadas

    View Slide

  7. 7
    O Canivete suíço DevOps - v1

    View Slide

  8. 8
    O Canivete suíço DevOps - v1
    ● O produto
    ● O processo
    ● As pessoas

    View Slide

  9. 9
    O Canivete suíço DevOps - v1
    Pré-cloud Cloud Aware Cloud Native
    ➔ Baremetal/Virt 1º nível
    ➔ Escalabilidade vertical
    ➔ Monolítica
    ➔ Cliente/Servidor
    ➔ DB Central
    ➔ StandAlone
    ➔ Aplicação Web
    ➔ Monolítica
    ➔ Usa recursos do Cloud
    Provider
    ➔ Instrumentada
    ➔ Micro-serviços
    ➔ Distribuída
    ➔ Assíncronas
    ➔ Containers
    ➔ 12 factors
    SCM
    Configuration Management
    Server provisioner
    CI/CD
    Scripting
    Container Orchestrator
    Cloud Provisioners/Image Provisioners
    Monitoring

    View Slide

  10. 10
    O Canivete suíço DevOps - v1 / Caso 1
    Descrição:
    ➔ Infraestrutura baseada em servidores físicos (baremetal)
    ◆ um cliente por servidor
    ➔ Aplicação cliente/servidor
    ◆ empacotada em .deb
    ➔ Escalabilidade vertical
    ➔ Processos manuais.
    ◆ montagem
    ◆ instalação
    ◆ configuração
    ◆ monitoria
    ◆ setup da aplicação
    ◆ setup banco
    ◆ catálogo
    ➔ Principal dor
    ◆ Tempo para colocar um servidor no ar. (entre 2 e 4 dias)

    View Slide

  11. 11
    O Canivete suíço DevOps - v1 / Caso 1 PXE server (network boot)
    Provisionador SO
    Node classifier (Foreman)
    CM master server (Foreman)
    Gerenciamento de
    configuração.
    Receitas para instalação
    - Zabbix agent
    - Database
    - Application
    - Basic SO setup
    - Hardening
    - etc...
    SCM: Scripts, manifests,
    setup recipes.
    general automation
    monitoring
    HW inventory

    View Slide

  12. 12
    O Canivete suíço DevOps - v1 / Caso 2
    Descrição:
    ➔ Infraestrutura de nuvem pública utilizada como IaaS
    ◆ Uso de LoadBalancer
    ➔ Aplicação monolítica
    ◆ Statefull em php
    ➔ Escalabilidade vertical
    ➔ Processos manuais.
    ◆ Build da aplicação (local Dev)
    ◆ Empacotamento
    ◆ Update da aplicação no cloud provider em QA (testes)
    ◆ Update da aplicação em Produção
    ➔ Principal dor
    ◆ Deploy/update da aplicação sem downtime de forma rápida e segura. Bônus, escalabilidade
    horizontal.

    View Slide

  13. 13
    O Canivete suíço DevOps - v1 / Caso 2

    View Slide

  14. 14
    Caso 2 commit webhook
    git pull
    Test,Build,Package App
    Create AMI (Packer)
    Push to AWS
    Deploy with Terraform
    Deploy env: QA
    Deploy env: PROD
    Deploy Job

    View Slide

  15. 15
    O Canivete suíço DevOps - v1 / Caso 2

    View Slide

  16. 16
    O Canivete suíço DevOps - v1 / Caso 3
    Descrição:
    ➔ Runtime em container Docker
    ➔ Aplicação micro-serviços (API RestFull)
    ➔ Aplicação Stateless
    ➔ Processo automático:
    ◆ Testes, build e empacotamento aplicação
    ◆ Geração da Docker Image e push para Registry
    ◆ Execução da aplicação no Kubernetes
    ➔ Processo manual.
    ◆ Testes da nova versão
    ◆ Análise dos dados da nova versão
    ◆ Promoção para Produção
    ➔ Principal dor
    ◆ Gerar ambiente para “teste” de forma dinâmica, e promovê-lo de forma gradativa para
    produtivo caso passe nos requisitos de aceitação.

    View Slide

  17. 17
    O Canivete suíço DevOps - v1 / Caso 3
    Node 1 Node 2 Node 3
    Master
    v1
    v1
    v1
    v1
    v1
    App v1 PODs
    v2
    v2 v2 v2
    v2
    App v2 PODs

    View Slide

  18. 18
    O Canivete suíço DevOps - v1 / Caso 3
    Istio

    View Slide

  19. 19
    O Canivete suíço DevOps - v1 / Caso 3

    View Slide

  20. 20
    https://speakerdeck.com/drequena/o-canivete-suico-devops

    View Slide

  21. O canivete Suíço DevOps
    v2
    (DevOps nas trincheiras)

    View Slide

  22. 22
    Objetivos

    View Slide

  23. 23
    Objetivos

    View Slide

  24. 24
    Objetivos

    View Slide

  25. 25
    Explique então...

    View Slide

  26. 26
    Explique então...

    View Slide

  27. 27
    Como se vende cultura DevOps?
    Não vendemos.

    View Slide

  28. 28
    Como se vende cultura DevOps?
    Não vendemos.

    View Slide

  29. 29
    “Consultoria DevOps”
    +Objetivos definidos
    + Melhorar processo de Deploy
    + Migração para nuvem
    + Automatizar provisionamento (infraestrutura/código)
    + etc...
    +Desafios
    + Garantir execução com alto padrão de qualidade, utilizando melhores práticas.
    + Documentação
    + Infra como código / versionada
    + Testes
    + Automação
    + Qualidade

    View Slide

  30. 30
    O típico cenário
    Melhorar velocidade do deploy
    (CI/CD)

    View Slide

  31. 31
    O típico cenário

    View Slide

  32. 32
    O típico cenário
    + Áreas não se conversam
    + Objetivos, metas e cobranças diferentes
    + Devs
    + Objetivo: Entregas de features
    + Ops
    + Objetivo: Zelar pela estabilidade do ambiente (controles/rastreabilidade/previsibilidade)

    View Slide

  33. 33
    O típico cenário
    + “Falta de rastreabilidade!”
    + “Falta de acesso!”
    + “Demora!”
    + “Ops não entende nada do que fazemos...”
    + “Eu pedi um ambiente há X meses...”
    + “Nada é na hora, tudo abre ticket...”
    + “Burocracia”
    Dev

    View Slide

  34. 34
    O típico cenário
    Ops
    + “O cara não sabe nem o que é DNS.”
    + “Eles só pedem mais e mais máquina!”
    + “Só ficamos sabendo na última hora!”
    + “Dev joga por cima do muro, e nós cuidamos.” *
    + “Cada nova versão é uma saraivada de bugs...”
    + “O HealthCheck retorna texto ERRO com código HTTP
    200!”
    + “It works on my machine”

    View Slide

  35. 35
    Fase 1 - Proof of Concept

    View Slide

  36. 36
    Fase 1 - Proof of Concept
    +Temporário (anti-pattern)
    +Execução de tarefas para 1 time e apenas 1 aplicação (nova de preferência)
    +Cuidadosa seleção de pessoas ou time. *
    + Sangue novo
    + Ânsia para mudar e experimentar
    + Pró-ativas
    +Time:
    + Multidisciplinar seria o mundo ideal, porém…
    + Dev.

    View Slide

  37. 37
    Fase 1 - Proof of Concept

    View Slide

  38. 38
    Fase 1 - Proof of Concept
    DevOps

    View Slide

  39. 39
    Fase 1 - Proof of Concept
    + Entregável
    + Novo ambiente / Runtime
    + Pipeline (CI/CD)
    +Como?
    + Alinhamento com Dev
    + Entendimento do fluxo
    + Discutindo tecnologias utilizadas (desapego intelectual)
    + Sugerindo melhorias desde o momento zero.
    + Automação em todos os passos

    View Slide

  40. 40
    Fase 1 - Proof of Concept
    + Entregável

    View Slide

  41. 41
    Fase 1 - Resultados
    Ops
    Dev
    DevOps
    DevOps

    View Slide

  42. 42
    Fase 2 - Melhorando a entrega...
    + O trabalho está longe de estar pronto!
    + Pipeline entregue contêm apenas o fluxo de 1 área
    Clone repo Dep install Build Int. Tests Deploy
    Dev

    View Slide

  43. 43
    Fase 2 - Melhorando a entrega...
    + E lá vem Ops… O que fazer?
    + Alinhamento com time
    + Entendimento do fluxo
    + Discutindo tecnologias utilizadas
    + Sugerindo melhorias desde o momento zero.
    + Automação em todos os passos
    +Chame pessoas chaves da área de Dev
    + Já começam a conhecer as dores do outro time
    + Exigências podem ser conflitantes
    + Isso pode travar o fluxo final
    Ops

    View Slide

  44. 44
    Fase 2 - Melhorando a entrega...
    + Dev + Ops Pipeline.
    Clone
    repo
    Dev + Ops
    Dep
    install
    Build Int. tests
    Deploy
    update
    cmdb
    Audit
    logs
    Update
    Jira
    Ticket
    Health
    Check

    View Slide

  45. 45
    Fase 2 - Melhorando a entrega...
    + E lá vem QA… O que fazer?
    + Alinhamento com time
    + Entendimento do fluxo
    + Discutindo tecnologias utilizadas
    + Sugerindo melhorias desde o momento zero.
    + Automação em todos os passos
    +Chame pessoas chaves da área de Dev e Ops
    + Exigências podem ser conflitantes
    + Isso pode travar o fluxo final
    QA

    View Slide

  46. 46
    Fase 2 - Melhorando a entrega...
    + E lá vem QA… O que fazer?
    + Alinhamento com time
    + Entendimento do fluxo
    + Discutindo tecnologias utilizadas
    + Sugerindo melhorias desde o momento zero.
    + Automação em todos os passos
    +Chame pessoas chaves da área de Dev e Ops
    + Exigências podem ser conflitantes
    + Isso pode travar o fluxo final
    QA

    View Slide

  47. 47
    Fase 2 - Melhorando a entrega...
    + Dev + Ops + QA Pipeline.
    Dev + Ops + QA
    Unit
    tests
    Front
    tests
    Perf.
    tests
    Clone
    repo
    Dep
    install
    Build Int. tests
    Deploy
    update
    cmdb
    Audit
    logs
    Update
    Jira
    Ticket
    Health
    Check

    View Slide

  48. 48
    Fase 2 - Melhorando a entrega...

    View Slide

  49. 49
    Fase 2 - Melhorando a entrega...
    Sec
    DBA
    ALM

    View Slide

  50. 50
    Fase 2 - Melhorando a entrega...

    View Slide

  51. 51
    Fase 3 - Divulgação dos resultados.
    +Faça uma divulgação para toda a empresa (ou área de tecnologia)
    +Mostre os resultados das métricas.
    +Esclareça quais eram os objetivos de negócio para o teste.
    +Lembre-se, esse foi o 1o projeto, ele servirá de modelo para os próximos
    + Novos desafios virão (ctrl+c ctrl+v não vai funcionar!)

    View Slide

  52. 52
    Resumindo...
    +Comece pequeno (1 aplicação)
    +Selecione “catalisadores” para o projeto modelo.
    +Envolva todas as partes no processo
    +Faça com que todos se conversem
    +Compartilhe as responsabilidades *
    +Ministre cursos, forneça material, de tempo para as pessoas se adaptarem
    +Convencer por exemplo é a melhor forma.
    +Compare as métricas com outras aplicações.

    View Slide

  53. 53
    Resumindo...

    View Slide

  54. 54
    Referências
    ❖ https://web.devopstopologies.com/
    ❖ https://www.youtube.com/watch?v=ZYFX9zYa0uo&feature=youtu.be
    ❖ https://www.amazon.com/Infrastructure-Code-Managing-Servers-Cloud/dp/1491924357
    ❖ https://landing.google.com/sre/books/
    ❖ http://www.altabooks.com.br/manual-de-devops-como-obter-agilidade-confiabilidade-e-seguranca-em-organizacoes
    -tecnologicas.html
    ❖ http://www.altabooks.com.br/o-projeto-fenix-um-romance-sobre-ti-devops-e-sobre-ajudar-o-seu-negocio-a-vencer.ht
    ml
    ❖ https://www.theforeman.org/
    ❖ https://puppet.com/
    ❖ https://www.ansible.com/
    ❖ https://www.packer.io/
    ❖ https://jenkins.io/
    ❖ https://istio.io
    ❖ https://prometheus.io/
    ❖ https://grafana.com/
    ❖ https://helm.sh/
    ❖ https://www.rundeck.com/
    ❖ https://www.terraform

    View Slide

  55. Obrigado!
    Perguntas ?

    View Slide

  56. You can find me at @Daniel_Requena
    (twitter)
    www.linkedin.com/in/danielrequena/
    [email protected]
    [email protected]
    Daniel Requena

    View Slide