DevOps com Exemplos Práticos - QConRio 2014

879 visualizações

Publicada em

- O que é DevOps ?

(veja as notas dos slides)
Exemplos práticos de aplicação da cultura DevOps usando como exemplo um projeto de desenvolvimento entre duas empresas geograficamente separadas e com tecnologias e culturas diferentes.

Publicada em: Tecnologia
0 comentários
6 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
879
No SlideShare
0
A partir de incorporações
0
Número de incorporações
32
Ações
Compartilhamentos
0
Downloads
27
Comentários
0
Gostaram
6
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • quem sou eu:
  • morei no rio
  • O que é: definicao oficial -- Cultura, Automação, Métricas e “Compartilhamento” ----- http://pom-tec.com/wp-content/uploads/2011/11/cameras.jpg
  • Nova definição: -- Realinhamento de Valores -- Individualidade -- “Don’t be an Asshole” -- Auto Conhecimento - Conhecimento do Sistema ----- http://afv.com/wp-content/uploads/2013/11/VHS.jpg
  • Fim lei de moore -- multi cpu-core-threaded-cached -- cache e buffers pra todo lado -- sistemas nao cabem no hardware
  • i/o nao acompanhou -- buffers+caches na controladora, no hd, no filesystem, mais camada de rede
  • http://www.lampdevelopers.com/images/lamp-cluster.jpg
  • Tudo virando software ------ (imagem netflix blog)
  • especializacao de tarefas: dba, storage, rede, frontend, backend, segurança…. -- criou-se o abismo ------- http://s3.amazonaws.com/rapgenius/the_abyss_by_nightpisces-d4cc8tu.jpg
  • grandes empresas começaram a comprar empresas menores, mais dinâmicas ------- foi quando surgiu devops
  • Mil ferramentas, mas falta atitude

  • Criei minha própria definição: "Comprometimento e Objetivo Comum” -- consequencias: gestao de riscos mais inteligentes, priorizacoes (time-to-market), colaboracao, transparencia -- Sem problemas do tipo 2 ------- http://www.geek.com/wp-content/uploads/2014/01/puppypoopin-590x330.jpg
  • e vamos mostrar que dá pra ser devops sem gohorse
  • Edsger W. Dijkstra (déquistra), inventou os semaforos, se nao fosse ele nao existiria nunca 2 coisas rodando ao mesmo tempo no computador ------ http://upload.wikimedia.org/wikipedia/commons/d/d9/Edsger_Wybe_Dijkstra.jpg
  • transformou o acesso aos desenvolvedores -- batch -> multiprogram (explicar) -------- http://faculty.washington.edu/ http://askubuntu.com/questions/7605/
  • medo de bug, tudo muito complexo + equipe mal preparada -- criou os niveis de acesso (explicar) -- criou a tolerancia a bugs !!!! -- no final ele percebeu que era um medo besta, problemas triviais -- Compartilhou o micro ! ----- http://upload.wikimedia.org/wikipedia/commons/6/6d/Metallic_shield_bug444.jpg
  • Bugs + controle de acesso = Hackers ! -- relação niveis de acesso com DEV/QA /Pre-Prod/Prod ------- http://arquivoufo.com.br/wp-content/uploads/2012/04/hackers_thumb.jpg
  • Dica: não tenha medo, teste, brinque, experimente -- Dev, QA são para error imprevisíveis, abuse disso -- Na falta de tempo, ignore os erros previsíveis, eles são previsíveis afinal -- varios ambientes pra brincar, mas cuide bem de prod, sem gohorse ------- http://www.technobuffalo.com/wp-content/uploads/2013/01/clippy.jpg
  • Contexto: muita coisa já mudou
  • Agravante:
    windows
    windows enterprise (GPOs e UAC)

    Poderia dizer: nao trabalho com windows
  • Ficariam desatualizados rapidamente durante desenvolvimento
  • Na epoca do projeto
  • situação após instalação
  • vamos integrar ! -- implementar mesmas iniciativas devops de dentro do empresa -- descobrimos o CI deles -- total apoio deles -- vamos juntar tudo, fazer o nosso CI ser parte da integração contínua deles -- Vamos criar ambiente de dev dentro da empresa -- acesso total em DEV, acesso read-only em QA = colaboração ------ http://cdn.teckler.com/images/XxETDxX/dd6d683e6d84b4a28f27de0e9706b6bc.jpg
  • Segurança: expor rede, expor codigo da infra, expor senhas da infra, expor infra como um todo --------- http://www.hardmob.com.br/content/attachments/8992d1391654072-battlefieldcop.jpg.html
  • Transparencia, visibilidade, certeza do que foi feito, sem control+c e control+v, menos debug, mais confiança, ganha tempo ------- http://static.indianexpress.com/m-images/Mon%20Apr%2029%202013,%2011:15%20hrs/M_Id_380862_Infra.jpg

  • mas não tínhamos tempo ------ http://viccareers.files.wordpress.com/2014/03/no-time-to-prepare-for-interview.png?w=860&h=450&crop=1
  • Enfrentar + Kiss (Keep it Simple Stupid), Entender a necessidade, fazer o mais simples possível -- Script besta gera lista dos pacotes disponíveis para ir e volar versões
  • Simplicidade, agilidade
  • simplicidade: streaming de log, tempo real, sem retenção, máquinas de dev fazendo chamadas via proxy com origem, destino, http code, request e response headers, filtro por regex

  • sem documentacao: mapa automatico de dependencia, debug, debug, debug, minutos pra instalar, time enxuto justifica ferramentas
  • Eu era o “gargalo de I/O”, centenas de configurações para 3 ambientes, impossível de manter o controle por planilha, impossível de manter o controle, medo de perder o controle, medo besta, erros previsíveis
  • terceiros mandavam o template junto com o pacote, já pronto, acesso no submódulo para criar as variáveis, “local true”, Contra: Perda do “controle”, Pró: diversos times trabalhando juntos e ajudando
  • Todo mundo quer autonomia, mas ninguem quer dar, pq dá trabalho, Solução: Garbage Collection
  • todo mundo entende garbage collection, “responda rapido, limpe as coisas depois”, assincrono, distribuicao dos sistemas, problemas de I/O, etc -- Tempo de controlar vira tempo de “Limpar” -- mesmo vale para ips, máquinas, sing-ins, DNS, blobs -- confiar, trabalhar junto ----------- http://latimesphoto.files.wordpress.com/2010/10/la-1026-pin10.jpg
  • Como ficou… na outra empresa o dev criava as variaveis para os nossos templates, e comeca a integracao continua deles
  • nesse instante a o sistemas deles estava no ar
  • Detalhes completos do deploy, com print dos arquivos de configuração
  • Escolhe a versão que funcionou para o deploy no nosso QA
  • Virou padrão para todos projetos de software
    Contratacoes novas, mudanca de times, manutenção, tudo igual
  • nao eh todo mundo que viu valor nessas coisas, nao eh todo mundo que colaborou, mas nao podemos nivelar nossas empresas por baixo, deixar quem é bom ir pra frente, ser humano sempre vai reclamar :) ---------- http://img.izismile.com/img/img4/20110721/640/expectation_vs_reality_part_2_640_05.jpg
  • nao eh todo mundo que viu valor nessas coisas
    nao eh todo mundo que colaborou
    mas nao podemos nivelar nossas empresas por baixo
    tem caso, serodio, foi longe, reclamacoes nivel MASTER, quem dera todo mundo reclamasse das mesmas coisas
    ser humano sempre vai reclamar :)
  • DevOps com Exemplos Práticos - QConRio 2014

    1. 1. DevOps com Exemplos Práticos
    2. 2. CAMS
    3. 3. J . Paul Reed: VIDS
    4. 4. I/O
    5. 5. Era assim...
    6. 6. De repente...
    7. 7. Então, o que é DevOps ? Cloud Automação Integração Contínua Ferramentas
    8. 8. Então, o que é DevOps ? Cloud Automação Integração Contínua Ferramentas
    9. 9. C.O.CO
    10. 10. O que é Não é DevOps ?
    11. 11. Exemplo 1 THE Multiprogramming System
    12. 12. MEDO !!!!!
    13. 13. Exemplo 2 Integração entre empresas
    14. 14. Visão de Business: Funciona na empresa deles Lorieri sabe tudo de nuvem Rapidão instala aqui
    15. 15. Visão técnica: Migração para Nuvem, …só que ao contrário
    16. 16. Tarefa 1 - QA para integração Ambiente de Dev na empresa terceira ~= 20 módulos .Net ( com HA) Pool de SQL Server 2 Pools de MySQL 2 Pools de busca Pool de Proxy Pool de Roteamento Pool de Fila “Igual da Grande Nuvem”, Aka: REST + Delayed Object Storage “Igual da Grande Nuvem” Sistema de deploy “Igual da Grande Nuvem”
    17. 17. Vocês por favor poderiam me arrumar os manuais ?
    18. 18. Eles Nós *****Ná época do Projeto Negócio: Um sistema para diversas lojas médias e pequenas Uma grande loja Infra: Nuvem Virtualização Desenvolvimento: Times distribuídos autônomos Times especializados Característica: Agilidade para lidar com riscos altos Riscos baixos para evitar lidar com situações críticas e desvalorização da marca Deploys/Dia Centena Dúzia
    19. 19. Sempre desatualizado Sempre dessincronizado Homologação demorada (QA) Report binário: Funciona / Não Funciona Impossível conhecer todos os módulos em tão pouco tempo
    20. 20. Solução 1: esperar Solução 2: Devops !!!
    21. 21. Vamos pro Rio !!!
    22. 22. Expôr a Infra ?
    23. 23. Problema e Soluções Expôr a rede: acesso via VPN, Vlan separada, proxy dedicado Expôr código da Infra: Submódulos do Git Expôr as senhas: Encrypted Databags Tempo: Máquinas Pares - Dev Máquinas Ímpares - QA Roteamento por Cookies /setcookie /unsetcookie
    24. 24. Falta uma coisa: Deploy Igual da Grande Nuvem
    25. 25. Dá pra melhorar….
    26. 26. Logio.org http://cdn.teckler.com/images/XxETDxX/dd6d683e6d84b4a28f27de0e9706b6bc.jpg
    27. 27. Produção: NewRelic
    28. 28. Como configurar 20 módulos ?
    29. 29. template "C:wwwrootwebconfig.conf" do local true source "C:wwwrootwebconfig.conf.erb” end
    30. 30. “A sua liberdade começa onde a minha termina”
    31. 31. Era do Garbage Collection
    32. 32. Terceiros github submodulo no git do chef
    33. 33. github teamcity Amazon S3
    34. 34. Amazon S3 beanstalk repositório
    35. 35. repositório Jenkins Máquinas de QA deles
    36. 36. Terceiros repositório Jenkins Máquinas de QA deles Chef email com detalhes para o desenvolvedor
    37. 37. Máquinas de QA Automático Varnish Cookies Terceiros
    38. 38. Terceiros email com detalhes para o desenvolvedor Jenkins Máquinas de QA deles Objetos Ceph Logs
    39. 39. Terceiros beanstalk repositório
    40. 40. Terceiros email com detalhes para o desenvolvedor repositório Jenkins Chef Nosso QA
    41. 41. Nosso QA Varnish Cookies QA
    42. 42. QA Prod
    43. 43. Pré & Prod DEV QA J E N K I N S C H E F G I T Sub/Git Sub/Git Sub/Git Sub/Git Sub/Git Time A Time B Empresa A Empresa B Empresa C
    44. 44. Realidade
    45. 45. Obrigado :) @againstty0

    ×