SlideShare a Scribd company logo
1 of 25
Orchestrando na “linha”
 16º Meetup – PHP Pernambuco
Matheus Melo
O que significa Docker?
"a person who works at a port, putting goods onto and taking
them off ships"
O que ele faz e qual seu propósito?
 Ele provê um jeito ”fácil” de rodar, levantar e ”entregar” sua aplicação
 Entregar esse valor em plataformas Windows Server, Linux e Mac.
 Reduzir os problemas causados por diferenças de ambiente (Produção Vs.
Desenvolvimento)
”…mas na minha máquina funciona!”
 Pode isso, Bial?
 Seria esse o principal motivo?
Vantagens Generalizadas
 Elimina a assertiva ”Funciona na minha máquina”
 Facilita o gerenciamento/monitoramento de recursos
 Ambientes isolados | Recursos limitados
 Ajuda a construir um pipeline ágil de entrega contínua
 Não requer o uso de VM’s
 (mas não significa que você não possa/deva usar)
Desvantagens gerais
 Segurança pode ser severamente comprometida
 Multiplos containers podem sofrer impactos relacionados a mudanças no
sistemas geral.
Alternativas
 Vagrant | Otto
 Kubernetes
 Apache Mesos
 RKT
 Stakkr
 Dentre outros…
Como de fato ele funciona?
 Ele trabalha com um sistema de ”contentorização” que encapsula o ambiente
inteiro de sua aplicação
Requisitos
 Variam de acordo com o sistema e a versão de Docker que deseja utilizar
 Windows
 Docker for Windows (Server ou Windows pro)
 Hyper-v
 Docker Toolbox
 VTx (Virtualization Technology)
 Mac
 Docker for Mac (> 2010 model) MMU e EPT
 Docker Toolbox
 Linux
Os dois cenários do Docker
 Desenvolvimento
 Entrega/Deploy
Cenário 1 - Desenvolvimento
 Por que usar o Docker para desenvolver?
 Como usar o Docker para desenvolver?
 Possíveis problemas?
 Exemplos
Cenário 2 – Produção/Deploy
 Por que usar o Docker para deploy?
 Como usar o Docker para realizar suas entregas (deploys)?
 Possíveis problemas?
 Exemplos
Como começar?
 Faça um mapeamento da sua aplicação
 Faça um mapeamento do seu ambiente de produção
 Procure ou construa um Dockerfile que replique seu ambiente de produção
 Amadureça seu container
 Escolha um método de deploy e o configure
 Vá para a praia e tome uma cerveja
DockerHub
 O que é?
 Como usar?
 Exemplos
Vamos ver na prática agora
 Provisionaremos um Droplet na Digital Ocean usando Docker-machine
 Instalaremos o Docker Compose
 Configuraremos nossa chave para usar o GIT
 Baixaremos todos os repositórios criados para essa palestra
 Rodaremos o docker-compose up em cada um deles.
 Alguns projetos precisarão ter seus arquivos .env duplicados do .env.example
padrão (laravel e voyager são exemplos).
github.com/16meetupphp
 Todos os projetos já foram configurados e esquematizados para rodarmos no
Docker
 Vamos aos poucos aumentando a complexidade da infra – e fazendo os
sistemas se comunicar entre si
NGINX PHP MySQl
Laravel
1) Um stack com 3 containers
NGINX PHP MySQl
Laravel
NGINX PHP
Voyager
2) Dois stacks com compartilhamento do container
de banco
NGINX PHP MySQl
Laravel
NGINX PHP
Voyager
Proxy
3) Adicionamos outro container para atuar como
proxy reverso – direcionando as requisições pros
containers desejados
NGINX PHP MySQl
Laravel
NGINX PHP
Voyager
Proxy
PHP
Slim
4) Adicionamos mais outro stack de uma aplicação
utilizando apenas o servidor web do próprio PHP
NGINX PHP MySQl
Laravel
NGINX PHP
Voyager
Proxy
PHP
Slim
Apache PHP Postgres
CakePHP
5) Adicionamos outro stack – com servidor web
diferente (Apache) e também com Postgres ao invés
de Mysql
NGINX PHP MySQl
Laravel
NGINX PHP
Voyager
Proxy
PHP
Slim
Apache PHP Postgres
CakePHP
SSL Certificates
6)Adicionamos um outro container para cuidar da
geração dos certificados ssl e renovações pra todos
os stacks rodando abaixo do proxy
NGINX PHP MySQl
Laravel
NGINX PHP
Voyager
Proxy
PHP
Slim
Apache PHP Postgres
CakePHP
SSL Certificates
Portainer
7) Finalizamos adicionando um outro
container/stack pra monitorar toda a
infra/containers criados no servidor
Dúvidas?
Contato
 Matheus Melo
 Facebook: /matheuscmpm
 Linkedin: /matheuscmpm
 E-mail: matheuscmpm@gmail.com, matheus.melo@idealizza.com.br
 Telefone/Whatsapp: (81) 98185-8411

More Related Content

What's hot

Verdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre DockerVerdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre DockerLuís Bianchin
 
Vagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolsoVagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolsoDiogo Lucas
 
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com DockerAécio Pires
 
Docker para quem tem preguica
Docker para quem tem preguicaDocker para quem tem preguica
Docker para quem tem preguicaCristiano Cunha
 
Docker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de usoDocker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de usoTobias Sette
 
Vagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerVagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerWellington Silva
 
Docker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoDocker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoSérgio Lima
 
O poder do Docker (7 Masters)
O poder do Docker (7 Masters)O poder do Docker (7 Masters)
O poder do Docker (7 Masters)Wellington Silva
 
Deploying Docker Containers
Deploying Docker ContainersDeploying Docker Containers
Deploying Docker ContainersHugo Henley
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao dockerBenicio Ávila
 
Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o DockerWebSix
 

What's hot (20)

Verdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre DockerVerdades que não querem te contar sobre Docker
Verdades que não querem te contar sobre Docker
 
Estudo de caso - Uso Docker no Desenvolvimento
Estudo de caso - Uso Docker no DesenvolvimentoEstudo de caso - Uso Docker no Desenvolvimento
Estudo de caso - Uso Docker no Desenvolvimento
 
Introdução à plataforma Docker
Introdução à plataforma DockerIntrodução à plataforma Docker
Introdução à plataforma Docker
 
Vagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolsoVagrant & Docker: carregue seus ambientes no bolso
Vagrant & Docker: carregue seus ambientes no bolso
 
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
[Unirede] Webinar: Transportando as aplicações entre vários ambientes com Docker
 
Docker para quem tem preguica
Docker para quem tem preguicaDocker para quem tem preguica
Docker para quem tem preguica
 
Docker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de usoDocker: uma visão geral e exemplos de uso
Docker: uma visão geral e exemplos de uso
 
Docker para maiores
Docker para maioresDocker para maiores
Docker para maiores
 
Conceitos Basicos e Docker - Java Noroeste
Conceitos Basicos e Docker - Java NoroesteConceitos Basicos e Docker - Java Noroeste
Conceitos Basicos e Docker - Java Noroeste
 
O que é docker?
O que é docker?O que é docker?
O que é docker?
 
Conheça o Docker
Conheça o DockerConheça o Docker
Conheça o Docker
 
Vagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + dockerVagrant vs docker? Melhor vagrant + docker
Vagrant vs docker? Melhor vagrant + docker
 
Docker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimentoDocker, facilitando a vida do desenvolvimento
Docker, facilitando a vida do desenvolvimento
 
Apresentacao docker
Apresentacao dockerApresentacao docker
Apresentacao docker
 
O poder do Docker (7 Masters)
O poder do Docker (7 Masters)O poder do Docker (7 Masters)
O poder do Docker (7 Masters)
 
Deploying Docker Containers
Deploying Docker ContainersDeploying Docker Containers
Deploying Docker Containers
 
Apresentação docker
Apresentação dockerApresentação docker
Apresentação docker
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
O que é Docker?
O que é Docker?O que é Docker?
O que é Docker?
 
Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o Docker
 

Similar to Orquestrando com Docker

Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDesenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDextra Sistemas / Etec Itu
 
Usp codelabs (docker)
Usp codelabs (docker)Usp codelabs (docker)
Usp codelabs (docker)TechCobli
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfdadalt1
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4David Ruiz
 
Re pensando-virtualização-através-linux containers
Re pensando-virtualização-através-linux containersRe pensando-virtualização-através-linux containers
Re pensando-virtualização-através-linux containersFrancisco Gonçalves
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerBruno Ricardo Siqueira
 
Beers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoBeers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoCarlos Smaniotto
 
Escalando o ambiente de desenvolvimento com cli em ruby
Escalando o ambiente de desenvolvimento com cli em rubyEscalando o ambiente de desenvolvimento com cli em ruby
Escalando o ambiente de desenvolvimento com cli em rubyRadamés Roriz
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação DockerAndré Justi
 
Transportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerTransportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerAécio Pires
 
Treinamento Docker Básico
Treinamento Docker BásicoTreinamento Docker Básico
Treinamento Docker BásicoAndré Justi
 
DevOps na prática - Savanna Denega
DevOps na prática - Savanna DenegaDevOps na prática - Savanna Denega
DevOps na prática - Savanna DenegaSavanna Denega
 
Docker: Introdução à Conteinerização de Apps e Nuvem.
Docker: Introdução à Conteinerização de Apps e Nuvem.Docker: Introdução à Conteinerização de Apps e Nuvem.
Docker: Introdução à Conteinerização de Apps e Nuvem.Marcel Cattaneo
 
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Renato Groff
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes Rhuan Karlus Silva
 
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Renato Groff
 
Docker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogDocker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogCesar Augusto Nogueira
 

Similar to Orquestrando com Docker (20)

Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu DevelopersDesenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
Desenvolvimento em .NET utilizando Docker - Meetup 8 Itu Developers
 
Usando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NETUsando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NET
 
Usp codelabs (docker)
Usp codelabs (docker)Usp codelabs (docker)
Usp codelabs (docker)
 
Introdução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdfIntrodução-a-Docker-compactado.pdf
Introdução-a-Docker-compactado.pdf
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4
 
Re pensando-virtualização-através-linux containers
Re pensando-virtualização-através-linux containersRe pensando-virtualização-através-linux containers
Re pensando-virtualização-através-linux containers
 
Desenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando DockerDesenvolvendo e implantando aplicações PHP utilizando Docker
Desenvolvendo e implantando aplicações PHP utilizando Docker
 
Beers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualizaçãoBeers & Bytes - O Futuro da virtualização
Beers & Bytes - O Futuro da virtualização
 
Escalando o ambiente de desenvolvimento com cli em ruby
Escalando o ambiente de desenvolvimento com cli em rubyEscalando o ambiente de desenvolvimento com cli em ruby
Escalando o ambiente de desenvolvimento com cli em ruby
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação Docker
 
Transportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com DockerTransportando as aplicações entre vários ambientes com Docker
Transportando as aplicações entre vários ambientes com Docker
 
Treinamento Docker Básico
Treinamento Docker BásicoTreinamento Docker Básico
Treinamento Docker Básico
 
DevOps na prática - Savanna Denega
DevOps na prática - Savanna DenegaDevOps na prática - Savanna Denega
DevOps na prática - Savanna Denega
 
Docker: Introdução à Conteinerização de Apps e Nuvem.
Docker: Introdução à Conteinerização de Apps e Nuvem.Docker: Introdução à Conteinerização de Apps e Nuvem.
Docker: Introdução à Conteinerização de Apps e Nuvem.
 
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes
 
Docker
DockerDocker
Docker
 
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
Banco de Dados - Docker Compose + Bancos NoSQL: descomplicando a montagem de ...
 
Docker e suas tecnologias
Docker e suas tecnologiasDocker e suas tecnologias
Docker e suas tecnologias
 
Docker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogDocker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnog
 

