Slide 1

Slide 1 text

O canivete suíço DevOps - v2.0

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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.

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

7 O Canivete suíço DevOps - v1

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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)

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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.

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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.

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

22 Objetivos

Slide 23

Slide 23 text

23 Objetivos

Slide 24

Slide 24 text

24 Objetivos

Slide 25

Slide 25 text

25 Explique então...

Slide 26

Slide 26 text

26 Explique então...

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

31 O típico cenário

Slide 32

Slide 32 text

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)

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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”

Slide 35

Slide 35 text

35 Fase 1 - Proof of Concept

Slide 36

Slide 36 text

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.

Slide 37

Slide 37 text

37 Fase 1 - Proof of Concept

Slide 38

Slide 38 text

38 Fase 1 - Proof of Concept DevOps

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

40 Fase 1 - Proof of Concept + Entregável

Slide 41

Slide 41 text

41 Fase 1 - Resultados Ops Dev DevOps DevOps

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

48 Fase 2 - Melhorando a entrega...

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

50 Fase 2 - Melhorando a entrega...

Slide 51

Slide 51 text

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!)

Slide 52

Slide 52 text

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.

Slide 53

Slide 53 text

53 Resumindo...

Slide 54

Slide 54 text

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

Slide 55

Slide 55 text

Obrigado! Perguntas ?

Slide 56

Slide 56 text

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