SlideShare uma empresa Scribd logo
1 de 17
HAProxy + Consul = Balance de Carga
Transparente para Containers
Docker Meetup BH
Oi
Guilherme Reis
greis@thoughtworks.com
Desenvolvedor
Docker XP: 7 meses
Docker
O que vemos no site...
"An open platform for
distributed applications..."
"... ability to deploy scalable
services..."
Muito associado a
microserviços
Descoberta de Serviços
Objetivo
Cliente
H
A
P
r
o
x
y
App
App
App
App
App
Objetivo
Consul Template
R
e
g
i
s
t
r
a
t
o
r
Consul Server
App
App
App
Cliente
H
A
P
r
o
x
y
App
Mas porque dessa solução?
Flexibilidade
Sem soluções proprietárias
Entender como as coisas funcionam
Aplicação
Imagem: marcells/aspnet-hello-world
Comando:
$ docker run -dit -p 8080:5004 marcells/aspnet-hello-world
Consul
Descoberta de Serviços simples
Armazenamento Chave/Valor
Acesso via UI ou REST Api
Multi Datacenter
Roda facilmente em um Container ;)
Comando:
$ docker run -dit -v /vagrant/provision/consul:/etc/consul -p 8500:8500
gliderlabs/consul-server -config-dir=/etc/consul
Registrator (Dedo duro)
Adiciona e remove automaticamente containers;
Suporta diferentes produtos: Consul, etcd and SkyDNS 2.
Comando:
$ docker run -dit -v /var/run/docker.sock:/tmp/docker.sock
gliderlabs/registrator -resync 120 -retry-attempts -1 -retry-interval 2000 -ip
172.17.0.1 --cleanup consul://172.17.0.1:8500
HAProxy com Consul Template
HAProxy: Balanceador de Carga muito utilizado (segundo pesquisas ;)
Consul Template: Responsável por reescrever automaticamente o arquivo de
configuração do HAProxy quando alguma informação do Consul mudar.
Arquivo: haproxy.json
HAProxy com Consul Template
Arquivo: haproxy.ctmpl
HAProxy com Consul Template
Imagem: sirile/haproxy
Já possui ambos o/
Comando:
$ docker run -dit -v /vagrant/provision/haproxy:/tmp:rw --net=host
sirile/haproxy -consul=localhost:8500
Docker
Compose
Facilitando nossa vida o/
Orchestração
$ docker-compose up
Escalonamento
$ docker-compose scale app=3
Referências Repositório
Passo-a-passo
ThoughtWorks
|o|
Obrigado!

Mais conteúdo relacionado

Semelhante a Ha proxy + consul = balance de carga transparente para conteiners

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
Francisco Gonçalves
 

Semelhante a Ha proxy + consul = balance de carga transparente para conteiners (20)

Docker
DockerDocker
Docker
 
Usp codelabs (docker)
Usp codelabs (docker)Usp codelabs (docker)
Usp codelabs (docker)
 
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / GoiâniaAzure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
Azure Bootcamp 2018 - DevOps para profissionais de Infra - Infomach / Goiânia
 
DevOps na prática - Savanna Denega
DevOps na prática - Savanna DenegaDevOps na prática - Savanna Denega
DevOps na prática - Savanna Denega
 
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
 
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
ASP.NET Core + Docker Compose: deployment descomplicado com containers - .NET...
 
Dockerizando aplicações em uma fintech o bom, o mau e o feio as surpresas
Dockerizando aplicações em uma fintech  o bom, o mau e o feio as surpresasDockerizando aplicações em uma fintech  o bom, o mau e o feio as surpresas
Dockerizando aplicações em uma fintech o bom, o mau e o feio as surpresas
 
Dockerizando uma aplicação NodeJS
Dockerizando uma aplicação NodeJSDockerizando uma aplicação NodeJS
Dockerizando uma aplicação NodeJS
 
Deploying Docker Containers
Deploying Docker ContainersDeploying Docker Containers
Deploying Docker Containers
 
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
 
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
 
Api com sql server em container
Api com sql server em containerApi com sql server em container
Api com sql server em container
 
Docker Everywhere - MTAC Week
Docker Everywhere - MTAC WeekDocker Everywhere - MTAC Week
Docker Everywhere - MTAC Week
 
Docker para Desenvolvedores .NET - .NET SP - Abril-2018
Docker para Desenvolvedores .NET - .NET SP - Abril-2018Docker para Desenvolvedores .NET - .NET SP - Abril-2018
Docker para Desenvolvedores .NET - .NET SP - Abril-2018
 
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.
 
Modernizando projetos legados usando APIs
Modernizando projetos legados usando APIsModernizando projetos legados usando APIs
Modernizando projetos legados usando APIs
 
Docker: Uso no dia a dia de desenvolvimento
Docker: Uso no dia a dia de desenvolvimentoDocker: Uso no dia a dia de desenvolvimento
Docker: Uso no dia a dia de desenvolvimento
 
Docker: ganhe tempo e seja eficiente na entrega de serviços de TI
Docker: ganhe tempo e seja eficiente na entrega de serviços de TIDocker: ganhe tempo e seja eficiente na entrega de serviços de TI
Docker: ganhe tempo e seja eficiente na entrega de serviços de TI
 
Usando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NETUsando Docker no desenvolvimento .NET
Usando Docker no desenvolvimento .NET
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
 

Ha proxy + consul = balance de carga transparente para conteiners