Orquestrando com Docker

  • 1. Orchestrando na “linha”  16º Meetup – PHP Pernambuco Matheus Melo
  • 2. O que significa Docker? "a person who works at a port, putting goods onto and taking them off ships"
  • 3. O que ele faz e qual seu propósito?  Ele provê um jeito ”fácil” de rodar, levantar e ”entregar” sua aplicação  Entregar esse valor em plataformas Windows Server, Linux e Mac.  Reduzir os problemas causados por diferenças de ambiente (Produção Vs. Desenvolvimento)
  • 4. ”…mas na minha máquina funciona!”  Pode isso, Bial?  Seria esse o principal motivo?
  • 5. Vantagens Generalizadas  Elimina a assertiva ”Funciona na minha máquina”  Facilita o gerenciamento/monitoramento de recursos  Ambientes isolados | Recursos limitados  Ajuda a construir um pipeline ágil de entrega contínua  Não requer o uso de VM’s  (mas não significa que você não possa/deva usar)
  • 6. Desvantagens gerais  Segurança pode ser severamente comprometida  Multiplos containers podem sofrer impactos relacionados a mudanças no sistemas geral.
  • 7. Alternativas  Vagrant | Otto  Kubernetes  Apache Mesos  RKT  Stakkr  Dentre outros…
  • 8. Como de fato ele funciona?  Ele trabalha com um sistema de ”contentorização” que encapsula o ambiente inteiro de sua aplicação
  • 9. Requisitos  Variam de acordo com o sistema e a versão de Docker que deseja utilizar  Windows  Docker for Windows (Server ou Windows pro)  Hyper-v  Docker Toolbox  VTx (Virtualization Technology)  Mac  Docker for Mac (> 2010 model) MMU e EPT  Docker Toolbox  Linux
  • 10. Os dois cenários do Docker  Desenvolvimento  Entrega/Deploy
  • 11. Cenário 1 - Desenvolvimento  Por que usar o Docker para desenvolver?  Como usar o Docker para desenvolver?  Possíveis problemas?  Exemplos
  • 12. Cenário 2 – Produção/Deploy  Por que usar o Docker para deploy?  Como usar o Docker para realizar suas entregas (deploys)?  Possíveis problemas?  Exemplos
  • 13. Como começar?  Faça um mapeamento da sua aplicação  Faça um mapeamento do seu ambiente de produção  Procure ou construa um Dockerfile que replique seu ambiente de produção  Amadureça seu container  Escolha um método de deploy e o configure  Vá para a praia e tome uma cerveja
  • 14. DockerHub  O que é?  Como usar?  Exemplos
  • 15. Vamos ver na prática agora  Provisionaremos um Droplet na Digital Ocean usando Docker-machine  Instalaremos o Docker Compose  Configuraremos nossa chave para usar o GIT  Baixaremos todos os repositórios criados para essa palestra  Rodaremos o docker-compose up em cada um deles.  Alguns projetos precisarão ter seus arquivos .env duplicados do .env.example padrão (laravel e voyager são exemplos).
  • 16. github.com/16meetupphp  Todos os projetos já foram configurados e esquematizados para rodarmos no Docker  Vamos aos poucos aumentando a complexidade da infra – e fazendo os sistemas se comunicar entre si
  • 17. NGINX PHP MySQl Laravel 1) Um stack com 3 containers
  • 18. NGINX PHP MySQl Laravel NGINX PHP Voyager 2) Dois stacks com compartilhamento do container de banco
  • 19. NGINX PHP MySQl Laravel NGINX PHP Voyager Proxy 3) Adicionamos outro container para atuar como proxy reverso – direcionando as requisições pros containers desejados
  • 20. NGINX PHP MySQl Laravel NGINX PHP Voyager Proxy PHP Slim 4) Adicionamos mais outro stack de uma aplicação utilizando apenas o servidor web do próprio PHP
  • 21. NGINX PHP MySQl Laravel NGINX PHP Voyager Proxy PHP Slim Apache PHP Postgres CakePHP 5) Adicionamos outro stack – com servidor web diferente (Apache) e também com Postgres ao invés de Mysql
  • 22. NGINX PHP MySQl Laravel NGINX PHP Voyager Proxy PHP Slim Apache PHP Postgres CakePHP SSL Certificates 6)Adicionamos um outro container para cuidar da geração dos certificados ssl e renovações pra todos os stacks rodando abaixo do proxy
  • 23. NGINX PHP MySQl Laravel NGINX PHP Voyager Proxy PHP Slim Apache PHP Postgres CakePHP SSL Certificates Portainer 7) Finalizamos adicionando um outro container/stack pra monitorar toda a infra/containers criados no servidor
  • 25. Contato  Matheus Melo  Facebook: /matheuscmpm  Linkedin: /matheuscmpm  E-mail: matheuscmpm@gmail.com, matheus.melo@idealizza.com.br  Telefone/Whatsapp: (81) 98185-8411