URL: https://linuxfr.org/news/cloud-foundry-la-solution-paas-libre Title: Cloud Foundry, la solution PaaS libre Authors: Bruno Michel Date: 2011年04月21日T16:31:49+02:00 License: CC By-SA Tags: cloud, paas, ruby, rails, sinatra, mongodb et redis Score: 29 VMWare a annoncé la sortie de Cloud Foundry, une solution libre de [Platform-as-a-Service](http://fr.wikipedia.org/wiki/Platform_as_a_service) (PaaS). La PaaS permet de déployer des applications Web et gérer leur montée en charge, en abstrayant la gestion des serveurs, bases de données, _runtimes_ des langages de programmation, serveurs applicatifs, etc.. VMWare va lancer une offre commerciale s’appuyant sur Cloud Foundry, mais vous pouvez aussi l’utiliser sur vos serveurs. Cloud Foundry, sous [licence Apache 2](https://github.com/cloudfoundry/vcap/blob/master/LICENSE), est un ensemble de briques développées en Ruby : NATS, Cloud Controller, DEA, Router, Health Manager, etc., dont le fonctionnement est expliqué en seconde partie de cette dépêche. En pratique, chaque serveur sera installé avec [vcap](https://github.com/cloudfoundry/vcap#readme), puis les applications sont déployées avec l’outil en ligne de commande « [`vmc`](https://github.com/cloudfoundry/vmc#readme) » et peuvent utiliser les services mis à leur disposition. Actuellement, Cloud Foundry supporte [Ruby on Rails](http://linuxfr.org/news/ruby-on-rails-3-est-l%C3%A0), [Sinatra](http://linuxfr.org/news/codez-avec-classe-gr%C3%A2ce-%C3%A0-sinatra), [Node.js](http://linuxfr.org/news/sortie-de-nodejs-040), Spring et Grails pour les applications, et MySQL, [MongoDB](http://linuxfr.org/news/mongodb-14-pr%C3%AAt-pour-la-production), [Redis](http://linuxfr.org/news/sortie-de-redis-200) et [RabbitMQ](http://linuxfr.org/news/rabbitmq-180) pour les services. Par exemple, déployer une application Rails se fait très simplement avec les commandes suivantes : $ vmc target api.example.net # Choisir que quel cloud on va déployer $ vmc login # S'identifier auprès du Cloud Controller $ vmc push # On demande à déployer l'application Il faut ensuite répondre à quelques questions : quel est le nom de l’application ? Quelle est son URL ? Sur combien d’instances va-t-elle être déployée ? Quels services utilise-t-elle ? Puis, Clound Foundry va réserver les ressources, installer les _gems_ nécessaires avec [Bundler](http://linuxfr.org/news/sortie-de-bundler-100), lancer les services applicatifs puis mettre à jour sa table de routage. `« vmc instances »` permet également de modifier le nombre d’instances d’une application pour s’adapter à la charge qu’elle va avoir à traiter. Au final, Cloud Foundry est une solution jeune (peu de _frameworks_ et services disponibles pour le moment), mais VMWare semble prêt à respecter les règles du Logiciel Libre et prendre en compte les propositions d’améliorations des premiers utilisateurs. ---- [Cloud Foundry](http://cloudfoundry.org/) [Les dépôts Cloud Foundry sur github](https://github.com/cloudfoundry) [Explications pas à pas d’un vmc push](http://blog.cloudfoundry.com/post/4737632136/what-happens-when-you-vmc-push-an-application-to-cloud) [Le fonctionnement technique de Cloud Foundry](http://blog.cloudfoundry.com/post/4754582920/cloud-foundry-open-paas-deep-dive) [Cloud Foundry et l’écosystème Ruby](http://www.igvita.com/2011/04/14/vmware-cloudfoundry-ruby-powered-paas/) [Cloud Foundry, le point de vue d’un développeur Ruby et Node.js](http://shapeshed.com/journal/cloud-foundry-a-ruby-and-nodejs-developers-perspective/) [Utiliser MongoDB avec Cloud Foundry](http://blog.mongodb.org/post/4719358003/getting-started-with-vmware-cloudfoundry-mongodb-and) ---- Cloud foundry est organisé en plusieurs composants qui communiquent entre eux grâce à Nats, un bus [Pub/Sub](http://en.wikipedia.org/wiki/Publish/subscribe). Il est possible de faire monter en charge chaque composant en lançant de nouvelles copies de ce composant (extensibilité horizontale). Cloud Controller ---------------- Le premier composant est _Cloud Controller_, le cerveau de Cloud Foundry. Il connaît les services et applications présents, ainsi que leurs instances et configurations et expose une API Rest pour ces informations, qui est notamment utilisée par _vmc_ et le [greffon STS](http://blog.springsource.com/2011/04/13/using-cloud-foundry-from-sts/) pour Eclipse. Droplet Execution Agent ----------------------- Un _Droplet Execution Agent_ (DEA) est présent sur chaque serveur qui fait tourner une application ou un service. Quand le _Cloud Controller_ reçoit une demande pour déployer une application, il demande aux DEA s’ils ont la capacité pour ces instances et, si la réponse est positive, va désigner un ou plusieurs DEA. Ceux-ci vont alors lancer les instances de l’application, puis vérifier qu’ils ont bien démarré. Router ------ Les routeurs reçoivent les requêtes HTTP et les transmettent aux instances de l’application chargée de les traiter. Leur table de routage est mise à jour quand les DEA annoncent sur Nats les modifications sur les instances. Health Manager -------------- Le _Health Manager_ va régulièrement vérifier que les instances tournent bien et que les DEA sont toujours en vie. Dans le cas contraire, il prévient le _Cloud Controller_ pour y remédier. Services -------- Enfin, Cloud Foundry possède des services comme MySQL ou Redis. On peut faire du « _provisioning_ » sur ces services (par exemple, créer une base de données), puis assigner cette ressource à une ou plusieurs applications.

AltStyle によって変換されたページ (->オリジナル) /