• Home  / 
  • Docker
  •  /  Load balancing CouchDB avec HAProxy et Tutum

Load balancing CouchDB avec HAProxy et Tutum

By KrustyHack / last year

Présentation

Tutum

Pour ceux qui ne connaissent pas la plateforme Tutum, c’est une plateforme qui permet la gestion de déploiement de containers Docker dans le cloud. Allez voir, ça vaut le coup: https://tutum.co. L’inscription est gratuite pour l’instant et le restera par la suite lors de la fin de la beta.

HAProxy

HAProxy est un load balancer tcp/http à haute performance: http://www.haproxy.org/.

CouchDB

CouchDB est une base de données NoSQL qui permet le stockage de données via des documents JSON: http://couchdb.apache.org/.

Création d’un nouveau node Tutum

On prépare tout d’abord notre node Tutum (notre serveur qui va accueillir nos containers Docker). Ici plusieurs options s’offrent à nous: utiliser les services cloud disponibles dans Tutum tels que DigitalOcean, AWS, … ou alors démarrer nous-même un node. Ici on va utiliser DigitalOcean.

tutum-node-create

N’oubliez pas de tagger votre node Tutum pour pouvoir déployer des services dessus. Moi j’ai taggé mon node couchdb.

Une fois le node prêt, on peut passer aux étapes suivantes.

Création de notre service CouchDB

On créé notre service CouchDB via l’interface Tutum.

Sélection de l’image Docker

tutum-service-create-1

Ici, sélectionnez tutum/couchdb.

Paramétrage de l’image

tutum-service-create-2

J’ai modifié quelques options comme l’autorestart. Vous pouvez également (mais j’ai oublié lors de mon screenshot) scaler le nombre de containers à déployer: mettez 3 à l’option Number of containers.

Renseignez également l’option Deploy tags avec le tag que vous avez donné à notre node Tutum.

Paramétrage des volumes

J’ai passé le paramétrage des variables d’environnement car je n’ai rien changé. Passons donc au volumes.

tutum-service-create-3

Ajoutez un volume persistant dans Host path puis cliquez sur Create and deploy pour déployer votre service.

Le service CouchDB est déployé

tutum-service-create-4

Et voilà, nos 3 containers sont prêts.

Création de notre service HAProxy

Même refrain que pour le service CouchDB sauf qu’on va ajouter quelques options en plus.

Sélection de l’image Docker

tutum-service-create-5

Ici, sélectionnez tutum/haproxy.

Paramétrage de l’image

tutum-service-create-6

J’ai modifié le nom du service et j’ai également paramétré le mappage des ports en publiant publiquement le port 80 et 1936 (le 1936 c’est pour l’interface de stats d’HAProxy).

Renseignez également l’option Deploy tags avec le tag que vous avez donné à notre node Tutum.

Link du service CouchDB au service HAProxy

Il faut maintenant linker notre service CouchDB à notre service HAProxy. Rien de plus simple avec Tutum.

tutum-service-create-7

Il vous suffit de dérouler le menu Link services en haut et de sélectionner votre service couchdb. Un lien sera alors créé dans le tableau juste en-dessous.

Vous pouvez ensuite tout de suite déployer le service, pas besoin de volumes.

Le service HAProxy est déployé

Notre container load balancer est up !

tutum-service-create-8

On test notre installation

Notez que vous pouvez accéder à votre serveur soit via sont ip publique soit via le FQDN de Tutum. Exemple de FQDN Tutum: http://xxxxxxxx-yyyyyyy.node.tutum.io/. Vous le trouverez sur la page Nodes de l’interface Tutum.

Allez à l’adresse http://FQDN/ et admirez ! Vos CouchDB sont load balanced sans soucis.

╭─root@krustyhack ~  
╰─➤  curl http://FQDN/
{"couchdb":"Welcome","uuid":"c9788f9ee479cdd316ad081af8ad9d6e","version":"1.5.0","vendor":{"name":"Ubuntu","version":"14.04"}}
╭─root@krustyhack ~  
╰─➤  curl http://FQDN/
{"couchdb":"Welcome","uuid":"4f9cccb59f794b668db17da7ca1f78d6","version":"1.5.0","vendor":{"name":"Ubuntu","version":"14.04"}}
╭─root@krustyhack ~  
╰─➤  curl http://FQDN/
{"couchdb":"Welcome","uuid":"484c4c9dd8173340534bdf5052d2c96a","version":"1.5.0","vendor":{"name":"Ubuntu","version":"14.04"}}

Vous pouvez également accéder aux stats HAProxy: http://FQDN:1936. Le login/mot de passe: stats/stats.

haproxy-stats

Encore plus

Et le plus sympa avec Tutum, c’est que si vous modifiez votre scale de container CouchDB, en ajoutant 2 containers par exemple, le service HAProxy va automatiquement faire le lien avec les nouveaux containers et les load balancer. Magique !

Leave a comment: