mardi 24 avril 2012

Histoire d'une Cassandra Lan Party à Devoxx France

Genèse

Tout commença par un coup de fil de Nicolas Romanetti. un soir du début du mois de Mars.  

J'avais appris le mois précédent que mon Tool In Action sur cassandra-unit n'avait pas été retenu. Rien d'étonnant quand on voit la qualité des sujets qui ont été retenus.

Nicolas, lui, avait proposé 2 talks sur Cassandra : 
- le premier au format University : "Introduction à Cassandra". L'idée est de balayer sur 3 heures tous les concepts de Cassandra en prenant bien le temps du question/réponses mais dans un format très théorique basé sur des slides.
- le second au format Labs : "Hands On Cassandra". Ce "Hands On" devait initialement permettre aux participants de manipuler un peu cassandra "dans son coin" sur son poste.

Ces deux talks ont été sélectionnés (et se suivent sur la même journée, 2x3H). C'est ça les rockstars :-).

Histoire d'un coup de Fil :
N : Salut Jérémy, dis moi, je ne sais pas si tu as vu mais mes 2 talks ont été sélectionnés.
moi : oui énorme, c'est cool, les participants qui le souhaitent pourront faire une journée complète sur Cassandra!
N : J'ai besoin d'aide sur le Hands On, ça te dirait de me filer un coup de main?
moi : un coup de main comment?
N : Pour le Hands On, j'ai une idée, j'ai envie de changer légèrement le contenu, c'est ok avec les organisateurs mais il me faut une équipe. J'ai envie de faire une Lan Party.
N : Yes
Moi : BANCO! C'est parti pour une Cassandra Lan Party à Devoxx France.
Lui : Tu es où toi?
Moi : sur Lille et toi?
Lui : Ajaccio ;-)

C'est comme ça qu'on se retrouve dans le même bateau, Nicolas, Florent, Sylvain et moi.

Il y aura donc une Cassandra Lan Party à Devoxx France :

Préparation

On en maintenant mi-mars. Devoxx, c'est quand même dans un mois. Alerte générale!

On échange pas mal entre nous par mail et sur un petit google doc partagé. Le point noir, c'est le réseau, la seule façon pour que ça se passe sans problème, c'est de ne pas compter sur celui de Devoxx et donc c'est de venir avec à Devoxx. "Qui a des switchs? Heu... Personne... ". Tout le reste n'est que de la préparation et du détail (ou presque ;-)). Pas de switchs, pas de Cassandra Lan party! On lance alors un appel à la population.

Nous n'avons pas eu tant de retour que ça mais des retours gagnants! :
- Euratechnologies répond OK et nous prête 3 switchs professionnel 24 ports en gigabit neuf ainsi qu'une quarantaine de câble RJ45 de différentes longueur!
- Thomas Recloux, un ami un peu geek ;-), me prête aussi son switch personnel (enfin pro ;-)) de 24 ports en gigabit neuf.

Côté matériel, c'est tout bon.

En parallèle nous contactons Jake et Edward, les organisateurs de la Cassandra Lan Party de NYC, pour avoir leur feedback. Pour faire simple : c'était fun mais la génération et l'attribution du token n'a pas fonctionné comme ils le voulaient

Hey mais nous sommes début Avril! Alerte générale!

L'idée émerge alors dans nos esprits de faire une application web pour aider les participants à récupérer leur token et configurer leur noeud cassandra. L'application web de la cassandra-lan-party, vient de naitre, 2 nuits pour coder ça en équipe, un peu de spring-mvc, de twitter bootstrap et hop. Nous mettrons prochainement les sources à disposition.

De mon côté, je récupère le matériel et je fais des tests (je ne vous raconte pas comment madame était contente de voir ça dans le salon :-)) : 



On peaufine aussi les slides.

Tiens si on se faisait un tee-shirt, ça aiderait les participants à nous identifier plus facilement s'ils ont des problèmes :


Répétition

Il n'y a pas de secret, il faut répéter! Ca nous permettra accessoirement de nous rencontrer IRL ;-)

Nicolas organise la semaine précédent Devoxx France, une répétition chez Zenika



C'est parti pour Paris, mais tiens, c'est vrai, il faut transporter tout le matériel réseau... : 


Est-ce que la valise va fermer?



Voici le récit de la répétition ainsi que les photos.



Nous avons mis en place 18 noeuds Cassandra sur différent OS sur 3 Datacenters.

Pour la petite anecdote, Tout le monde arrive progressivement pour la répétition, Je dis bonjour à plein de participants. On commence à s'installer et je dis à un moment à Nicolas, "On attend Florent pour commencer?" et là j'entend une voix qui répond derrière moi "ben je suis là". Moment de solitude ;-)

Nous avons pas mal de feedbacks intéressants et avons la confirmation qu'une application web pour aider les participants à récupérer leur token et configurer leur noeud cassandra est une très bonne idée, on nous donne même des idées de feature en plus. Merci Brice. C'est l'heure de recoder un peu dans l'application web et modifier les slides :-).

The D Day

Le matin, Nicolas a fait un super talk sur Cassandra. Simple, clair, précis et efficace. De très bon échange avec le public. Voici les slides.

Mais c'est maintenant déjà l'heure du Hands On!

Dans un premier temps, nous avons eu la chance d'avoir la salle du Hands On en avance. C'était d'ailleurs assez drôle de voir les serveurs préparer la salle avec des petits napperons, des verres et des bouteilles d'eau avec les tables et les chaises bien alignées avant que nous en prenions possession :-). Une fois la salle à disposition, hop, on enlève tout, on bouge tout pour constituer 3 zones avec les tables pour représenter physiquement 3 datacenters avec les chaises dans tous les sens, bref une Lan (merci Thomas pour le coup de main lors de la mise en place!)

La Cassandra Lan party s'est déroulée en 3 étapes :

- installation/configuration du réseau


Tout les participants se branchent par datacenter sur un switch. On note les IPs sur des Post-its. Un slide explique la conf réseau à effectuer ainsi que des tests pour vérifier que tout est ok.

- installation/configuration de Cassandra
Des clés USB sont distribuées. Il est possible d'installer Cassandra soit par les clés USB soit en la téléchargeant depuis notre application web. Les slides expliquent le paramétrage à effectuer... 

L'application Web fournit le token et précise les éléments de configuration à modifier dans Cassandra :



- démarrage et exécution de différents scénarios sur le cluster
Voici les caractéristiques du cluster cassandra :
  • 3 datacenters.
  • Utilisation du RackInferringSnich
  • 3 seeds (un par DC)
  • Replication Factor de 9 (3 par DC).

Nous avons démarrer dans un premier temps les 3 seeds (Sylvain, Florent et moi) puis dans un second temps nous avons démarrer progressivement tous les autres noeuds.
Et là, problème, les noeuds cassandra sur les machines windows ne veulent pas rejoindre le cluster, merci windows et à son firewall ;-). Une fois le firewall coupé, tout le monde arrive à rejoindre le cluster.

Notre cluster est constitué de 36 noeuds. D'un point de vue de l'équipe, on sait déjà qu'on a remporté notre   pari. Le reste n'est que formalité ;-).



Nous avons mis en place un cluster Cassandra de 36 noeuds réparti sur 3 datacenters sur tout type d'OS.

La Cassandra Lan party de NYC est battue :-)



C'est maintenant l'heure de jouer avec le cluster.

Par l'intermédiaire de nodetool, les participants interrogent l'état du cluster et par l'intermédiaire de cassandra-cli, ils écrivent et lisent dans le keyspace créé pour l'occasion. Nous faisons d'abord tombé et revenir un DC puis nous faisons tomber et revenir 2 DCs. Les participants constate en live comment le cluster réagit... Bref, facile, c'est Cassandra, c'est fait pour ça :-)

- un peu de théorie pour terminer
Après une petite pause, les questions commencent à arriver en nombre et c'est le moment de repartir sur quelques slides pour pouvoir y répondre : le datamodel, le ring, le partitioner avec le token, le replication factor, le consistency level, tout y passe. Nicolas était bien au point après l'university du matin!

Le mot de la fin

Les objectifs étaient que les participants :
- mettent les mains dans le cambouis!
- constatent que Cassandra, ça n'est pas compliqué!
- s'amusent!

Je ne suis pas très objectif justement mais je pense que nous ne sommes pas loin de les avoir tous atteints!

Pour ma part :
- ça a été super fun.
- l'ambiance était décontractée et conviviale.
- une valise de 40kg à trimballer, c'est lourd!

Merci à tous les participants de s'être prêté au jeu!



4 commentaires:

Fabien Travaglia a dit…

Un très bon souvenir pour moi qui ait été participant de cette Cassandra LAN party :).

el maestro a dit…
Ce commentaire a été supprimé par l'auteur.
Jules Edgar a dit…

Une très bonne expérience pour moi d'avoir participer à la conférence et au Lan Party.
D'autan plus que mon sujet de stage de fin étude porte sur le NoSQL et en particulier CASSANDRA.
Merci
Vivement Devoxx 2013!!!!

Bertrand CHEVRIER a dit…

Un moment sympa surtout après avoir suivi l'université. Et ca qui m'a impressionné c'est de voir qu'il est possible de monter autant de noeuds sur des système hétéroclites en si peu de temps, de simuler la tolérance aux pannes avec des déconnections de câbles...
Merci aux personnes qui ont organisés ça.