OpenNebula, Acte 1: Les présentations


Je m’intéresse en ce moment à OpenNebula qui se définit comme « un gestionnaire de virtualisation de ressources pour le Cloud« . Cet intérêt est porté par mes travaux sur le Cloud et la SOA, ou comment fournir une solution SOA utilisant le Cloud. Pour le moment je laisse le sujet SOA de coté, je l’ai déjà évoqué et je reviendrais dessus en 2011…

Fully open source (not open core), thoroughly tested, customizable, extensible and with unique features and excellent performance and scalability to manage hundreds of thousands of VMs:

  • Private cloud with Xen, KVM and VMware,
  • Hybrid cloud (cloudbursting) with Amazon EC2, and other providers through Deltacloud (from ecosystem),
  • Public cloud supporting EC2 Query, OGF OCCI and vCloud (from ecosystem) APIs,…
  • and much more.

Dit comme ça, on ne voit pas forcement la différence avec le concurrent direct qu’est OpenStack. Deux frameworks pour le Cloud qui se positionnent de la même façon… D’ailleurs, un représentant de chaque produit était présent à la conférence OW2 le mois dernier et les présentations était assez identiques. Bon OK, OpenStack se la joue plus à l’américaine : « Eh les gars, nous on est issue de la NASA OK?! »……
OpenNebula lui est un projet qui est en partie financé par des projets de recherche Européens depuis 2005, quand on connaît le niveau de ce genre de projets financés, on a peu de doutes sur les capacités d’un produit issu de là. On a beau pas être américains, on sait aussi faire décoller des fusées… Bref, fermons la parenthèse anti-amerlocs.

2005? On parlait déjà Cloud à cette époque? Non, on parlait grille et calcul haute performance. C’est pour adresser ces domaines que OpenNebula a été créé. Elle a évoluée au cours des années car finalement c’est toujours un peu la même chose… On change le nom et on rajoute deux/trois trucs par ci par là… Ce n’est donc pas étonnant de voir une infrastructure de type cluster du type Frontale + Noeuds:

(Par la suite, ONE = OpenNebula; VM = Machine Virtuelle)

  • Le binaire de ONE est installé et lancé en tant que daemon sur la machine frontale (ONED). C’est lui qui fournit les APIs Cloud propriétaire et celles qui peuvent être pluggées par dessus (du type Amazon EC2, OGF, etc…).
  • Dans le comportement par défaut, les images permettant de lancer les machines virtuelles sont partagées entre les noeuds via un bon vieux système de fichiers réseau de type NFS.
  • La frontale doit pouvoir se connecter à tout les noeuds en SSH ie partage de clés.
  • Les Hypervisors sont les plateformes de virtualisation qui permettent de lancer des machines virtuelles sur les noeuds. Les plus connus (et supportés par défaut par ONE) sont, par exemple, Xen, KVM et VMWare.
  • Les Drivers permettent de créer la communication entre le daemon tournant sur la frontale et les hyperviseurs.

D’après cette liste, on comprend mieux la philosophie d’OpenNebula. Il s’agit d’utiliser des hyperviseurs existants, de les envelopper, de leur rajouter des fonctionnalités et de les gérer intelligemment. Cette gestion intelligente doit bien sur se caler par rapport aux attentes de niveau infrastructure Cloud (IaaS) en offrant de l’élasticité, de la migration de VMs entre noeuds, etc…

Une fois les hyperviseurs installés et en état de marche (c’est vraiment la chose la plus dure à faire et celle sur laquelle j’ai perdu un temps fou à cause d’une machine trop vieille…), l’utilisation de base depuis la frontale est assez simple:

  1. Déclarer les noeuds physiques ie ceux qui hébergent les hyperviseurs et qui feront tourner les VMs
  2. Déclarer un ou plusieurs réseaux virtuels. On définit ici principalement les addresses IPs qui seront assignées et utilisées par les VMs.
  3. Soumettre une image système et son descripteur au scheduler. Le scheduler a pour but de faire migrer l’image vers le bon noeud physique afin de pouvoir démarrer une VM sur ce noeud.
  4. Pas de 4… Enfin si mais pour des utilisations poussées, je passe pour le moment…

Dans une utilisation simple en mode Cloud privé, c’est à peu pres tout. On peut démarrer, arrêter et migrer des VMs assez facilement. ONE se charge d’assigner les bonnes addresses IPs pour peu que l’image système soit configurée pour le faire (via quelques scripts système). On peut donc créer son Cloud privé de type IaaS avec ONE pour pas un euro (modulo le temps à appréhender le monstre) et avoir un total controle dessus.

Ca à l’air très simple… Oui l’utilisation est simple, c’est la mise en place qui l’est moins. Tout du moins pour préparer les noeuds et les hyperviseurs. Je suis tombé sur des soucis avec la mise en place de KVM sur une machine trop vieille et qui ne fournit pas la virtualisation niveau processeur. Je passe car je n’ai pas le courage mais j’ai perdu pas mal de temps. Les développeurs qui sont très réactifs ont passé du temps avec moi pour essayer de voir ce qui collait pas. Résultat, je laisse tomber KVM que je commençais à maîtriser pour passer à Xen qui est moins simple mais qui est censé marcher mieux. Encore quelques dizaines de cafés en vue…

