Mezcalito fait son propre Cloud !

Thomas Pierson , #Lab

Thomas Thomas

Le mot magique

«Cloud». Le mot à la mode qu’on entend partout aujourd’hui pour tout ce qui touche de près ou de loin à l’hébergement.
«J’ai sauvegardé toutes mes photos dans le Cloud.»
«Nos sites web sont hébergés dans le Cloud.»
«Mon compteur est intelligent car il est connecté au Cloud.»
Et sûrement bientôt…
«Ma cafetière fait du bon café car elle est reliée au Cloud.»
Le mot est tellement devenu une sorte de fourre-tout marketing qu’on finit par croire que l’hébergement se fait désormais dans un joli nuage magique peuplé de licornes et de petits poneys. Mais non, c’est bien toujours des piles de serveurs stockées dans des centres de données qu’on utilise !
poneycloud

Retour vers le futur

Pour tenter d’avoir une idée plus concrète de la chose, je vous propose de revenir 10 ans en arrière quand Mezcalito a commencé son activité d’hébergeur.
Au tout début, on utilisait déjà ces serveurs qui ne sont autres que des ordinateurs évolués, mais ils restaient encore limités en capacité de stockage et de traitement.
La stratégie était donc, par exemple, d’héberger directement les sites web de nos clients sur un serveur physique et de mutualiser les ressources. Ou, si les besoins du client devenaient trop importants, de lui dédier un ou plusieurs serveurs physiques.
 serveurs_physiques_dedies

Et la virtualisation dans cette histoire ?

La virtualisation a débarqué chez Mezcalito justement au moment où la capacité des serveurs du marché a commencé à augmenter fortement. Il devenait alors de moins en moins pertinent de dédier une machine physique entière à un client ou à un service mutualisé.
On a alors commencé à mettre plusieurs serveurs dit «virtuels» sur un seul serveur «hôte» physique. 
Le principe des technologies de virtualisation est d’émuler de manière logicielle tout le matériel d’une vraie machine et de faire croire au système (Linux, Windows ou autre) qui va tourner dessus qu’il opère sur une machine réelle.
Un des gros avantages de la virtualisation est que les serveurs des clients ou leurs services mutualisés ne sont plus fortement liés au matériel physique. On peut par exemple les déplacer d’un serveur physique à un autre sans devoir changer la configuration ou quoi que ce soit sur le système du serveur virtuel. On peut également augmenter leurs ressources…
C’est le début d’une sorte d’indépendance des services métiers et clients vis à vis du hardware à proprement parler.
serveurs_virtuels

Mais du coup, c’est quoi le Cloud ?

Une fois qu’on a commencé à faire de la virtualisation, on a très vite envie d’associer des serveurs hôtes physiques ensemble pour pouvoir redonder des machines virtuelles en cas de panne. Ou bien en cas de maintenance d’un serveur hôte physique, on veut pouvoir déplacer rapidement et de manière transparente les machines virtuelles d’un serveur hôte à un autre.
Cette association de serveurs hôtes supportant un ensemble commun de machines virtuelles est appelée un cluster de virtualisation.
Et quand on parle de cluster, on parle presque déjà de ce fameux «Cloud» qui est une sorte de grand cluster de virtualisaton unifié. Au final, l’idée du Cloud au sens technique est d’unifier la gestion, la livraison et les ressources (stockage, CPU, RAM) des machines virtuelles au sein d’une même plateforme.
Cette plate-forme peut d’ailleurs être répartie sur plusieurs lieux géographiques différents. Elle permettra ainsi de redonder une machine virtuelle sur différents sites, ou encore de transférer une machine virtuelle d’un site à un autre… 
cluster_de_virtualisation

Mezcalito utilise Ganeti

Des «solutions» pour mettre en place des plates-formes de Cloud, il y en a des palanquées mais Ganeti nous a particulièrement séduits pour plusieurs raisons :
  • C’est une solution à notre mesure d’hébergeur «artisan», relativement simple à maintenir contrairement à d’autres solutions comme OpenStack plus orientées «industriel» et gérant de gros volumes de serveurs.
  • C’est un outil très stable initié par une équipe interne de Google et bien maintenue par une communauté qui n’a pas de pression commerciale forte.
  • C’est un outil qui utilise des briques techniques éprouvées dont on se sert depuis longtemps : KVM pour hyperviseur, DRBD pour la réplication de données, LVM.
  • C’est un logiciel libre qui est particulièrement bien maintenu dans Debian (le sytème utilisé sur nos serveurs).
Ganeti utilise un mode de fonctionnement qui n’est pas trop proactif et qui laisse, en cas de problème, les administrateurs prendre les décisions après avoir étudié la situation.
Et pour ma part, ayant eu des mauvaises expériences par le passé sur d’autres systèmes de cluster (ex : Pacemaker et ses STONITH), c’est un mode de fonctionnement que j’affectionne tout particulièrement !
 ganeti-logo

Des perspectives pour nous et nos clients

Aujourd’hui, la quasitotalité de nos services et ceux de nos clients ont été intégrés à cette plate-forme. Cela a permis d’améliorer grandement notre qualité de service et leur stabilité.
Pour donner un exemple concret, nous avons récemment rencontré un problème sur une mise à jour d’une pile de switch Dell, un équipement réseau qui permet de raccorder tous les serveurs d’une baie. Pour pouvoir effectuer les diagnostics de panne et résoudre le problème, nous avons pu déplacer rapidement toutes les machines virtuelles dans notre seconde salle de manière transparente sans impacter nos services et nos clients.
Pour résumer, cette plate-forme nous donne maintenant une souplesse énorme au niveau opérationnel et offre également de grandes perspectives à nos clients.
Nous pouvons maintenant proposer des offres performantes et évolutives en termes d’hébergement, qui peuvent coller aux besoins de nos clients tout en gardant une cohérence au niveau de notre infrastructure.

 

Modèles des diagrammes: VRT-Network CCBY-SA3.0 https://bitbucket.org/vrtsystems/odf-extension-vrt-network-equipment

Logo de Ganeti: http://www.ganeti.org/

 

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn