OVH Community, votre nouvel espace communautaire.

Mutu: Resumé de 2 mois de travail


Adnane
22/04/2013, 13h29
Bonjour,
Voici un petit résumé de ce qu'il s'est passé
depuis 2 mois sur l'infra de mutu.

Nous avons 7 clusters en production. On parle
de cluster002 ou cluster007. Chaque cluster
est composé d'un double système de répartition
de charge, 1000 serveurs (type HG), 20-50
serveurs de fichiers et de serveurs SQL.

Grâce au système de répartition de charge,
le même visiteur est redirigé sur un serveur d'un
cluster. Quelque soit le site.

Le flux de visiteurs se repartie toutes les ressources
du cluster. Chaque semaine plusieurs dizaines de
nouveaux serveurs sont ajoutés dans chaque cluster.
La charge globale reste < 50% de la capacité.

Mais avec les nouveaux moteurs PHP de wordpress,
prestashop et d'autres CMS, on s'est aperçu
que les performances de certains sites sont
mauvais. C'est dû au fait que les visiteurs
d'un site ne sont pas redirigés vers un même serveur
mais sont repartis sur tout le cluster, un peu
partout. Conséquence: chaque visiteur recharge
et exécute tout le site à chaque fois alors qu'il
aurait pu profiter de cache généré par le visiteur
précédent.

Solution: rediriger tous les visiteurs d'un site
sur le même serveur. Ainsi, les visiteurs précédent
fait le cache et le nouveau visiteur a le temps de
chargement très rapide.

Nous avons donc écrit un soft à l’intérieur du
cluster pour rediriger les visiteurs de chaque
site sur un serveur.

Nouveau problème: une fois mis en place,
quelques gros sites ont provoqué les surcharges
ou les pannes de leur serveur. Ils sont tellement
important qu'un serveur HG ne leur suffit pas !!
La panne impactant un serveur du cluster, tous
les petits sites qui ont été redirigé aussi
sur le même serveur ont été en panne aussi.
Mais pas tous les sites du mutu. Ça dépendait ..

Nous avons donc réécrit le soft afin de calculer
en temps réel le nombre de requêtes, le CPU
et la RAM prise par CHAQUE site (merci BigData)
puis décider en temps réell encore si on redirige
un site sur un serveur ou sur un sous-cluster de
gros sites. On prend désormais en compte les bursts
c'est à dire que si votre site fait 100 visiteurs
par jour vous êtes redirigé vers votre serveur
mais d'un coup il y a 10000 visiteurs en 1H, on
le voit et on prend la décision en quelques secondes
de rediriger votre site vers le sous-cluster de gros sites.

La conséquence:
les petits sites ont tous renvoyés sur leur serveur.
ils sont rapide car tous les visiteurs du site arrivent
sur le même serveur. le serveur n'est pas surchargé
car on sait exactement combien de CPU reste sur
le serveur et combien de CPU un site fait statistiquement
à chaque requête. on sait donc d'avance que la requete
qu'on est en train de renvoyer sur ce serveur s'executera
bien.

les gros sites ont redirigés sur un sous-cluster de gros
sites. automatiquement. ce sous-cluster nous permet
d'isoler ces gros sites et éviter qu'ils puissent dégrader
la qualité de service pour les petits sites. on estime que
si le site se retrouve sur le sous-cluster, il doit quitter
le mutu pour évoluer vers un VPS, Cloud ou un Serveur dédié.
mais il peut rester sur le mutu. on propose le trafic
illimité et requête illimité, mais on n'assure pas la
qualité de service. c'est du best-effort.

En cas de panne d'un serveur du cluster, les petits sites
qui utilisaient ce serveur ne sont pas en panne. Le cluster
se recalcule automatiquement et à la 1ere requete puis
redirige à nouveau tous ces petits, qui ont perdu leur
serveur, sur leur nouveau serveur.

Nous avons donc tous les avantages et presque aucun
inconvénient.

Il nous reste:
- informer chaque client qui est sur le sous-cluster qu'il
est désormais en best-effort et que pour avoir de la
qualité, il faut évoluer vers une nouvelle offre: VPS
ou Cloud ou Serveur dédié.

- pour les petits sites on va améliorer les caches sur chaque
serveur. nous allons changer la manière d’exécuter le
php et le mettre dans le cache. ceci permettra d’accélérer
encore tous les petits sites.

- on va démarrer les tests de mutu-private avec un
site. il s'agit de mettre en place un sous-cluster dédié
à un client puis le faire grandir en fonction du besoin
du client. nous allons utiliser les VPS, le Cloud ou les
serveur dédié pour faire ces sous-cluster. Le client
pourra donc avoir un environnement facile à utiliser
comme le mutu tout en ayant les ressources dédiés.
Et pourquoi pas son sous-cluster pour du RoR, Java
ou Python ..

Amicalement
Octave