Introduction
C’est parti pour 2 jours de conférence à Sophia-Antipolis, sur les hauteurs de Nice. Au programme, 34 conférences sur 2 jours, avec 28 speakers, environ 180 personnes, et un site magnifique à l’INRIA.
Keynote d’ouverture par Stéphane Epardaud, organisateur de la conférence du Riviera DEV qui a récemment rejoint JBoss RedHat. Il travaille sur le langage Ceylon. La conférence se déroule dans des bâtiments de Sophia-Antipolis dans la montagne, qui me font penser à Palo Alto ou Mountain View. Ambiance américaine. Au détour d’un café j’apprends qu’un 20ème Java User Group ouvre à Brest, le FinistJUG (@FinistJUG et http://finistjug.fr/). Après le LavaJUG à Clermont-Ferrand il y a quelques semaines, content de voir encore un nouveau JUG.
Cloud Bees par Nicolas de Loof
Je commence ma matinée avec Nicolas de Loof, sur CloudBees. Ancien commiter de Maven, co-auteur du livre Apache Maven avec Arnaud Héritier. Pour débuter, ça parle Forge logicielle. Nicolas prend l’image d’un plan de métro pour expliquer les différents métiers et besoins d’une équipe logicielle. L’intégration continue dépasse la simple intégration du code et des tests. C’est aujourd’hui un outil indispensable, pour répondre aux demandes des différents métiers : développeur, testeur, chef de projet et intégrateur.
Nicolas demande qui utilise un SCM ? Majoritairement SVN, peu de personnes utilisent Git dans la salle. Pour le build, Maven2 et maintenant Maven3, qui après quelques années est enfin dispo. Mais Maven3 est bien différent du côté licence. Le coeur Maven-core est en licence Apache Software Fundation. Mais le repo central est hébergé par une société commerciale, Sonatype. Il y a aussi Plexus qui est obsolète, Aether fait par sonatype en licence EPL et Sisu en licence EPL. Or tôt ou tard, Sonatype pourra faire payer certaines fonctionalités du repo central, comme faire payer les statistiques de téléchargement des librairies. SpringSource par exemple pourrait payer pour connaître le nombre de chargements de leurs librairies.
Côté Apache Maven, Sonatype ne fait plus partie du PMC. Trouver des contributeurs pour Maven3 devient difficile. Il y a une grande communauté de plugins avec beaucoup de commiters. Pour comprendre Maven3 il faut comprendre Eclipse Aether. Nicolas a une vision assez noir de l’avenir de Maven au sein de la fondation Apache.
A part Maven, il y a aussi Graddle, Apache Ant, Buildr ou même simplement make. Maven va continuer à être utilisé encore un bon moment. Personnellement, je trouve SBT, l’outil de Scala, très bien fait. Je ne serai pas étonné de voir des projets s’en servir.
Pour automatiser le tout, Nicolas présente maintenant le projet Jenkins, anciennement Hudson. Oracle étant propriétaire de la marque Hudson, a demandé à faire fixer des bugs avant la sortie d’Hudson. Or la gouvernance d’un projet n’est pas faite par une société mais par des personnes. Finalement, le fondateur d’Hudson, Kohsuke Kawaguchi, a quitté Oracle et travaille maintenant chez CloudBees. La gouvernance du projet Jenkins est ouverte. La gestion du projet est distincte de la gouvernance technique. Cela évite les collisions et les conflits d’intérêts. Le projet est sur GitHub. Il n’y a pas de CLA ou de license à signer pour les Plugins.
Lancer un projet, c’est installer des outils comme un SCM, un build tools, un outil d’intégration continue, une sécurité à faire rougir la CIA pour le DSsI de la société, des tableaux Sonar avec des indicateurs de qualité, des jobs, des serveurs de démonstration, des gestionnaire de répo… bref… c’est long.
Alors on peut faire une superbe forge, cliquer sur Clone, et avoir son projet au bout de 10 mn. Mais finalement, il faut bien une équipe qui créé cette forge et qui s’assure de sa maintenance… Si un éditeur peut mettre en place une équipe « outils », les clients finaux comme une Banque n’ont pas forcément les mêmes moyens (cela dit j’ai vu un exemple qui marche bien dans une Grande Banque Française).
Option 2 : on peut aussi scripter notre installation avec Chef ou Puppet.
Il faut enfin avoir une machine. Vous commandez une machine, l’équipe technique met 3 semaines à vous installer une « VM » sous Windows alors que vous aviez besoin pour hier d’un serveur sur Linux… Bref c’est compliqué.
On arrive donc au Cloud. Première idée : la mise à disposition de ressources et la notion de « self-service ». En écoutant Nicolas de Loff, j’ai cette image : le Cloud finalement c’est le Mac Drive du développeur. Soit tu t’assois, tu attends patiemment que le gros barbuvienne prendre ta commande, pour découvrir au final que le contenu de l’assiette n’est pas identique à la photo, soit tu décides toi-même de ce que tu veux, et au dernier moment.
Le Cloud c’est aussi de l’élasticité et de la flexibilité. Côté investissement, vous passez à un paiement à l’usage, qui vous permet d’expérimenter avant de passer à l’achat de vos machines.
C’est là que CloudBees propose de la valeur, avec une porte d’entrée gratuite.
CloudBees DEV@Cloud est une plateforme as a service, avec un Jenkins hosté sur Amazon AWS, différents niveaux de souscription et des outils complémentaires. Vous pouvez par exemple utiliser SauceLabs OnDemand pour tester votre application web avec Selenium sur différents browsers, jFrog ou Sonar pour la partie DEV@Cloud.
Pour la partie RUN@Cloud, vous avez de l’hébergement avec Java/MySQL, et des outils supplémentaires comme NewRelic par exemple.
Par rapport à Heroku, CloudBees adresse donc d’une part la vie et la compilation de votre projet, et d’autre part l’hébergement dans le Cloud. Il y a aussi RedHat OpenSHift, CloudFoundry par VMWare, Amazon Web Service et docCloud.
Nicolas fait ensuite une démonstration avec CloudBees et le plugin Eclipse. Démon assez sympa, dans laquelle il créé à la volée un projet, une compilation avec Jenkins.
Mais si vous ne voulez pas faire de Cloud ou utiliser des plateformes externes, vous pouvez aussi utiliser les produits de CloudBees dans votre propre réseau. Cela vous offrira de la flexibilité et sera peut-être plus facile à placer dans votre SI.
Pensez que CloudBees permet de construire votre projet et de vous donner la main sur votre processus de build.
La version gratuite vous permet de faire 5 heures de build par mois, vous pouvez avoir 2 exécuteurs, vous êtes limités en nombre de plugin. Ensuite la version Base pour 15 USD par mois vous permet de dépasser les 5 heures de build. La version Pro et Entreprise répondent aux besoins des entreprises.
Allez je file, je vais voir la présentation Node.JS par Mathilde Lemée et Romain Maton… Vous continuez à compiler avec Maven ou vous me suivez ?
Pour le JUG de Brest :
@FinistJUG
http://finistjug.fr/
Merci pour cette retransmission en live ! C’est cool !
Sinon, c’est la journée @ndeloof dans le track Java ? 😀