- 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.
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”
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
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
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
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
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 :)