• Sistemas de Containers Linux • Leve e rápido • Open Source • Diversas ferramentas de cluster e orquestração • Facilita microservice O Q U E É D O C K E R ?
• Sistemas de Containers Linux • Leve e rápido • Open Source • Diversas ferramentas de cluster e orquestração • Facilita microservice • Facilita emprego do 12 factor O Q U E É D O C K E R ?
• Sistemas de Containers Linux • Leve e rápido • Open Source • Diversas ferramentas de cluster e orquestração • Facilita microservice • Facilita emprego do 12 factor • Melhora a distribuição de recursos O Q U E É D O C K E R ?
• Resolveu problema de disputa de ambiente de homologação • Instalado git no servidor • Script de provision no hook post- update T I C K E T S E M Q & A C A S E S
O script: • Levantava os sistemas em container com docker-compose • Colocava o código do branch enviado • Montava as urls com o nº do ticket (http://gfg-666.front.qa.url) T I C K E T S E M Q & A C A S E S
Para os devs: • Adicionava o server como remote (git remote add qa [email protected]…) • Para testar o branch: git push qa gfg-666 T I C K E T S E M Q & A C A S E S
Para os devs: • Adicionava o server como remote (git remote add qa [email protected]…) • Para testar o branch: git push qa gfg-666 • Para remover: git push qa :gfg-666 T I C K E T S E M Q & A C A S E S
• Deploy era focado na loja (PHP) • Outros serviços em outras linguagens surgiram (python, java) • Todas as dependências tinham que ser instaladas na máquina M Á Q U I N A D E D E P L O Y C A S E S
• Nova máquina apenas com Docker • Ant com mesmo target para todos projetos (ant build, ant deploy) • Cada projeto implementa como será o build (java: unit test + compile + geração de .war / python e php: composer ou pip + unit test + geração de .tar.gz) M Á Q U I N A D E D E P L O Y C A S E S
• O próprio script ant se necessário sobe containers com banco (MySQL e Postgres) e ou cache (Memcached/ Redis) para os testes de acordo com o sistema M Á Q U I N A D E D E P L O Y C A S E S
• O próprio script ant se necessário sobe containers com banco (MySQL e Postgres) e ou cache (Memcached/Redis) para os testes de acordo com o sistema • Cada projeto implementa como será o deploy (java: ajuste de config e troca do .war / python e php: ajuste de configs + unit test + geração de .tar.gz) M Á Q U I N A D E D E P L O Y C A S E S
• Scripts Python montam o inventário (dinâmico, algumas máquinas na AWS) • Playbooks Ansible fazem o deploy nas instâncias, geram novas imagens e atualiza a configuração do autoscale M Á Q U I N A D E D E P L O Y C A S E S
• aumento de 30% entre maio de 2015 e maio de 2016 • maiores empresas (+500 hosts), adoção maior • 2/3 dos que testam adotam E S T U D O D A T A D O G E S T U D O
• aumento de 30% entre maio de 2015 e maio de 2016 • maiores empresas (+500 hosts), adoção maior • 2/3 dos que testam adotam • quantidade de container quintuplica após adoção E S T U D O D A T A D O G E S T U D O
• Em média 5 containers por host • VMs são 6 vezes mais longevas • Imgs mais usadas: Registry, NGINX, Redis, Elasticsearch, MySQL, Logspout, Quay, etcd, Postgres, CAdvisor E S T U D O D A T A D O G E S T U D O