Ha proxy + consul = balance de carga transparente para conteiners

Post on 12-Apr-2017

94 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

Transcript

HAProxy + Consul = Balance de Carga Transparente para Containers

Docker Meetup BH

OiGuilherme Reis

greis@thoughtworks.comDesenvolvedor

Docker XP: 7 meses

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

ThoughtWorks|o|

Obrigado!

top related