o poder do docker (7º meetup de docker sp)
TRANSCRIPT
O P O D E R D O D O C K E R
W E L L I N G T O N F S I L V A
Técnico Telecom, programador, DevOps,instrutor, escritor, pai…
A G E N D A
•O que é Docker?
•Como funciona?
•Win vs Mac vs Linux
•Exemplos de uso
•Cases GFG
•Adoção
O Q U E É D O C K E R ?
O Q U E É D O C K E R ?
O Q U E É D O C K E R ?
•Sistemas de Containers Linux
O Q U E É D O C K E R ?
•Sistemas de Containers Linux
•Leve e rápido
O Q U E É D O C K E R ?
•Sistemas de Containers Linux
•Leve e rápido
•Open Source
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
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 micro serviços
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 micro serviços
•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 micro serviços
•Facilita emprego do 12 factor
•Melhora a distribuição de recursos
O Q U E É D O C K E R ?
C O M O F U N C I O N A ?
C O M O F U N C I O N A ?
C O M O F U N C I O N A ?
W I N D O W S V S M A C V S L I N U X
C O M O F U N C I O N A ?
C O M O F U N C I O N A ?
C O M O F U N C I O N A ?
E X E M P L O S D E U S O
N G I N X W E B S E R V E R
D E M O
C O M A N D O S
D E M O
C O M P O S E
D E M O
https://github.com/wsilva/docker-lb-demo
A P L I C A Ç Õ E S C O M G U I
D E M O
D O C K E R C R A F T
D E M O
C A S E S
• Resolveu problema de disputa de ambiente de homologação
T I C K E T S E M Q & A
C A S E S
• Resolveu problema de disputa de ambiente de homologação
• Instalado git no servidor
T I C K E T S E M Q & A
C A S E S
• 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
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
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]…)
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)
M Á Q U I N A D E D E P L O Y
C A S E S
• Deploy era focado na loja (PHP)
• Outros serviços em outras linguagens surgiram (python, java)
M Á Q U I N A D E D E P L O Y
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
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)
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)
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
E S T U D O D A T A D O Ghttps://www.datadoghq.com/docker-adoption/
• aumento de 30% entre maio de 2015 e maio de 2016
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
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
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
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
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
C O N C L U S Ã O
C O N C L U S Ã O
• Quase 3 anos e meio de evolução intensa
C O N C L U S Ã O
C O N C L U S Ã O
• Quase 3 anos e meio de evolução intensa
• OCI compliance (Open Container Initiative)
C O N C L U S Ã O
C O N C L U S Ã O
• Quase 3 anos e meio de evolução intensa
• OCI compliance (Open Container Initiative)
• Diversas maneiras de utilizar, o poder está com você
C O N C L U S Ã O
• https://telegram.me/dockerbr
• http://docker-br.herokuapp.com/
• http://bit.ly/curso-docker
Cupom 25% desconto na Novatec: DOCKER
M A I S S O B R E D O C K E R
O B R I G A D O