E. Renaux

Hors les cours BLOG

Cloud Foundry

without comments

[ DESCOMBES, PONTONE -FP14 ]

Le Platform as a Service promet une gestion parfaitement fluide des ressources, ainsi qu’une extensibilité infinie et transparente, ce qui le rend attractif.

VMware, via sa filiale Pivotal propose la solution Cloud Foundry, un PaaS open source.

 

Qu’est ce qu’un Paas ?

Les trois principaux types de cloud computing sont IaaS, PaaS et SaaS – respectivement, infrastructure, plate-forme et logiciel en tant que service. Lorsque vous jetez un oeil de plus près, vous verrez que l’argument de choix parmi ces services sont les besoins de votre propre entreprise et du niveau de confort attendu.
Ces services sont rendus possibles grâce à la virtualisation, l’ubiquité des réseaux à grande vitesse et les capacités des navigateurs d’aujourd’hui. Avec ces solutions en place, il devient de moins en moins nécessaire de posséder vos propres infrastructures, ou même de posséder vos propres logiciels. Ainsi vous pouvez obtenir dans le cloud ce dont vous avez besoin, exactement comme vous en avez besoin.
La meilleure façon de comprendre ces offres as-a-service est de commencer avec SaaS, la couche la plus abstraite et celle que vous utilisez peut-être déjà aujourd’hui, même à un niveau personnel. Un exemple simple de SaaS est un service de messagerie en ligne comme Gmail. Si vous utilisez Gmail, vous n’êtes pas hébergeur de votre propre serveur de messagerie. Google est l’hôte, et vous y accédez simplement via votre navigateur comme client. Mais le courriel n’est qu’une des applications, et aujourd’hui il existe de multiples applications en ligne à des fins commerciales.

  • SaaS est vraiment orientée vers les utilisateurs finaux et ne requiert pour ainsi dire rien pour débuter. Le fournisseur évalue le nombre de ressources à consacrer à votre utilisation de l’application. Le prestataire fournit les serveurs, les machines virtuelles, les équipements de réseau, tout. Il vous suffit de pointer votre navigateur sur l’application.
  • IaaS est à l’autre extrémité du spectre du nuage. Dans ce scénario, vous souhaitez garder le contrôle de votre environnement logiciel, mais vous ne voulez pas conserver l’équipement. Vous ne voulez pas avoir à acheter des serveurs et les mettre dans une pièce à température contrôlée ni rien de tout ça. Au lieu de cela, vous mandatez un fournisseur IaaS et louez une machine virtuelle. Vous pouvez y mettre n’importe quel logiciel de votre choix. à l’autre bout, le fournisseur vous fournit les ressources de stockage ou autre dont vous avez besoin. Ceci est rendu plus facile avec les technologies de virtualisation, qui séparent les disques physiques et ainsi de suite à partir de la machine virtuelle que vous utilisez. IaaS est disponible sur Amazon EC2, IBM et bien d’autres, mais il faut prendre un soin particulier dans le choix du fournisseur.
  • PaaS est quelque part entre l’IaaS et le SaaS. Ce n’est pas un produit fini, comme SaaS, et ce n’est pas une table rase, comme l’IaaS. PaaS fournit à vos développeurs d’applications les outils permettant de produire sur cette plate-forme particulière. Par exemple, Windows Azure de Microsoft vous donne des outils pour développer des applications mobiles, des applications de réseaux sociaux, sites web, jeux et plus encore. Vous construisez ces choses, mais vous utilisez l’API et les outils pour les accrocher dans l’environnement Azure et les exécuter là-bas. Cette solution permet de se concentrer sur le code et de se relâcher sur le management de l’infrastructure matérielle comme logicielle: “Focus on code, not management”.

voici un comparatif  des services offerts par ces 3 types de CloudArchitecture Cloud

Le développement d’applications de nouvelle génération soulève plusieurs problèmes :

  • Diversification des frameworks de développement
  • Nouvelles exigences des applications « grand public » touchant à la mobilité, aux réseaux sociaux et à l’intégration de composants SaaS.
  • Multiples innovations des services applicatifs, création de nouvelles données, messageries, etc. sont autant de challenges communs dans les environnements de cloud computing.
  • Options de déploiement hétérogènes et impératif client de flexibilité de déploiement/migration des applications entre clouds privés d’entreprise et différents fournisseurs de services de cloud computing.

C’est pour apporter une solution à tous ces obstacles que le PaaS Cloud Foundry a vu le jour.

Genèse de CloudFoundry:

En 2009, VMware a racheté Springsource, Spécialiste des frameworks d’applications et des outils d’administration Open Source.

En effet, l’association de VMware pour la virtualisation et SpringSource et Hyperic pour l’abstraction logicielle lance en 2011 Cloud Foundry. Une plate-forme PaaS de nouvelle génération, spécifiquement architecturé pour les environnements de cloud computing et qui supporte les frameworks de programmation tel que Spring, Scala, Ruby…
Le but étant de simplifier le développement, le déploiement et l’exploitation opérationnelle d’application Cloud.

L’architecture de Cloud Foundry doit garantir que d’autres frameworks applicatifs pourront aussi être pris en charge à l’avenir. En matière de services applicatifs middleware, Cloud Foundry supporte les bases de données MongoDB, MySQL et Redis et les services VMware vFabric.

Cloud Foundry n’est pas lié à un environnement de cloud computing spécifique, n’exige pas d’infrastructure VMware et prend en charge les déploiements sur n’importe quel type de cloud privé, ou public.

Des débuts prometteurs :

Après une année, la firme a su fédérer de multiples partenaires autour de cette solution : Cloud9, Collabnet, ServiceMesh, Soasta et X.commerce.
« Depuis l’année dernière et le lancement de Cloud Foundry comme la première plateforme PaaS ouverte, nous avons constaté l’engouement des développeurs pour cette nouvelle façon de concevoir et de déployer des applications cloud, et l’enthousiasme des entreprises du secteur investissant dans et autour de Cloud Foundry », explique Steve Herrod, vice-président R&D et directeur technique de VMware.

Vidéo de Alexandre Vasseur, Staff Systems Engineer chez VMware, présentant CloudFoundry et la vision du Cloud de VMware.

Cloud Foundry proposé sous différents formats

  • Service développeur opéré par VMware
    Proposé sur  www.CloudFoundry.com, doté de fonctionnalités auxquelles les développeurs peuvent accéder pour tester de nouveaux services. L’offre est disponible sous deux formes: un PaaS « tout en un » sur lequel il suffit de « déposer » l’application pour la déployer, et la possibilité de faire tourner la couche Cloud Foundry sur un serveur type IaaS de son choix.
  • Projet communautaire open-source PaaS
    Également accessible sur www.CloudFoundry.org, ce projet communautaire open-source sous licence Apache 2 permet aux développeurs d’inspecter, évaluer ou modifier le logiciel Cloud Foundry pour répondre à leurs propres exigences et éviter tout risque de fermeture de l’environnement.
  • Module Cloud Foundry Micro Cloud
    Disponible depuis le deuxième trimestre 2011, Cloud Foundry Micro Cloud propose une  instance téléchargeable complète de Cloud Foundry, encapsulée dans une machine virtuelle sur le poste de travail du développeur – simplification de la conception et des tests.
  • Cloud Foundry pour les entreprises et fournisseurs de services
    L’offre est donc alléchante pour les développeurs, qui peuvent directement travailler sur la création des applications, sans s’occuper de l’environnement.

L’environnement:

Cloud Foundry propose donc un environement pour permettre de n’avoir à s’occuper que de l’application. Cet environnement peut être décrit ainsi:
Le « triangle magique » :


L’avantage d’un PaaS ouvert réside dans les possibilités de choix:

  • Choix dans le framework de développement (partie supérieure du triangle):
  • Choix des services d’applications (partie gauche du triangle)
  • Choix de Cloud (partie droite du triangle)
  • Choix d’utilisation

Infrastructures Logicielles:

Cloud Foundry est construit selon une structure en couches, chacune son service.

bosch

Le cœur de Cloud Foundry est BOSH.

BOSH

Cloud Foundry BOSH est une chaîne d’outils open source pour le management à grande échelle de services distribués (lancement, déploiement, cycles de vie).

BOSH a été initialement développé dans le contexte du PaaS Cloud Foundry , mais le Framework est polyvalent et peut être utilisé pour déployer d’autres services distribués au dessus d’une Infrastructure as a Service (IaaS)comme des produits tels que , vCloud Director de VMware vSphere , Amazon Web Services EC2, ou OpenStack.

Architecture de BOSH:

bosh components

 

Director

Le Director est le composant chef d’orchestre de BOSH qui contrôle la création de machines virtuelles, le déploiement et d’autres événements du cycle de vie des logiciels et des services. Le contrôle commande est manié par l’interraction d’un agent directeur après que les ressources aient été crées par le Cloud Provider Interface.

Il ya des sous-composants spécifiques pour gérer chacune des tâches mentionnées ci-dessus. Tous sont des instances des classes suivantes référencés depuis l’ApiController.

director-components

 

Stemcell

