Desenvolvendo e deployando aplicações PHP utilizando Docker
1
Sobre nós
Waldemar Neto @waldemarnt
http://walde.co/
Juliana Fernandes @littlejuh_
https://github.com/littlejuhhttps://speakerdeck.com/littlejuh
2
Componentes de uma aplicação PHP
APP
Extensions:Php5-mysqlMcrypt...
Configurações:{ Env: prod, Db_name: ...}
3
Alguns benefícios5
Onboard rápido e fácil Sem conflitos na app Consistência nos ambientes
ConceitosDockerfile, build, containers e orquestração
6
Docker vs Maquinas Virtuais7
Dockerfile
FROM imagem
RUN comando
COPY copia arquivos do host para a imagem
CMD comando de saida
8
Imagem Docker
FROM imagem
RUN comando
COPY copia arquivos do host para a imagem
CMD comando de saida
9
Cachê de camadas de imagens docker
FROM imagem
RUN outro comando
COPY copia arquivos do host para a imagem
CMD comando de saida
10
Processo de Build
Download da imagem base Comandos
Imagem pronta
11
Osquestração com docker-compose14
Laravel PHP + DockerConfigurando o Docker para apps PHP
15
CriandoDockerfile
17
Processo de build
18
Docker Compose
19
NETWORK
APP
depends e volumes
Servidor web porta 80
20
Sincronizando volumes
Monta volume no container
21
Rodando comando externos22
Outros comandos23
Comandos customizados
True ou false
24
Containers para executarem ações25
Shipping to production!Pontos de atenção
26
Imagem como artefato27
O mesmo ambiente em todo lugar
GITDEV
QA
PROD
CI/CD
Registry
28
Orquestração em produção29
Docker compose em produção
Node
docker compose
APP
● Facilidade de usar em dev e prod
● Focado em orquestração
● Focado em uma máquina/node
● Não possui health check
● Possui downtime
● Baixa resiliencia
30
Docker Swarm
Docker Swarm
Node 1 Node 2 Node 3
APP APP
APP
31
Kubernetes
Kubernetes masterreplication controller
Node 1 Node 2 Node 3
POD
APP
POD
APP
APP
POD
32
Referencias33
● docker.com
● laravel.com
● kubernetes.io
● leanpub.com/dockerparadesenvolvedores
● http://techfree.com.br
● https://12factor.net
Valeu!Perguntas?
@waldemarnt - @littlejuh_