Dédicace à mon sysadmin préféré 😉

OW2Con 2010 feedback


OW2Con 2010, la conférence annuelle du consortium OW2, se tenait la semaine dernière à Paris au co-working space ‘La Cantine‘. Pour la première année, cette manifestation n’était pas organisée pendant le salon Solution-Linux, mais ce n’est pas pour cela que le monde n’était pas au rendez-vous avec une grosse centaine de participants et un programme bien rempli. L’occasion d’écouter des présentations de qualité autour de l’open source, du cloud computing, des projets OW2 et de rencontrer les personnes que je côtoie depuis quelques années via les nouvelles technologies de communication…

Le ‘Cloud Summit’ de la première journée était je pense la partie la plus attendue et la plus suivi. Ce thème excite évidement beaucoup de monde en ce moment, et chez OW2, l’initiative Cloud est bien lancée avec de premiers résultats et prototype prévus pour l’an prochain.
Coté speakers, le niveau était là, ce qui m’a beaucoup amusé, c’est la présence de représentants des projets OpenNebula et OpenStack, deux solutions de virtualisation de ressources pour le Cloud qui se ressemblent fortement. Mis a part une solution EU et une autre US, les différences sont assez minimes (tout du moins dans ce qui a été présenté). Affaire a suivre sur le Net ou ici car j’aurais l’occasion de mettre en oeuvre très prochainement ces frameworks pour les travaux Cloud que je mène actuellement…

De la deuxième journée, je retiens principalement les présentations relatives aux projets OW2 : Jonas, XWiki, Talend, Bonita.
La démo combinée de Talend et de Bonita est simple mais efficace. Effectivement, on se doutait déjà que les deux produits marchait sans problèmes, là j’en suis sur, pas grand chose a dire de plus la dessus…
Je préfère approfondir un peu sur les présentations relatives à Jonas, le serveur J2EE principalement développé par Bull. Les slideshares cités dans un tweet de leur auteur (@florentbenoit):

Sur la partie ‘Reliable Asynchronous Web Services on JOnAS Java EE server’ fournissant un nouveau mode d’échange de message reliable et asynchrone à Apache CXF, mon constant est le suivant : L’approche est non lightweight et est plutôt orientée pour l’entreprise ie il faut des instances de Jonas pour faire tourner cette solution. Fini le bon vieux Endpoint e = Endpoint.publish(); . Mais disons ici que ce n’est pas le but. Le vrai but est démontré par une démo efficace; client et serveurs peuvent ‘tomber’, les messages seront de toute façon délivrés lorsque les parties intéressées seront de retour (A méditer pour Petals ESB…).
Sur la deuxième présentation ‘Secure your Java EE projects by using JOnAS audit tools’, je retiens la partie présentation des informations de monitoring qui permet de suivre le cheminement d’une invocation dans tout les modules entrant en jeu. La solution de présentation basée sur Flex est sexy, c’est vraiment mieux que de montrer des messages XML dans une pauvre table HTML… Cette partie aussi me semble très intéressante à extraire de Jonas et à rendre générique et disponible pour tous…

Tout cela (et tout ce que j’ai raté) confirme vraiment que les personnes impliquées dans OW2 fournissent vraiment un travail de qualité, que ce soit au niveau des projets, du management du consortium et sont vraiment motivés. Je pense vraiment que le travail autour des initiatives lancées cette année, que ce soit pour le Cloud ou le BI fourniront des solutions compétitives car les gens sont là, compétents et motivés!

Pour ceux qui ne suivent pas mes tweets, toutes les vidéos de ces deux journées sont disponibles en ligne.

Support de Twitter dans Adium 1.4.x


Adium icon, also known as the Evil Menu Duck (EMD)

Image via Wikipedia

J’utilise déjà Adium pour Gtalk, jabber perso et pro et en temps que Twitter-addict je me suis dit qu’il était temps de voir comment est supporté ce service dans la nouvelle version de Adium sortie il y a quelques jours (le support dans la beta était un peu juste et ne m’avait pas spécialement satisfait…). Voici donc un premier retour d’expérience sur l’utilisation de Adium et de Twitter.

Les mentions

Mentionner

Le premier soucis de l’intégration de Twitter dans un logiciel initialement conçu pour la messagerie instantanée est le mappage entre le monde du microblogging et de l’IM. Les développeurs d’Adium ont décidé que chaque abonnement Twitter serait mappé sur un buddy IM. Ok bon, je suis actuellement 538 personnes (mais activement quelques dizaines, merci les listes!). Bref, cela me donne une fenêtre de liste de contacts assez énorme, qui de plus est affreusement longue à charger au démarrage (l’enrichissement se fait pas tranche d’une centaine de contacts, je pense que les limitations de l’API Twitter doit en prendre un coup). En plus je me retrouve avec a peu prêt autant de notifications Growl me donnant le statut actuel de mes contacts…
Du coup, pas d’autre choix que de désactiver l’option ‘Afficher qui je suis dans la liste de contact‘ dans les préférences du compte Twitter.

