Cloudstack: “Data Center Orchestrator”

A quoi ca sert ?

Sébastien Goasguen à l’AlpesJUG

Vous avez:
– une ferme d’hyperviseurs potentiellement hétérogène: Xen, KVM, VMware …
– du Stockage
– du Réseau
CloudStack pilote ces 3 groupes d’éléments pour réaliser votre IaaS (Infrastructure as a Service).
Sebastien travaille pour Citrix, mais s’occupe exclusivement de la partie Open Source. Citrix a pour ambition de réaliser avec CloudStack/CloudPlatform le même modèle que RedHat avec Fedora/RHEL.

Rappel historique

En incubation chez Apache avec presque 150 entreprises et 350 contributeurs. Le succès du projet semble bien assuré.
Les années 2007/2008 ont vu une floraison de projets liés au Cloud en général. Chez Apache apparaissent beaucoup de logiciels de type Hadoop, Cassandra, CouchDb …

Du coté des hyperviseurs, KVM préinstallé dans les noyaux Linux prend l’avantage sur Xen.

Le marché IaaS comprend: Eucalyptus ; OpenNebula (projet espagnol et donc boudé par les US) ; OpenStack (projet US porté par la NASA) ; oVirst (RH) ; Ganeti (Google plus simple, moins ambitieux).
CloudStack joue la carte Apache pour attirer un maximum de contributeurs et de partenaires. Typiquement, les projets développant des solutions réseaux contribuent les plugins nécessaires à leur intégration dans CloudStack. Mais on trouve aussi des entreprises de toutes taille  avec des hébergeur iKoola ou GoDaddy mais jusqu’à des solutions qui fournissent des services de plus haut niveau comme UShareSoft à Grenoble !!
Cloudstack sera la version communautaire pour Citrix et son CloudPlateform (à la Fedora …)
Comme de nombreux produits ‘cloud’ les releases sont de type code source. Les packages sont distribués par des membres de la communauté, mais ne font pas partie du projet.

Technique

AlpesJug

Il n’y avait pas que des développeurs dans la salle

CloudStack communique avec tous ces équipements grâce à un système de plugins et offre une API riche comportant plus de 200 classes (configuration de firewall, des hôtes, gestion de routeurs, des utilisateurs, des images …)

CloudStack fournit aussi:

  • une interface Web
  • une interface en ligne de commande
  • CloudBridge EC2 : pour faciliter la migration des scripts EC2 sur CloudStack.
  • DevCloud : une machine virtuelle Virtualbox pouvant lancer des machines virtuelles Xen à l’intérieur de la première vm pour tester.
  • Marvin : un programme python utilisé pour les tests de charge qui permet de configurer un réseau complet à partir d’un fichier texte.

Tous ces projets utilisent l’API de CloudStack. Certains clients (INRIA) ont même re-développé une interface Web spécifique à leur besoin.

Cette API se trouve à la croisée des chemins du mouvement DevOps : une API pour les développeurs afin de faire de l’opérationnel.
Suite à une question, Sebastien explique que certains client installent Puppet ou Chef sur les images, pour que dès l’instanciation  la VM contacte le Puppet Master et se configure automatiquement.

Sebastien venant du monde réseau, a bien élaboré ce point crucial de la virtualisation. Il concerne:
– a sécurisation du multi-tenant,
– la souplesse de configuration (regrouper des VM démarrées dans différentes régions sur un même réseau)
– la performance. (Le débit n’est pas trop affecté (<10%) par la surcouche réseau. En revanche; la latence est plus sensible. Enfin, les écarts de performance vont du simple au double en fonction des techno.)

Les premières solutions à base de Virtual LAN ont rapidement montré leurs limites en termes de scalabilité. Cela demande en effet beaucoup de configuration.
La solution actuelle consiste à gérer un FireWall par machine. Bref, le Software Defined Networking (SDN) est un domaine en pleine ébullition (OpenFlow …).

Le stockage distingue 2 parties:

  • Les images des machines virtuelles qui sont disponible sur l’ensemble de la région (DataCenter) mais qui nécessitent peu de performance.
  • les volumes associés (SNASPHOT, données …) qui demandent plus de performance.

Cloudstack gère aussi bien 2 noeuds que 25 000 noeuds physiques (30k noeuds en simulation)

Bref une solution mature, facile à tester qui ravira Ops et Devs !