• Aucun résultat trouvé

3.3 Solutions de gestion complète de l’élasticité

3.3.9 Cloud Foundry

Cloud Foundry [4] est une solution open source de PaaS développée par la société VM-Ware. Cette solution est à la fois accessible en ligne au travers du service cloudfoun-dry.com et en téléchargement pour une installation sur un cloud privé. Cloud Foundry gère les applications développées en Java, Groovy, Ruby, Node.js et Scala. Cloud Foun-dry gère effectivement des canevas de développement pour ces langages tels que Node.js, Sinatra, Grails, Ruby on Rails, Spring ou encore Rack. Cloud Foundry vise le déploie-ment rapide d’une application et s’interface avec l’outil de gestion de version Git. Le déploiement sur Cloud Foundry se résume à pousser le code d’une application depuis le dépôt local à destination de Cloud Foundry avec Git. La plateforme identifie alors automatiquement le type d’application à déployer et offre en conséquence les environne-ments d’exécution requis. Plus largement, la plateforme offre une interface en ligne de commande VMC ainsi qu’un plugin pour Eclipse. Cloud Foundry s’affiche donc claire-ment comme étant une solution à destination des développeurs.

Au niveau de la virtualisation, Cloud Foundry s’appuie sur Warden, un canevas de gestion de conteneurs légers de VMWare. La plateforme peut être installée sur des infrastructures implémentant une interface EC2 ou étant à base d’OpenStack ou de VSphere. Une version de test de présente même sous la forme d’une VM exécutable dans un hyperviseur.

Cloud Foundry supporte différents services à disposition des applications dont Rab-bitMQ, PostgreSQL, Redis, MongoDB ou encore MySQL.

Modèle d’application

Cloud Foundry repose sur l’introspection du code source d’une application et fait corres-pondre chaque application gérée avec les services qui lui seront nécessaires. Pour cela, la plateforme dispose d’un catalogue de buildpacks, des utilitaires de compilation. L’identi-fication du buildpack adapté est réalisée lors du déploiement. A l’aide de ce buildpack, la plateforme compile le code de l’application en un code exécutable en son sein et confi-gure également les conteneurs d’exécution pour qu’ils hébergent les serveurs applicatifs nécessaires. Le catalogue de buildpacks peut être étendu pour supporter de nouveaux canevas ou langages.

La plateforme Cloud Foundry expose des composants appelés routers qui routent des requêtes à destination de noms de domaines vers des applications en cours d’exécu-tion. Il en existe actuellement deux implantations aux propriétés différentes. Les routers historiques ne gèrent que les protocoles HTTP et HTTPS. Une migration récente vers l’implantation gorouter [3] lève cette limitation. Les routers font également office de répartiteurs de charge entre les instances des composants applicatifs.

La description d’une application s’effectue dans un fichier de manifeste. Chaque fi-chier de manifeste permet de décrire :

• les services (au sens Cloud Foundry) requis par l’application. Ces services doivent être pré-existants.

3.3. SOLUTIONS DE GESTION COMPLÈTE DE L’ÉLASTICITÉ 61 • le domaine associé à l’application.

• la mémoire RAM maximale utilisable par l’application. • le nombre d’instances de composants applicatifs.

Le fichier de manifeste est détecté automatiquement lors du déploiement de l’application. Opérations d’élasticité couvertes

Cloud Foundry permet des opérations élastiques sur les applications déployées. Ces opé-rations visent soit à modifier le nombre d’instances de serveurs applicatifs soit à modifier la taille mémoire maximale allouée à l’application.

Architecture applicative

Cloud Foundry expose des notions de liaisons qui lient les serveurs applicatifs de façon globale aux services de la plateforme. Ces liaisons peuvent être créées, modifiées ou détruites dynamiquement au travers de VMC. Il est également possible de consulter quels sont les services à disposition et aussi ceux liés au serveurs applicatifs de l’application. Gestion du placement

La gestion du placement est totalement transparente pour l’utilisateur. Il n’est effecti-vement possible que de choisir quelle plateforme Cloud Foundry utiliser pour le déploie-ment.

Positionnement par rapports aux critères

• L’Indépendance applicative de Cloud Foundry est évaluée à Forte puisque la solu-tion n’est pas limitée en termes d’applicasolu-tions pouvant être adressées.

• L’évaluation de l’Indépendance architecturale de Cloud Foundry est Faible puisque la solution ne gère que des applications multi-tiers.

• Grâce à ses possibilités d’installation sur différentes plateformes, Cloud Foundry a une Indépendance vis-à-vis de l’environnement qui est Forte.

• La Gestion des applications patrimoniales de CloudFoundry est Faible puisque la plateforme compile nécessairement le code de l’application.

• Granularité des opérations. Ce critère est évalué à Moyen puisque la finesse des opérations concerne des groupes de composants sans offrir la gestion individuelle des profils matériels de chacun des conteneurs légers.

• Cloud Foundry permet de connaître quels sont les services liés à une application et le nombre de serveurs applicatifs. La plateforme n’offre donc pas une modélisation architecturale complète. Le critère portant sur la Modélisation à l’exécution est en conséquence évalué à Moyen.

• La Modélisation de l’élasticité est évaluée à Moyenne car Cloud Foundry repose sur l’utilisation de fichiers manifestes ne pemettant qu’une définition des services composant l’application.

• Pour le critère d’Expression de contraintes, Cloud Foundry est évaluée à Moyenne car la solution ne permet que la mention d’une cardinalité maximale par type de composant ainsi que la RAM pouvant être utilisée. Il n’est en outre pas possible de rajouter des contraintes supplémentaires.

3.3. SOLUTIONS DE GESTION COMPLÈTE DE L’ÉLASTICITÉ 63