Vous voulez un cluster pour la haute disponibilité (HA ) et pour pas cher ? c’est possible, voici comment :

Cluster classique

Commençons par une architecture cluster à l’ancienne, qu’on peut imager facilement :

HA classique

You have 2 problems now

Et les ennuis commencent :

Et tous ça a un prix : on double tous les équipements, ie. serveurs, switchs, stockages etc…, on double les composants applicatifs (un cluster MSSQL est composé de 2 ou 3 noeuds) ou on utilise des mécanismes comme vSphere HA/FT. Bonjour les coûts de licences et d’exploitation …

Cluster simplifié

Le cluster le plus simple : il n’y a pas de cluster. En image ça donne :

Failover simple

Bon, il y a quand-même 2 instances MySQL, synchronisées via replication (ou autre, voir plus loin), mais pas de cluster de FireWall, ni de Nginx, pas de VIP, chaque composant sait avec qui il doit communiquer, tout simplement.

On remarquera aussi que la haute dispo peut être assurée par 2 sites (et 2 fournisseurs) différents.

Variations

Toujours sur le même principe, on peut imaginer facilement des déclinaisons selon besoin :

Failover simple

MySQL

C’est la partie la plus délicate de l’ensemble, en fait, c’est celle qui a “absorbé” la majeur complexité d’un système distribué. Les objetifs de Jimy, pour son one-man-shop, sont :

En matière de haute dispo pour MySQL, les lectures telle que le blog d’Henrik Ingo, ou le blog de Percona sont à recommander chaudement, notamment une présentation d’Henrik intitulée «How to evaluate which MySQL High Availability solution best suits you».

La solution à retenir est «multi source replication» (mais lis quad-même la pres :p ):

mysql replication

Les impacts notables pour Jimy sont :

Conclusion

Si on peut se permettre de perdre quelque secondes/minutes avant un incident majeur, la réplication est la solution.

Pour aller au delà, sans toujours s’aventurer dans une infrastructures complexe à souhait, il faudrait explorer la piste de NoSQL …