Semaine 8 · Diaporama de notions

Ne jamais
tomber

Acte 7 : balancer la charge entre deux caches, doubler la passerelle, et donner au site une adresse qui survit à tout.

420-5A4-MT · Module 2 · HAproxy et Heartbeat
Où en est l'histoire

Chaque étage ajouté est un nouveau point de faille

La cache a tout accéléré... et tout concentré : chaque visiteur passe désormais par varnish30. Si cette machine tombe, le site tombe avec elle, même si Apache et MySQL se portent à merveille. L'entreprise fait le grand geste de la haute disponibilité : traquer chaque point de faille unique, et le doubler.

Notion 1

Le balancement de charge

HAproxy est une passerelle qui reçoit tous les visiteurs et les répartit entre plusieurs serveurs identiques. Deux caches Varnish au lieu d'une : deux fois la capacité, et la panne de l'une n'arrête plus rien.

visiteur ──► haproxy40 ──┬──► varnish30 ──► http20 ──► mysql10
└──► varnish31 ──► http20
Notion 2

Anatomie de haproxy.cfg

frontend site_http
mode http
bind ADRESSE_DE_HAPROXY:80 # la porte d'entree
default_backend site_http_varnish
backend site_http_varnish
balance roundrobin
server site1 ADRESSE_VARNISH30:80 check inter 10s
server site2 ADRESSE_VARNISH31:80 check inter 10s

L'ordre est la grammaire : les options globales, puis les frontend (les portes), puis les backend (les groupes de serveurs). Et avant chaque redémarrage : haproxy -f ... -c vérifie le fichier.

Notion 3

Le cas WordPress : l'admin à part

Le blog public se balance à volonté. Le panneau d'administration, lui, préfère un seul serveur stable : sessions, téléversements, cohérence.

acl has_admin path_beg /wp-admin
acl has_login path_beg /wp-login.php
use_backend admin_servers if has_admin or has_login
backend admin_servers
balance source # meme visiteur, meme serveur
server ssh1 ADRESSE_DE_HTTP20:80 check inter 10s

Les acl sont les aiguillages de la passerelle : certains chemins méritent un traitement particulier. C'est la leçon des applications web modernes.

Notion 4

Le point de faille est remonté d'un étage

Notion 5

Heartbeat et l'adresse IP virtuelle

Heartbeat met les deux HAproxy en grappe. La grappe détient une IP virtuelle (référence : 192.168.56.49) : c'est elle que les visiteurs utilisent, et c'est le serveur vivant qui la porte.

Notion 6

L'épreuve de vérité

Vendredi soir, heure de pointe. Le HAproxy maître meurt. Dix secondes plus tard, l'esclave porte l'IP virtuelle, et pas un visiteur ne s'est aperçu de quoi que ce soit. Voilà la haute disponibilité : non pas empêcher les pannes, mais les rendre invisibles.

À retenir

Avant de passer au laboratoire

Au laboratoire : le plus gros montage de la session à ce jour. Six instances, deux étages doublés, et l'épreuve du maître éteint sous charge. Le grand frisson.

Version de départ · ce diaporama va s'enrichir