ha proxy + consul = balance de carga transparente para conteiners
TRANSCRIPT
HAProxy + Consul = Balance de Carga Transparente para Containers
Docker Meetup BH
DockerO 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
HAProxy
App
App
App
App
App
Objetivo
Consul Template Registrator
Consul Server
App
App
App
Cliente
HAProxy
App
Mas porque dessa solução?
Flexibilidade
Sem soluções proprietárias
Entender como as coisas funcionam
Aplicação
Imagem: marcells/aspnet-hello-worldComando: $ docker run -dit -p 8080:5004 marcells/aspnet-hello-world
Consul
Descoberta de Serviços simplesArmazenamento Chave/Valor Acesso via UI ou REST ApiMulti DatacenterRoda 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/haproxyJá 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 upEscalonamento$ docker-compose scale
app=3
Referências RepositórioPasso-a-passo
ThoughtWorks|o|
Obrigado!