Dimensionnement / Synchronisation
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Question

Dimensionnement / Synchronisation

by
Baptiste
Created on 2016-10-14 10:25:02 (edited on 2024-09-04 13:12:04) in Public Cloud OVHcloud

Bonjour,

J'imagine une solution pour migrer un site web assez classique et ayant déjà un trafic important (2 gros serveurs ENT chez dedibox: Wordpress/PHP et MySQL). Mes objectifs sont bien sûr de gagner en fiabilité et scalabilité (comme tout le monde :D), en étant, par exemple capable de rajouter facilement 1 serveur en cas d'événement.

J'imagine une solution avec un :
- 1 serveur dédié en BDD (MySQL)
- Plusieurs VM (PHP), probablement 3 x HG-15 (ou EG-15)
- Une instance Slave MySQL (SP-30 devrait suffire) - Pour les backup sans ralentissement/downtime
- Le loadbalancer OVH

Je n'arrive pas a isoler un avis éclairé de mes recherches sur le net :/

Mes questions principalement reposent sur les serveurs web :
- Comment synchroniser les fichiers (.php, images, 130G en tout) entre les VMs ? Ceph ? GlusterFs ? Une solution OVH comme le NAS ? Unison, syncthing etc ?
L'appli étant plutôt monolithique, je me vois mal jouer avec du rsync.
- GlusterFS me semble assez adapté, mais il oblige a ajouter des disques supplémentaire à chaque instance, non ?
- Vaut-il mieux un serveur web "maitre" (qui pourrait du coup être un autre dédié) ?
- Peut-on gérer des poids avec le loadbalancer OVH ?

Merci,


4 Replies ( Latest reply on 2024-09-04 14:26:02 by
Jean RAVE aka Greenhoster
)

Pour le storage tu peux utiliser un NAS chez OVH, ils fonctionnement plutôt bien selon mes tests.
Attention aux disques sur la gamme public cloud, les perfs sont loin d'un serveur dédiés avec disques SSD.

https://www.ovh.com/fr/nas/stockages_NAS_HA_Hybrid.xml

Bonjour,

Ton infra est cohérente si ce n'est que je n'utiliserai pas le loadbalancer ovh mais plutot 2 vm avec haproxy.
C'est 2 vm pourront être facilement administré pour tes besoins avec la possibilité de basculer l'ip failover d'un serveur à l'autre sans trop de soucis.
Celui proposer par ovh manque de stabilité à mon gout, autant gérer ton infra de bout en bout.

Entre mysql master/slave et master/master tout ce discute.
Tu as l'argument pour le master/slave et ainsi avoir un noeud pour la sauvegarde, avec du master/master tu ajoutes une couche de sûreté lors d'un incident sur la base de données ou pour faire des mises à jour.
Au delà il y a le cluster si tu fais de l'innodb exclusivement.

Pour les systèmes de fichiers partagés, glusterfs ralenti beaucoup le système au niveau des IO.
Il faut éviter d'avoir le même disque que la racine voir un système indépendant pour gérer que ce filesystem particulier car le système n'aime pas trop, cependant ca marche quand meme.
Moi ce que je conseille, c'est d'utiliser un nas uniquement pour les documents commun et de connecter tous les front web dessus.
Ca va simplifier aussi tes déploiements et l'augmentation/diminution des ressources de ta plateforme.

Je pense qu'il manque un point important pour gérer la scalabilité.
Il te faut une machine d'admin qui va héberger tes outils comme la sup ou un ansible pour ajouter simplement de nouveaux serveurs.
Cette machine va permettre d'orchestrer tous les équipements et d'assurer les ressources, tu peux meme imaginer un système qui lorsque tu es à 80% de ressources utilisées ajoute un nouveau node front pour permettre d'aller encore plus loin.

Les possibilités sont grandes, j'espère t'avoir éclairé.

Bonne journée
https://www.captainadmin.com

Perso hormis quelques petites coupures (très très rare) sur le LB d'OVH je n'ai vraiment pas à m'en plaindre.... Vu le prix c'est vraiment sympas comme service.

Qui plus est il y'a eu une récente migration des système d'IP LB chez OVH et je crois qu'ils sont passé sur HAProxy justement.

Pour MySQL perso j'ai un faible pour le cluster, mais ça demande au moins 3 serveurs et du 100% innodb. Par conséquent en cas de MyISAM il ne reste que le système master/slave. Et là idéalement il faut coder son appli comme il faut pour faire les SELECT sur les slaves et les INSERT/UPDATE/DELETE sur le master.

Quand à la machine d'admin ce n'est pas forcément nécessaire. Même si c'est très utile d'avoir une VM dédiée à ça (monitoring, script de lancement de nodes supplémentaires, etc).

Salut,

Ce que je te conseille c'est de stocker tes sources sur des disques SSD pour garder de bonnes performances vu le traffic que tu à l'air d'avoir, les sources ne sont pas censées évoluer en permanence mais plutôt entre chaque version, tu n'as donc pas besoin de les synchroniser en permanence entre tes serveurs. Pour le déploiement d'une nouvelle version tu peux automatiser tout ça avec Fabric ou autre outil équivalent.
Concernant le contenu qui évolue en permanence (images, ect) l'objet storage est selon moi la solution adaptée à cela, tu n'as pas de limite physique au stockage et le coût s'adapte à ta consommation réel. Je n'ai pas encore testé celui d'OVH mais cela ne va pas tarder je suis dessus :slight_smile: