Sur la route d'Oxiane digressions diverses

LeBlog OXiane

7 nov
2014

LeanKanban France 2014

LeanKanban France 2014

LeanKanban France 2014 à la maison des associations, Paris

Les 5 et 6 Novembre a eu lieu la 3ème conférence LeanKanban France à la maison des associations. Au programme, 41 sessions de présentations, de retours sur expérience, de workshops et de jeux autour du Kanban et du lean management. J’y étais, notamment pour en apprendre un peu plus sur les méthodes d’apprentissage.

Stop Starting, Start Finishing!

« Stop Starting, Start Finishing! » (Arrêtez de commencer, commencer à finir !), c’était le maître mot des présentations. La conférence a commencé par une keynote de David Anderson, nous présentant une rétrospective de 10 ans de Kanban, de qes débuts en tant qu’outil du management agile jusqu’au Modern Management Framework. David Anderson est en outre l’auteur de Kanban: Successful Evolutionary Change for Your Technology Business (Blue Hole Press, 2010) dont la version française nous a été gracieusement offerte.

Parmi les keynotes, Donald Reinertsen nous a présenté Lire la suite du bllet »

Julien Bourdon

jbourdon

31 oct
2014

Yeoman rencontre Vagrant

Windows est communément le seul OS installé sur les postes de travail. Or avec des outils comme Yeoman, on évite beaucoup de contre-temps techniques si on bascule dans un environnement Unix.

Si comme moi, vous aimez vous simplifier la vie, voici une solution qui peut vous intéresser.

L’idée est d’utiliser Vagrant, utilitaire basé sur VirtualBox, pour créer, configurer et dupliquer des instances de VM (Virtual Machine i.e. Machine Virtuelle) contenant tout ce qui est nécessaire pour développer une appli web avec Yeoman.

Avantages ?

  • On évite d’entrer en conflit avec des dépendances d’outils déjà installés.
  • Plusieurs instances d’une même VM permettent d’isoler les dépendances propre à chaque projet.
  • Simplicité d’utilisation de Vagrant

Lire la suite du bllet »

Gaetan Le Brun

Gaëtan Le Brun

23 oct
2014

NgEurope : le chemin d’AngularJS 1.2 à 1.3 vers 2.0

NgEurope 2014 à l’espace charenton, Paris

Je sors tout juste de la conférence Angular 2.0 Core d’Igor Minar & Tobias Bosch au quatrième jour de l’excellente NgEurope 2014 qui a eu lieu cette semaine du 20-24 Octobre à Paris .

Le programme de ces 5 jours à Paris pour les 850 fondus du framework AngularJS n’était pas moins :

  • Premier jour : Formation EggHead.io
  • Deuxième jour : Formation EggHead.io, AngularJs et AngularJS Sprint
  • Troisième jour : 13 conférences + Lightning talks
  • Quatrième jour : 15 conférences + Lightning talks
  • Cinquième jour : Royal Hackathon

Un programme très intense et la présence de sociétés innovantes étaient de la partie.
Bien sur OXiane était présente avec:

  • la gestion des inscriptions de 70 français
  • un stand de présentation et d’échange
  • un test AngularJS pour les français aventureux

Lire la suite du bllet »

Julien Cheron

jcheron

8 oct
2014

Firebase sort une extension Chrome : Vulcan

Voilà encore un outil d’intégration pour nos développements front !
Firebase est une plateforme de services Cloud très efficace, fournissant un système de services REST pour stocker ses données ainsi que de multiples systèmes d’authentifications à des services tiers comme Facebook, Twitter ou Google+.
Le développement front avec AngularJS est aujourd’hui fortement accéléré par l’utilisation d’une plateforme comme Firebase.
En effet, AngularJS nous permet de monter notre modèle de données via de simples appels à des « resources », autrement dit … des services REST.

Avec Angular, je peux facilement gérer mes requêtes REST de cette façon :

.factory('FriendsBase', function ($firebase, FIREBASE_URL) {
var ref = new Firebase(FIREBASE_URL + 'friends');
var friends = $firebase(ref);
var FriendsBase = {
all: friends,
create: function(friend){
return friends.$add(friend);
},
...

Il me suffit d’appeler la méthode :create de mon service Angular pour voir le résultat en base :

Le seul hic, c’est que si je dois inspecter ma base pour vérifier la bonne insertion / édition de mes données, je dois aller sur le site de Firebase et m’identifier et garder un onglet ouvert dans un coin.
Avec Vulcan, l’éditeur va nous permettre de manipuler notre base directement dans le web developper !
Voici la configuration de la base à utiliser :

Une fois connecté à la base, l’interface apparait et on peut manipuler nos données directement !

Si notre service REST est correctement utilisé, l’API Firebase effectue la synchronisation des données automatiquement, il suffit donc de mettre à jour sa base pour voir le résultat dans son application.
Ici, nous avons testé avec une application Ionic, affichée en direct via la commande « serve » ajoutée récemment aux outils de commande.

A bientôt sur les conférences ngEurope !

Alain Boudard

aboudard

2 oct
2014

JUG Montpellier sur Cassandra

Après la très bonne présentation sur Java 8 en juin par José Paumard, c’était la rentrée pour le JUG Montpellier avec Cassandra.

Nous avions pour présenter ce JUG Sylvain Lebresne de DataStax (la société qui est derrière Cassandra) et Alain Rodriguez de Teads qui gère cette solution depuis 3 ans avec des retours d’expérience très intéressantes.

Cassandra est un base de données distribuée.

C’est un projet Apache depuis 5 ans qui s’est inspiré de Dynamo ou encore de BigTable pour le modèle de données.

Les grands intérêts de cette solution sont :

– la possibilité de réaliser un scaling horizontal des données sur des machines à faible coût. Le principe est de préférer avoir de nombreux serveurs avec un bon 

rapport prix / puissance qu’un gros serveur très cher. Sachant qu’il y a des exemples d’anneau comprenant 1000 serveurs en parallèle,

– la possibilité de gérer de très gros volume de données,

– la disponibilité : on peut atteindre les 100% de disponibilité (upgrade sans arrêt du serveur, tolérance aux pannes, …) sans avoir une architecture hors de prix,

– un des principes de Cassandra est qu’il n’y a pas de serveur maître ou de hiérarchie de serveurs entraînant souvent des SPOF,

– le déploiement est possible assez facilement sur différentes régions géographiques,

– une haute performance notamment avec des écritures à faible coût.

Cela vient répondre aux limitations des bases relationnelles dans lesquelles il est difficile et très coûteux de scaler notamment liés aux limitations suivantes :

– les jointures ne permettent pas de bien scaler

– les contraintes ACID (très utiles pour les développeurs) ne permettent pas de bien scaler

– le design des bases relationnelles a été réalisé pour être mono-instance (cluster possible mais très coûteux et au final limité, le sharding des données est possible mais la gestion des pannes est délicate).

Le principe de la solution HD de Cassandra est que la réplication est réalisée de manière asynchrone sans maître.

Les données sont répliquées sur plusieurs serveurs (configuration possible du nombre de réplicas par le Replication Factor) garantissant ainsi un accès aux données même si un serveur est down (de manière voulu ou non).

Chaque donnée stockée possède un ID (hachage). Cet ID permet de localiser les données sur les différentes serveurs, chaque serveur gérant plusieurs plages de données connues par tous le serveurs.

Un des principes de Cassandra est de réaliser le travail pour faciliter la récupération des données à l’écriture, optimisant ainsi le travail de lecture « pré-maché ».

La soirée c’est poursuivie sur la présentation de CQL (Cassandra Query Language) et du Java driver.

CQL est un sous ensemble de SQL pour la dé-normalisation des données adapté pour la distribution des données et le cluster.

Le Java Driver permet de se connecter vers un base Cassandra avec une gestion automatique et transparente des noeuds (load balacing et fail-over automatique).

Et enfin quelques conseils utiles pour finir la soirée :

– monitorer les logs, l’état up/down des serveurs, la latence du cluster, le heap du GC, l’espace disque disponible, …

– toujours avoir de la marge sur les serveurs et ne pas attendre qu’il n’y ait plus de ressources pour ajouter un nouveau serveur car cela serait contre productif à cause de la surcharge liée à l’ajout d’un nouveau serveur sur l’anneau (copie des données sur le nouveau serveur)

– réaliser les opérations de maintenance lorsque la charge est faible

– tester les upgrade avant et ne pas faire d’upgrade si l’anneau est instable

– regarder les anti-patterns : http://www.datastax.com/documentation/cassandra/1.2/cassandra/architecture/architecturePlanningAntiPatterns_c.html 

Donc voilà encore un soirée du JUG très instructive …

Emmanuel Pavaux

epavaux