View
124
Download
0
Category
Preview:
Citation preview
BLUE GREENDEPLOYMENTCOM DOCKER
PEDRO CAVALHEIRODesenvolvedor web desde 2010, entusiasta por tecnologia como um todo. Perfil startup-developer-problem-solver, adora estudar novas ferramentas, linguagens e metodologias. Atualmente no Me Salva!.
Infos em pecavalheiro.com
BLUE GREEN WHAT?
BLUE GREEN DEPLOYMENT
▸ Integração Contínua
▸ Minimiza Downtime
▸ Feedback rápido - Rollback imediato
▸ Orquestração complexa
Mais informações em martinfowler.com/bliki/BlueGreenDeployment.html
BLUE GREEN DEPLOYMENT
Mais informações em martinfowler.com/bliki/BlueGreenDeployment.html
▸ Migrando aplicação
para AWS
▸ Busca por deploy
rápido e simples
▸ Docker se tornando
popular
CONTEXTO
1.ELB + EC2 + DOCKER
Use aquilo que já existe!
ELB + EC2 + DOCKER
▸ Configuração mínima (API/Listeners)
▸ Baixa complexidade
▸ Baixo custo agregado (ELB)
▸ Te torna “refém” da solução
▸ Impossível replicar externamente
ELB + EC2 + DOCKER
2.ROUTER +DOCKER
Adapte o que já existe!
ROUTER + DOCKER
ROUTER + DOCKER
ROUTER + DOCKER
▸ HAProxy
▸ Nginx Plus
▸ Node.js
▸ Consul
▸ Docker Swarm
ROUTER + DOCKER
▸ HAProxy
▸ Nginx Plus
▸ Node.js
▸ Consul
▸ Docker Swarm
▸ Nginx + Lua
ROUTER + DOCKER
▸ Container Router
▸ Container Aplicação Blue
▸ Container Aplicação Green
▸ Container Redis
▸ Docker Network
ROUTER + DOCKER
▸ Container Nginx
▹ OpenResty (Nginx + Lua)
▹ nginx.conf
▹ docker run -p 80:4000 --net=XXX -d router
ROUTER + DOCKER
▸ Container Aplicação Blue/Green
▹ (build) Clone, bundle, etc
▹ CMD update && run!
▹ docker run --net=XXX -d --name=app-green app
ROUTER + DOCKER
▸ Container Redisdocker run -p 6379:6379 --name redis --net=XXX -d redis
NGINX + LUA ROUTING upstream green {
server app-green:4000;
}
upstream blue {
server app-blue:4000;
}
location / {
set $upstream "";
rewrite_by_lua '
local redis = require "redis" local client = redis.connect("redis", 6379) route = client:get("current_upstream") if route ~= nil then ngx.var.upstream = route else ngx.var.upstream = "green" end
'; proxy_pass http://$upstream/; }
BENCHMARKING
Aplicação: github.com/pecavalheiro/proxy-comparison
CONSIDERAÇÕES FINAIS
Menos é mais
Solução simples para problemas simples
Controle
Flexibilidade na definição de fluxo da aplicação com baixa perda de performance
Possibilidades
▸ Filtros▸ AB Testing▸ Docker Compose▸ +
OBRIGADO!Dúvidas?
Contato pecavalheiro.com
Apps github.com/pecavalheiro/proxy-comparison
Recommended