ha proxy + consul = balance de carga transparente para conteiners

17
HAProxy + Consul = Balance de Carga Transparente para Containers Docker Meetup BH

Upload: guitoper

Post on 12-Apr-2017

97 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Ha proxy + consul = balance de carga transparente para conteiners

HAProxy + Consul = Balance de Carga Transparente para Containers

Docker Meetup BH

Page 2: Ha proxy + consul = balance de carga transparente para conteiners

OiGuilherme Reis

[email protected]

Docker XP: 7 meses

Page 3: Ha proxy + consul = balance de carga transparente para conteiners

DockerO que vemos no site...

"An open platform for distributed applications..."

"... ability to deploy scalable services..."

Muito associado a microserviços

Page 4: Ha proxy + consul = balance de carga transparente para conteiners

Descoberta de Serviços

Page 5: Ha proxy + consul = balance de carga transparente para conteiners

Objetivo

Cliente

HAProxy

App

App

App

App

App

Page 6: Ha proxy + consul = balance de carga transparente para conteiners

Objetivo

Consul Template Registrator

Consul Server

App

App

App

Cliente

HAProxy

App

Page 7: Ha proxy + consul = balance de carga transparente para conteiners

Mas porque dessa solução?

Flexibilidade

Sem soluções proprietárias

Entender como as coisas funcionam

Page 8: Ha proxy + consul = balance de carga transparente para conteiners

Aplicação

Imagem: marcells/aspnet-hello-worldComando: $ docker run -dit -p 8080:5004 marcells/aspnet-hello-world

Page 9: Ha proxy + consul = balance de carga transparente para conteiners

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

Page 10: Ha proxy + consul = balance de carga transparente para conteiners

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

Page 11: Ha proxy + consul = balance de carga transparente para conteiners

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

Page 12: Ha proxy + consul = balance de carga transparente para conteiners

HAProxy com Consul Template

Arquivo: haproxy.ctmpl

Page 13: Ha proxy + consul = balance de carga transparente para conteiners

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

Page 14: Ha proxy + consul = balance de carga transparente para conteiners

Docker Compose

Facilitando nossa vida o/

Orchestração$ docker-compose upEscalonamento$ docker-compose scale

app=3

Page 16: Ha proxy + consul = balance de carga transparente para conteiners

ThoughtWorks|o|

Page 17: Ha proxy + consul = balance de carga transparente para conteiners

Obrigado!