EQUIPE RICM 2010 Défi Cloud Computing Dossier de remarques Ricom c est l @base 04/12/2009
Sommaire Introduction... 3 Les applications et la plateforme Cloud Computing... 4 Cloud Computing - RICM-2010 Page 2
Introduction Le déploiement d application web destinée à une utilisation intense impose pour certaine entreprise ne disposant pas d architecture adéquate, de souscrire à un service d hébergement chez des fournisseurs de services. Cette tendance tend à devenir une habitude pour les TPE et PME par la fluctuation du marché. De ce fait de grands groupes comme Google ou Amazon en ont découvert une source de profit et ont introduit le Cloud Computing. Cette technologie qui utilise un parc de machine totalement modulaire et expansible à l infini, utilise des technologies bien connues du monde Open Source. Dans le cadre de ce projet nocturne, nous allons présenter les différents problèmes et choix que nous avons rencontré durant le déploiement et la gestion d applications sur de tels systèmes. Nous présenterons notre implémentation répondant aux autres défis afin de défendre nos idées sur les points critiques notés. Par ailleurs nous ferons allusion à un projet que nous avons développé il y a quelques jours dans le cadre d un module d ouverture sur les technologies réseaux et systèmes. L absence de plateforme clé en main déployant un Cloud Computing, en démontrant le fonctionnement de celui-ci, nous avait contraint à concevoir notre propre implémentation d un Cloud Computing. Nous allons maintenant décrire es applications développées ainsi que la plateforme Cloud Computing utilisées. Nous présentons les problèmes rencontrés et les critiques sur les points posant problèmes sur nos applications et la plateforme utilisée pour le Cloud Computing. Cloud Computing - RICM-2010 Page 3
Les applications et la plateforme Cloud Computing Dans le cadre du projet proposée, nous développons une application destinée au recyclage des matériels informatiques de tout type. Pour cela, nous avons choisis de déployer un serveur d application 2 tiers (Serveur Web Apache + Base de données Mysql). Cette plateforme propose une interface Web 2.0 rapide et efficace. De plus, nous avons implémenté une application de délivrance des produits réalisés pendant la nuit sur une base GWT. Un très grand nombre de client est potentiellement ciblée par nos applications. De plus, des contraintes comme la période de fréquentation nous contraignent à déployer nos applications sur plusieurs machines. Par ailleurs, nous ne disposons pas de plateforme server dans notre environnement scolaire. Afin de rendre ce déploiement flexible, nous avons donc choisis d utiliser la plateforme Google Apps Engine pour héberger notre service de recyclage et de gestion de documents. Celle-ci offre l avantage d être gratuite et simple d utilisation. Figure 1 Schéma de l'architecture du service de recyclage Pour le moment, seule la plateforme GWT est installée sur le Cloud Computing de Google, l autre application est en cours de migration sur cette plateforme. Le développement sous une plateforme 2 tiers nous introduit un fort goulot d étranglement dans le traitement de l information de présentation. En effet, seul le serveur Web est disponible pour le traitement des requêtes de type métier. Il aurait été beaucoup plus judicieux de réaliser une application 3 tiers avec serveur d application, serveur web et base de données mais plus couteux en temps. Néanmoins, il est facilement possible de définir une distribution de ce service sur plusieurs nœuds. La gestion d accès parallèle à la base de données est gérée par un algorithme de consensus. L application GWT quant à elle, est directement déployer sur le Cloud Computing. On peut voir ciaprès l interface d administration présentant les applications déployées. Celles-ci sont directement insérées grâce à un plugin Eclipse. Cloud Computing - RICM-2010 Page 4
Figure 2 : Interface d'administration de Google Apps Engine On peut noter que cette interface est extrêmement simple à utiliser et qu il est possible de gérer chaque application plus en détails. Figure 3 : Courbe de charge du service lancé La plateforme Google est totalement transparente à nos yeux, de ce fait nous ne pouvons déterminer sur quelle systèmes d exploitation, machine physique sont déployées nos applications. A travers notre projet effectué il y a quelque semaine, nous avions proposé le déploiement sur plusieurs machines physiquement différentes et essentiellement composées de plateforme Mobile. De plus, les OS utilisés étaient principalement issue d une hiérarchie Unix mais nous disposions également de plateforme Windows. On peut donc penser que Google utilise la même architecture. Ceci semble tout à fait légitime au vu de la perpétuelle augmentation de leur parc de machines. Cette opacité de l architecture peut relever un problème : la non compatibilité de certaines applications envers certain serveur (OS incompatible, architecture système différente ). Néanmoins, la virtualisation des serveurs permet de limiter ce genre de problème. Mais dans le cas, l utilisation d une plateforme moins «plug and play» sera préférable. Cloud Computing - RICM-2010 Page 5
Figure 4 : Interface GWT de notre application de dépôt des réponses aux défis En guise de conclusion, nous pouvons affirmer que le Cloud Computing mis à disposition par Google et l intégration de celui-ci dans Eclipse nous a permis un déploiement simple et rapide. La performance de ce système a aussi été un avantage puisqu il a permis de décharger nos machines personnelles pour le déploiement et l hébergement. Par contre, il est relativement plus difficile de déployer des applications non supporté par défaut par Google. De ce fait, nous n avons pas réussi à placer notre application maitresse sur ce Cloud de façon à ce qu elle fournisse des résultats satisfaisants. Le fait d avoir développer deux applications en parallèles nous a permis de comparer le déploiement en fonction du type d application. Cloud Computing - RICM-2010 Page 6