Après la présentation de Patrick Chanezon, la petite présentation de Didier Girard, c’est maintenant au tour de Guillaume Laforge de monter sur scène.
Guillaume Laforge travaille chez VMWare. C’est le chef de projet du langage Groovy. Basé à Paris, vous pouvez le croiser facilement dans les conférences, c’est quelqu’un de super sympa. Fondateur de Grails et Gaelyk, avec un esprit super affuté, Guillaume adore les jeux de mots. Ceux qui écoutent souvent le podcast « les CastCodeurs » savent de quoi je parle.
Alors il balance un premier slide : le clou-d du spectacle. Mais bien qu’il utilise un Mac, sans rapports avec le plus vieux métier du monde, c’est bien de Paas que nous allons parler. Et d’hôtel de passe, il n’est pas question ce soir… Bref… reprenons !
Guillaume présente ce soir Cloud Foundry une solution par VMware, actuellement en phase béta.
En quelques mots ? C’est du PaaS, pour Platform as a Service. L’offre est très ouverte : multi-language/multi-framework et open source. Cet ensemble de services intégrées pour construire et déployer des applications. La plateforme est gérée et opérée comme un service. Bref pas besoin d’être un super admin-sys. L’unité de travail est l’application. Que vous deployez dans le nuage.
Sur Cloud Foundry on peut faire du Java, du Ruby, du Javascript ou du .NET. Pas de limites sur les APIs. Pas de restrictions sur l’API. Caractéristique importante : c’est une solution technologique Open-Source. Par exemple sur Github des contributeurs ont ajouté le support de PHP. C’est l’un des aspects clés de la solution. Vous pouvez faire du « cloud privé » dans votre réseau d’entreprise avec Cloud Foundry.
Concernant les APIs, il n’y a pas de lock-in, vous pouvez ajouter vos propres services, installer même un micro-cloud sur votre machine. L’ensemble propose Java avec Spring/Tomcat, Ruby on Rails avec aussi Sinatra, Node.JS et d’autres langages à venir rapidement.
Guillaume fait ensuite une démonstration avec Groovy et Cloud Foundry. Il code une application web en Groovy en 6 minutes, mise en production comprise. Allez voir sur http://parisjugdemo.cloudfoundry.com/ et sur Cloud Foundry.com
CloudFoundry est intéressant pour le développeur qui souhaite se focaliser sur l’application, sans perdre de temps sur la partie mise en production et administration système. Pas besoin de s’inquiéter du dernier patch à passer sur votre machine, car l’ensemble est complètement abstrait.
Comment cela fonctionne-t-il ? A partir d’un terminal, en ligne de commande, quelques commandes simples permettent de packager son application, de la déployer, voire de régler la mémoire ou la puissance de sa machine. Le tout avec quelques commandes simples.
Usage: vmc [options] command [<args>] [command_options]
Try ‘vmc help [command]’ or ‘vmc help options’ for more information.
Currently available vmc commands are:
Getting Started
target [url] Reports current target or sets a new target
login [email] [–email, –passwd] Login
info System and account information
Applications
apps List deployed applications
Application Creation
push [appname] Create, push, map, and start a new application
push [appname] –path Push application from specified path
push [appname] –url Set the url for the application
push [appname] –instances <N> Set the expected number <N> of instances
push [appname] –mem M Set the memory reservation for the application
push [appname] –no-start Do not auto-start the application
Application Operations
start <appname> Start the application
stop <appname> Stop the application
restart <appname> Restart the application
delete <appname> Delete the application
rename <appname> <newname> Rename the application
Application Updates
update <appname> [–path] Update the application bits
mem <appname> [memsize] Update the memory reservation for an application
map <appname> <url> Register the application to the url
unmap <appname> <url> Unregister the application from the url
instances <appname> <num|delta> Scale the application instances up or down
Application Information
crashes <appname> List recent application crashes
crashlogs <appname> Display log information for crashed applications
logs <appname> [–all] Display log information for the application
files <appname> [path] [–all] Display directory listing or file download for path
stats <appname> Display resource usage for the application
instances <appname> List application instances
Application Environment
env <appname> List application environment variables
env-add <appname> <variable[=]value> Add an environment variable to an application
env-del <appname> <variable> Delete an environment variable to an application
Services
services Lists of services available and provisioned
create-service <service> [–name,–bind] Create a provisioned service
create-service <service> <name> Create a provisioned service and assign it <name>
create-service <service> <name> <app> Create a provisioned service and assign it <name>, and bind to <app>
delete-service [servicename] Delete a provisioned service
bind-service <servicename> <appname> Bind a service to an application
unbind-service <servicename> <appname> Unbind service from the application
clone-services <src-app> <dest-app> Clone service bindings from <src-app> application to <dest-app>
Administration
user Display user account information
passwd Change the password for the current user
logout Logs current user out of the target system
add-user [–email, –passwd] Register a new user (requires admin privileges)
delete-user <user> Delete a user and all apps and services (requires admin privileges)
System
runtimes Display the supported runtimes of the target system
frameworks Display the recognized frameworks of the target system
Misc
aliases List aliases
alias <alias[=]command> Create an alias for a command
unalias <alias> Remove an alias
targets List known targets and associated authorization tokens
Help
help [command] Get general help or help on a specific command
help options Get help on available options
Comment tester le service ?
L’inscription est gratuite au programme de beta-test sur le site de CloudFoundry
Quel sera le prix ?
Pas d’informations sur ce point
Conclusion
Présentation sympa, avec une démo concluante du service. Guillaume est un très bon speaker, et franchement je pense que tout le monde a trouvé cela intéressant. On attend maintenant de voir les outils. Je crois qu’il n’y a pas encore de provisionning automatique. Les équipes d’Hyperic (racheté par SpringSource qui a été racheté par VMware) ont annoncé la disponibilité d’outils pour CloudFoundry avec le plugin Hyperic for CloudFoundry. Vous pouvez par exemple vous créer une alerte afin d’être notifié si la charge de votre machine est trop importante.
Merci pour le retour. Mais je ne crois pas que Cloudfoundry supporte .Net
Vu que le projet Mono est un peu à l’arrêt en ce moment je ne pense pas qu’il y ait des gens qui songent à porter cette stack dessus.
Cependant il est possible, après quelques tweaks de faire tourner la stack cloudfoundry sur le cloud microsoft, Azure.
Enregistrement sur CloudFoundry approuvé o/
J’ai hâte de voir ce que ça et les avantages que cela apporte par rapport à une utilisation limitée à Google App Engine.
Super conf, très bons speakers.
Vivement Septembre qu’on ait des beaux t-shirts ;D
Après ce survol des enjeux du cloud, et des conseils tels que « Be your own Biatch », l’intervention à propos de CloudFoundry est tombée à point nommé. Guillaume m’a convaincu.
Cloud Foundry supporte aujourd’hui Java, Ruby et Node.js (Javascript), pas .NET.
Cote provisioning, ca se fait, en mode command line:
– vmc create-service provision des services a la volee, pour les attacher a une appli: aujourd’hui mysql, mongo, reddis.
– vmc instances permet d’ajouter des instances pour servir l’appli et scaler a la demande.
Et le plus interessant, les apis rest utilisees par la command line vmc peuvent etre utilisees directement dans l’appli pour scaler dynamiquement en fonction de la demande (ou en utilisant la gem vmc si tu es en ruby ou jruby).
cf la demo de Mark Lucovsky lors du lancement http://www.youtube.com/watch?v=0WEQctlyza8&t=6m
En gros c’est comme App Engine, mais avec plus de flexibilite, ca tu peux creer ton propre scheduler au niveau applicatif.