Oui mais… En désactivant cette option, il se trouve que la completion du nom lors d’un @mention ne marche pas pour tous les utilisateurs… Pour info, la completion est disponible en tapant ‘@xxx + Tab’ xxx étant le début du nom de la personne à mentionner.
Les développeurs ont apparemment choisit de ne pas charger la liste des personnes suivies si on ne veut pas les afficher. Dommage, l’affichage n’étant pas la seule utilisation que l’on puisse faire et il arrive souvent que l’on veuille mentionner quelqu’un dans un tweet… Après avoir discuté avec les développeurs sur le canal IRC d’adium (#adium sur freenode), la seule solution est de réactiver l’option que l’on vient de désactiver un peu plus haut et de choisir le masquage des contacts pour le compte depuis ‘Affichage>Masquer certains contacts>Masquer les contacts du compte‘.

Bref, on se retrouve avec quelque chose qui marche mais qui dans mon cas prends énormément de temps à démarrer…

Être mentionné

Dommage, il semble que la seule façon de voir que l’on est mentionné dans le tweet d’un contact est une minuscule marque dans la barre de défilement… Une notification Growl aurait bien fait l’affaire (ou même une fenêtre de dialogue spéciale).

Les DM

Puisque au point précédent j’ai du désactiver l’affichage de la liste des contacts (et que je ne peux plus ‘double-cliquer’ sur le contact), comment alors envoyer un message direct?
Seule solution, créer une nouvelle conversation (cmd-N). Ouf la completion marche bien si on a bien activé l’option qui va bien (cf point précédent)…

Par contre, cette fois ci un DM venant de quelqu’un affiche bien une nouvelle fenêtre de dialogue de type chat.

Les listes

Support absent… Dommage, je ne suis activement qu’une vingtaine de personnes que j’ai placé dans une liste privée (la timeline globale étant vraiment trop horrible à suivre). Il y a sûrement ici une astuce pour créer un groupe d’utilisateur mais je n’ai pas envie de dupliquer les choses. Je m’en passerais pour le moment.

Pour conclure cet article, il est clair que le ‘mapping’ entre deux mondes pas tout à fait identiques est assez complexe mais pour une première intégration c’est déjà vraiment pas mal (en plus je ne pense pas qu’il y ait une société derrière Adium comme on peut le voir pour pas mal de projets Open Source de nos jours ie quid du business model d’un logiciel de messagerie instantanée). Ce genre d’exercice peut évidement tirer aussi les fonctionnalités de base vers le haut, a voir dans les prochaines versions.

Les points cités précédemment sont certainement contournables, et discuter avec les développeurs via le canal IRC du projet est un bon moyen de trouver des solutions alternatives en attendant la version 1.5 (le tracker est déjà bien rempli)…

IRC et Adium


 

Adium icon, also known as the Evil Menu Duck (EMD)

Image via Wikipedia

 

Et non IRC n’est pas un vieux protocole mort… Ce moyen de communication sert encore beaucoup dans le monde de l’open source (pour les plus vieux c’est un genre de Caramail mais pas pour draguer, enfin je crois…).

Niveau clients, il y en a des tonnes comme d’habitude. Sous Mac OS X je citerais Colloquy mais bien évidement, je suis un inconditionnel de Adium et il se trouve que la beta v1.4 propose un support sommaire mais suffisant d’IRC. La seule chose qu’il faut savoir c’est que utiliser IRC n’est pas tout a fait la même chose que de chatter via jabber ou autre. En gros avec IRC et Adium (pareil pour Colloquy), fermer sa fenêtre équivaut à se déconnecter du channel… C’est la qu’il faut être vigilant… L’autre difficulté vient du fait de trouver comment faire pour sauver ses channels préférées (il y en à des tonnes…).

Je profite que OW2 développe l’utilisation de ce canal de communication pour illustrer le présent article avec quelques captures relatives à l’ajout de channel en tant que contact Adium.

1. Joindre un channel (Je passe la partie connection à un serveur IRC…)

2. Blablabla

3. Sauver le channel en tant que contact: « Ajouter un signet à la Conférence » et choisir un nom de groupe pour ranger tout ça bien proprement…

Et voila, le channel apparaît dans la liste des contacts… Facile pour se reconnecter facilement quand on ferme la fenêtre sans faire attention!

Note : D’après une discussion que j’ai eu sur le channel IRC d’Adium, la v1.5 permettra de ne plus être déconnecté lors de la fermeture de la fenêtre… Pour le moment la 1.4 est toujours en beta depuis bien longtemps mais marche plutôt bien…