Une Stemcell est un modèle de VM avec un agent BOSH intégré. La Stemcell utilisée pour Cloud Foundry est une distribution Ubuntu standard. Les Stemcells sont uploadées en utilisant la CLI BOSH et utilisées par le Directeur BOSH lors de la création des machines virtuelles à travers le Cloud Provider Interface (CPI). Lorsque le directeur crée une machine virtuelle à travers le CPI, il passera les paramètres de configurations de réseaux et de stockage, ainsi que la localisation et les informations d’identification pour le MessageBus et le Blobstore.

Agent

Les Agents BOSH écoutent les instructions du Directeur BOSH. Chaque VM contient un agent. Grâce à l’interaction de l’Agent Directeurt, les travaux ou les rôles sont donnés aux VM dans Cloud Foundry. Si l’emploi de la VM est de faire fonctionner MySQL, par exemple, le directeur enverra des instructions à l’agent sur ​​les paquets doivent être installés et quelles sont les configurations pour ces paquets.

Blobstore

Le Blobstore BOSH est utilisé pour stocker le contenu des instances (sources des Jobs et Packages BOSH ainsi que l’image compilée des packages BOSH). Les instances sont téléchargées par le BOSH CLI et insérés dans le Blobstore par le Directeur BOSH. Lorsque vous déployez une instance, BOSH orchestrera la compilation des paquets et stockera le résultat dans le Blobstore. Quand BOSH déploie un job BOSH sur une VM, l’agent BOSH va récupérer la tâche et le package BOSH spécifiés dans le Blobstore.

BOSH utilise également le Blobstore comme un stockage intermédiaire pour les lourdes charges utiles, tels que les fichiers journaux et les sorties de l’Agent BOSH qui dépassent la taille maximale des messages sur le MessageBus.

Health Monitor

Le Moniteur de santé BOSH reçoit l’état de santé et les événements du cycle de vie de l’agent BOSH et peut envoyer des alertes grâce à des plugins de notification (comme le courrier électronique). Le Moniteur de santé a uniquement connaissance des événements dans le système, afin de ne pas alerter si un composant est mis à jour.

Les outils:

Après la création et l’activation du compte auprès de www.cloudfoundry.com, très peu d’outils nous sont nécessaires dans le déploiement de cloud foundry.

Deux solutions s’offrent à nous :

  •  Via le Terminal en ligne de commande
    – VMC ou CF: outils en ligne de commande pour administrer son CloudFoundry. Il permet d’installer les applis, les services, etc… (VMC pour CloudFoundry V1 et CF pour CloudFoundry V2)
    – maven: build tool, permet de construire et packager l’application dans un fichier .war pour
  • Sous Eclipse :
    – Cette solution nécessite bien sûr d’installer Eclipse sur son poste
    – Et installation du plugin Cloud Foundry integration for Eclipse accessible depuis eclipse Market.
    – Il nous reste à paramétrer ce serveur dans Eclipse.

 Démos

topologie d’un déploiement avec l’outil CF:

app_push_flow_diagram

Utilisation de Cloud Foundry: deploying apps

en suivant sur ce lien, vous pourrez observer une démo de déploiment d’application

La concurrence:

Bien que les offres PaaS soient relativement récentes, il existe déjà de nombreuses offres sur le marché.
Il y a deux grandes catégories parmi ces offres, les solutions propriétaires, telles que Windows Azure, et les solutions open source comme Cloud Foundry. Parmi les solutions open source, nous pouvons notamment citer Openshift, de RedHat, Engine Yard, Stratos de WSO2,  ou encore Tsuru. Il existe également des solutions encore plus « user friendly » avec une interface totalement web, telles que Jelastic ou AppFog (qui par ailleurs s’appuie sur CloudFoundry), qui permettent de déployer une application en quelques clics.

Conclusion

Aujourd’hui, aucune offre n’a vraiment pris le pas sur les autres. De nos jours, c’est parfois l’offre qui crée la demande, mais ici, entre une offre propriétaire qui emprisonne le client et une offre open source avec laquelle le client sait qu’il pourra évoluer sereinement,  il semble évident que petit à petit, ce seront les solutions open source qui  représenteront la majorité des utilisations (à l’instar de Apache ou Tomcat). La plupart des PaaS open source offrant peu ou prou les mêmes composants, c’est autour des services proposés (coût d’hébergement, outils de supervision, support, etc…) que se fera la différence.

Sources et liens utiles

http://docs.cloudfoundry.com/
http://blog.xebia.fr/
http://tribunes-libres.smile.fr/Pourquoi-le-PaaS-doit-etre-Open-Source
http://siliconangle.com/blog/2013/04/15/focus-on-the-code-leave-the-infrastructure-to-cloud-foundry/

Written by

mai 17th, 2013 at 2:10 am

Posted in INTES'13