23 décembre 2009

La pyramide du "Cloud Computing"

J’ai revu légèrement ma première définition du "Cloud Computing" comme suit :
Le "Cloud Computing" est un méga ordinateur "scalable et élastique", pour lequel l’utilisateur ne paie que ce qu’il consomme. Cet "ordinateur virtuel" héberge des services (software, hardware ou middleware) accessible depuis l’internet de manière publique ou privée.

Cette définition est générale et permet d’englober tous les types de services : software (SaaS), hardware (IaaS) ou middleware (PaaS) offerts par les acteurs du marché du "Cloud Computing". Afin de faciliter la comparaison entre les différentes solutions du "Cloud Computing", certains spécialistes [E_08, L_08, S_08] les ont hiérarchisées en trois catégories. Michael Sheehan [S_08] les présente sous forme d’une pyramide. Selon lui, cette pyramide pourrait être inversée, si elle était basée sur le nombre de services offert par catégorie, mais elle est ainsi afin de montrer une hiérarchie de services qui pourraient être interdépendant. À l’heure actuelle, une application de bureautique "SaaS" comme celle offerte par ZoHo  n’est pas dépendante d’une solution de type "IaaS" comme EC2 d’Amazon. À terme ça pourrait changer, ainsi certaines applications "SaaS" seront hébergées sur des "IaaS" ou des "PaaS".

Pyramide du Cloud


Je vais ci-dessous définir les trois couches : "Cloud Infrastructure", "Cloud Platform" et "Cloud Application" de la pyramide du "Cloud Computing". Je vais aussi donner des avantages et inconvénients (n’hésitez pas à poster un commentaire) pour chacune d’elles. Dans les prochaines semaines, je vais essayer de présenter des solutions du marché qui pourront être utilisées dans le cadre de mémoire : "Mise en place d’un site type Web 2.0 sur un Cloud". En attendant, je vais juste lister quelques solutions par catégorie (à nouveau n’hésitez pas à poster un commentaire pour me suggérer une solution. De plus je cherche des solutions Européennes.).

"Cloud Infrastructure"
Cette catégorie à la base de la pyramide du "Cloud Computing" regroupe les solutions qui permettent aux développeurs et aux ingénieurs système d’administrer et d’exploiter un "data centre" virtuel hébergé sur le "Cloud". Les solutions de type "Cloud Infrastructure" laissent aux spécialistes une grande liberté pour contrôler et paramétrer ces infrastructures informatiques (système) selon leurs besoins. Les solutions offertes dans cette couche sont souvent aussi appelées solution "IaaS". Dans cette catégorie sont regroupés aussi bien des solutions de stockage de données que les solutions d’hébergement de serveurs (virtuel).
L’avantage principal, offert par les solutions de type "Cloud Infrastructure", est un contrôle complet des infrastructures utilisées. Les inconvénients sont plus nombreux pour le moment. Ces solutions nécessitent plus de travail et d’expertise pour leur mise en œuvre comparé aux solutions des couches supérieures de la pyramide du "Cloud Computing". Ces solutions nécessitent aussi souvent un programme tiers pour mettre en œuvre les mécanismes de "scalabilité". De plus, les solutions de type "Cloud Infrastructure" fonctionnent généralement avec un mécanisme de multiplication d’instances (clonage de machines virtuelles), ce qui nécessite la mise en place d’un répartisseur de charge (load balancing) et impose certaines contraintes architecturales pour le développement d’application. Le dernier inconvénient est lié aux coûts cachés. Le cout des licences des systèmes d’exploitation et des programmes exécutés sur ces machines virtuelles peut être élevé, car les licences sont souvent facturées au processeur et non selon le modèle économique "pay as you go" processeur / temps.



"Cloud Platform"
Cette catégorie de la pyramide du "Cloud Computing" permet aux développeurs de déployer leurs applications sans se soucier des contraintes système, ainsi que de s’affranchir des problèmes de scalabilté et d’élasticité. Les solutions offertes dans cette couche sont souvent aussi appelées solution "PaaS". Dans cette solution sont regroupés aussi bien des solutions qui permettent d’héberger des applications clé en main, que des solutions de middleware.
Les avantages principaux des solutions de type "Cloud Platform" sont une simplification des développements pour les applications de type "Cloud" et un affranchissement des contraintes système, de scalabilté et d’élasticité. Les inconvénients sont liés au choix de la plate-forme qui est souvent une solution fermée (propriétaire) avec ses propres contraintes. Le choix du ou des langages de programmation est limité. De plus les prestataires de services qui offrent des solutions de "PaaS" imposent souvent des règles contraignantes pour le développeur. Par exemple Google App Engine impose sa propre base de données "BigTable"



"Cloud Application"
Cette catégorie au sommet de la pyramide du "Cloud Computing" regroupe toutes les applications (webmail, suite de bureautique en ligne, CRM, ERP, etc.) hébergées sur l’internet, capable de gérer un grand nombre d’utilisateurs simultanément et pour lesquelles le client ne se soucie pas d’où elles sont hébergées et comment elles fonctionnent. Ces solutions sont développées pour répondre aux besoins de l’utilisateur final et elles offrent que peu de possibilités de paramétrisation. Les solutions offertes dans cette couche sont souvent aussi appelées solution "SaaS". Les solutions regroupées dans la catégorie "Cloud Application" permettent de répondre à un besoin spécifique du client comme la gestion de ses clients, la messagerie ou la bureautique.
Les avantages principaux des solutions de type "Cloud Application" sont un accès direct à l’application depuis n’importe où dans le monde, une simplicité d’utilisation, une mise en œuvre de solutions éprouvées. Un autre avantage des solutions de type "SaaS" c’est qu’elles sont parfois gratuite et mettent en ouvre le modèle économique freemium (modèle économique qui consiste à offrir un service de base gratuitement et à faire payer les services supplémentaires). L’inconvénient majeur est lié aux fonctionnalités souvent limitées de l’application. Ces solutions ne permettent généralement pas d’être adaptées pour répondre à des besoins spécifiques.
Beaucoup de ces solutions ne font qu’employer le terme "Cloud Computing" pour surfer sur la vague marketing associé à ce nouveau concpet.



[E_08] Thorsten von Eicken, The Three Levels of Cloud Computing, http://virtualization.sys-con.com/node/581961, publié le 31/07/2008, consulté le 13/12/2009
[L_08] Peter Laird, Visual Map of the Cloud Computing/Saas/PaaS Markets, http://peterlaird.blogspot.com/2008/09/visual-map-of-cloud-computingsaaspaas.html, publié le 8/09/2008, consulté le 4/07/2009
[S_08] Michael Sheehan, Introducing the Cloud Pyramid, http://cloudcomputing.sys-con.com/node/609938, publié le 21/08/2009, consulté le 10/01/2009

09 novembre 2009

Google Wave Tech Talk à Zurich

Lundi 2 novembre 2009, j’ai eu le plaisir de participer au Google Wave Tech Talk à Zurich (merci Google). Juste pour rappeler ce qu’est Wave, Stephanie Hannon et Lars Rasmussen nous ont montré la vidéo "What is Google Wave?".

L’équipe de Google Wave a ensuite enchaîné sur une présentation des gadgets (exécution limité à une Wave) et robots (interaction avec la Wave). Même si les gadgets sont amusant et parfois utiles (ex : sudoku à plusieurs, planificateur de vacances, sondage à la minute, …, http://wave-samples-gallery.appspot.com/) ce qui m’intéressent plus particulièrement dans ce domaine ce sont les robots. Un robot peut lire le contenu d'une Wave à laquelle il participe, il peut en modifier le contenu, il peut aussi ajouter ou supprimer des participants et finalement il peut créer de nouveaux blip (un bloc de conversation) et de nouvelles Wave. Un robot peut-être considéré comme un participant et effectuer un grand nombre des actions qu’un participant peut faire. Ça fait peur, mais je pense que ça sera utile.
Personnellement, j’espère que les équipes de Blogspot (qui héberge ce blog - merci) et de Google Wave vont rapidement collaborer pour développer Bloggy le robot qui me permettra de gérer mon blog et les commentaires depuis Wave, tout en lisant mes Twitt avec Twitty, mes flux RSS avec RSSy ???, …

Le deuxième volet de cette présentation portait sur le protocole utilisé par Wave (http://www.waveprotocol.org/). Le "Google Wave Federation Protocol" est une extension du protocole XMPP, qui permet communication (synchronisation de Wave) quasi instantanée entre deux serveurs. Une Wave est un document XML que l’on peut schématiser comme dans l’image ci-dessous.
Schema XML Wave

Cette structure simple permet de stocker une conversation (Wave) composée de Wavelets, composées elles-mêmes de blip ou toutes autres types de document (j’ai déjà mis des documents word, des phtos, … dans une Wave), de gérer les droits, mais aussi de rejouer tout l’historique de sa création.

Pour conclure cet article je peux dire que ce protocole ouvert me semble prometteur, car Google a la force d’imposer un nouveau standard, mais selon l’équipe de Google il nécessitera encore beaucoup de réflexion et d’amélioration pour garantir sa stabilité et sa performance.

Ma première définition du "Cloud Computing"

Dans mes articles précédents, j’ai défini les 5 concepts de base du "Cloud Computing". Ces concepts sont repris dans les nombreuses définitions relevées par les auteurs des articles [G_09, VRCL_09]. Ce que j’ai constaté en lisant ces derniers, c’est que les notions de "service", de "scalabilité" et de "virtualisation" sont des concepts primordiaux qui ressortent dans plus de 50% des définitions. Deux autres notions sont moins souvent mentionnées, mais elles ne me semblent pas anodines. Pour la première, il s’agit de l’idée de "centralisation" relevée par Aaron Ricadela [G_09], qui me rappelle le concept de terminal/serveur. La seconde est encore trop souvent mise de côté, mais elle va devenir la clé pour choisir un prestataire, il s’agit de la notion de "service-level agreements" (SLA). Le SLA est une notion qui devient importante lors de la première panne. Ces pannes sont rares, mais peuvent bloquer des millions d’utilisateurs et font donc généralement l’objet de milliers d’articles, et de millions de Twitt.

En me basant sur mes lectures, ainsi que sur mes réflexions, je vais donc vous donner ma première définition :
Le "Cloud Computing" est un méga ordinateur (scalable et élastique), pour lequel on ne paie que ce que l’on consomme. Il héberge des services (software, hardware ou middleware) que l’on accède depuis l’internet.
Une version mise à jour de cette définition est disponible dans mon article sur la pyramide du "Cloud Computing"!

C’est tout simple, mais ça m’a pris beaucoup de temps et cette définition a fait l’objet de nombreuses discussions avec mes collègues. Avec l’avancement de mon mémoire d’ingénieur durant les 6 prochains mois, je pense que cette définition risque encore d’évoluer !

[G_09] Jeremy Geelan, Twenty-One Experts Define Cloud Computing, http://cloudcomputing.sys-con.com/node/612375, publié en janvier 2009, consulté le 12/08/2009
[VRCL_09] Luis M. Vaquero, Luis Rodero-Merino , Juan Caceres, Maik Lindner, A Break in the Clouds: Towards a Cloud Definition, publié en 2009

07 novembre 2009

Public et Private Cloud

Le cinquième concept du "Cloud Computing", que j’ai cité dans mon article Tout n’est pas "Cloud"! Le "Cloud Computing" c’est …, est l’internet (au sens réseau IP). De manière générale je peux dire qu’un "Cloud" est composé d’un ou plusieurs data-centre (n’importe où dans le monde) interconnectés par un réseau haut débit. Ce type de solutions est aussi communément appelé "Public Cloud".

Les "Clouds" public sont généralement exploités par des sociétés tierces comme Amazon, Google, Microsoft, GoGrid, etc. Ce sont des infrastructures mutualisées et partagées par un grand nombre d’utilisateurs. Les "Clouds" public permettent de réduire les prix grâce aux économies d’échelles et les risques par la multiplication des infrastructures. Ce modèle permet aussi d’assurer les capacités de scalabilités et d’élasticités que doit offrir le "Cloud Computing". Le "Cloud" public étant hébergé dans un environnement partagé et exploité par une société tierce, son exploitation peut poser un certain nombre de problèmes comme :
  • La confidentialité des données peut-être mise ne danger par les autres utilisateurs.
  • En fonction d’où sont hébergées les machines, certaines lois peuvent porter un préjudice à l’utilisateur [AFG_09].
  • Les performances ne sont pas constantes, car dépendantes de l’activité des autres utilisateurs.

Les "Clouds" privés sont des solutions dédiées à un client. Ils sont hébergés soit au sein de l’entreprise ou chez un prestataire de services (infrastructure dédiée). Le client a par conséquent un contrôle total sur ses données, il maîtrise la sécurité et bénéficie d’un niveau de service garanti. Par compte, les "Clouds" privés sont souvent limités dans leurs capacités techniques.

Les "Clouds" hybride combinent les deux types de "Cloud". Ce modèle permet de garantir la sécurité et la confidentialité des données tout en offrant la possibilité d’absorber une plus grande charge de manière temporaire. Ils sont généralement utilisés pour absorber les piques de charge. Le problème majeur de ce modèle est le transfert des données entre les deux solutions.

En résumé je peux dire que les termes public et privé ne définissent pas forcément ou se trouve physiquement le "Cloud", même si souvent le terme "public" connote que la solution de "Cloud Computing" est hébergée quelque part sur l’internet et le terme "privé" qu’elle est hébergée au sein de l’entreprise, mais quel est la nature de son contenu.


[AFG_09] Michael Armbrust, Armando Fox, Rean Griffith, Anthony D. Joseph, Randy H. Katz, Andrew Konwinski, Gunho Lee, David A. Patterson, Ariel Rabkin, Ion Stoica et Matei Zaharia, Above the Clouds: A Berkeley View of Cloud Computing, http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.html publié en février 2009

06 novembre 2009

Virtualisation

Je continue ma série par la notion de virtualisation, une notion qui est de plus en plus employée en informatique.
Le concept de virtualisation, d’une manière générale, offre une vue logique plutôt que physique de la puissance de calcul, de la capacité de stockage, et des autres ressources informatique. Elle permet de faire tourner sur une même machine physique une ou plusieurs machines logiques, ce qui permet de diminuer le gaspillage des ressources. Ces machines logiques peuvent fonctionner avec des systèmes d’exploitation différents. Nous pouvons donc faire tourner virtuellement un Linux sur une machine Windows et vice versa.
La virtualisation découple le système d’exploitation et les applications du système physique sur lequel ils fonctionnent. Ce principe permet soit de les porter sur des nouveaux environnements physiques, soit de les migrer d’une machine à une autre. La virtualisation offre aussi des mécanismes capables de capturer l’état de la mémoire vive, ce qui accélère et simplifie le déplacement ou la duplication d’une instance de machine virtuelle.
En virtualisant les différents éléments hardware d’une machine physique, il devient alors très facile d’augmenter ou de diminuer la taille de chacun de ces éléments en fonction des besoins du moment.

05 novembre 2009

Scalabilité et d’élasticité

Le troisième concept mentionné dans mon article Tout n’est pas "Cloud"! Le "Cloud Computing" c’est … est l’"élasticité". Quand on parle de "Cloud Computing", cette notion est souvent associée à la scalabilité. Je vais donc vous donner mon point de vue et mes défintions sur ces notions.

Le concept de scalabilité et d’élasticité offrent à l’utilisateur l’impression d’avoir en permanence des ressources de calcul et/ou de stockage illimitées [MG_09]. Ces ressources peuvent être facilement et rapidement ajoutées ou retirées, de manière automatique parfois, afin de répondre aux besoins de l’utilisateur.
La scalabilité est la capacité d’un système à s’adapter aux dimensions du problème qu’il a à traiter [1]. C'est-à-dire que la puissance de calcul, la mémoire ou le stockage utilisé par le système peuvent facilement être augmentés ou diminués en fonction des besoins.
L’élasticité est l’aptitude d'un corps à reprendre, après sollicitations, la forme et les dimensions qu'il avait avant d'être soumis à ces sollicitations [2]. Dans notre cas le "corps" est le système informatique et les "sollicitations" sont les besoins en matière de puissance, de mémoire ou de stockage.
L’élasticité permet donc d’automatiser le mécanisme de scalabilité des ressources informatique mise à disposition sur le "Cloud Computing".

[1] CNAM, Cours CMSL - Icssea 2001, http://deptinfo.cnam.fr/CMSL/icssea/icssea2001/cours.html, publié en décembre 2001, consulté le 17/10/2009
[2] larousse.fr
[MG_09] Peter Mell, Tim Grance, Draft NIST Working Definition of Cloud Computing (V15), publié en août 2009

04 novembre 2009

Pay as you go

Je continue ma série avec un deuxième concept. Le concept de "pay as you go" permet à l’utilisateur de payer que ce qu’il consomme réellement sans forfait minimum. Le prix est donc calculé à l’aide de ratios tel que processeurs par heure, giga-octets de disques par mois, etc. Cela permet de réduire drastiquement les coûts liés aux infrastructures informatiques.
Selon Sun et AMD dans leur live "Virtualization for Dummies" [GS_08] seulement 10 à 15% de la puissance des machines sont utilisés à l’heure actuelle. Même sous utilisées, ces machines consomment de l’énergie et elles occupent de la place inutilement. Cette sous utilisation est courante dans les entreprises, mais elle est nécessaire pour répondre à des piques de demandes.

Les graphiques ci-dessous illustrent les différents cas de sous et de sur utilisation des ressources informatique. Le premier graphique ci-dessous présente le cas d’une société qui a les ressources informatique pour absorber tous les piques. Les zones grisées montrent la part de budget perdue dû à une sous utilisation des ressources. Cette part dépasse généralement les 50%.
Sur capacité

Ce deuxième graphique, présente le cas d’une société qui ne peut pas absorber tous les piques. Cette compagnie risque de perdre des clients car ces derniers ne seront pas satisfaits de la prestation offerte. Les zones grisées montrent la part de temps où les capacités informatique ont été sous-estimées. Cette zone est généralement difficile à estimer d’un point de vue technique, mais encore plus d’un point de vue budgétaire.
Sous capacité

Finalement, ce dernier graphique montre le cas idéal. La société dispose toujours de la capacité demandée et elle ne paie que pour ce qu’elle consomme.
Capacité idéale

En conclusion, je peux dire que le "Cloud Computing" avec son modèle économique "pay as you go" permet d’éviter le gaspillage des ressources informatique et donc diminuer les coûts d’exploitation lié à l’informatique.

[GS_08] Bernard Golden, Clark Scheffy, Virtualization for Dummies, publié en 2008



03 novembre 2009

Service

Dans mon article précédent : Tout n’est pas "Cloud"! Le "Cloud Computing" c’est …, j’ai mentionné les 5 concepts qui font selon moi le "Cloud Computing". Je commence donc une série d’article sur ce concept.

Service : usage que l'on peut faire de quelque chose [1]. En trente ans, l’informatique a été développé afin de devenir comme l’eau, l’électricité ou le téléphone un service.
Avec le développement du web durant les années nonante, des startups ont commencé à proposer aux entreprises de louer des applications métiers en ligne au travers d’interfaces web simple ou d’une interface type client-serveur [P_09]. Ce nouveau modèle d’affaire a été appelé "ASP" (Application Service Provider). Pour les clients, l’"ASP" permettait de se débarrasser de la problématique d’exploitation, souvent lourde et coûteuse, de leurs applications. Ces startups ont aussi permis l’accès aux PME à des solutions comme Oracle General Ledger ou toutes autres solutions coûteuses et difficiles à installer, pour un prix moindre grâce au partage du coût des licences et des ressources informatique entre plusieurs clients.
Avec le développement du concept de "client riche" durant la première décade des années deux milles, les solutions type "ASP" ont été remplacées par des solutions appelées "SaaS" (Software as a Service). Le "client riche" est une évolution des "clients légers" ou pages web (utilisé par certains "ASP") qui intègrent les fonctionnalités des "clients lourds" ou applications de type client-serveur (utilisé par les autres "ASP"). Le "client riche" est utilisé dans le browser et il met en œuvre des technologies tel qu’AJAX, Flex, WPF, etc. pour afficher les pages web et reproduire le comportement des applications de type "client lourd". Le terme "RIA" (Rich Internet Application) est aussi communément utilisé pour désigner les applications de type "client riche". Salesforce.com, docs.google.com, zoho.com ou Yahoo ! mail sont considérés comme des "SaaS".
Le concept de "SaaS", a ensuite été adapté pour l’utilisation à distance de hardware "HaaS" (Hardware as a Service) ou "IaaS" (Infrastructure as a Service) grâce au développement de la virtualisation et des RIA. Ce concept permet d’administrer et exploiter un "data centre" virtuel hébergé sur le "Cloud". Avec ces services l’entreprise cliente ne paie que ce qu’elle utilise. Ce type de service évite aussi à l’entreprise les désagréments liés à l’exploitation d’un "data centre", tel que la redondance des infrastructures, la sécurité au sens large, les piquets, etc. Ce modèle économique permet aussi de diminuer les couts en matière d’infrastructure et de ressources humaines, pour l’entreprise cliente. Amazon EC2 est des acteurs majeurs de ce secteur du "IaaS".
Afin de répondre aux besoins des développeurs informatiques, qui ne soucient guère des problèmes de hardware et d’infrastructure, le concept de "? as a Service" a été adapté selon les mêmes principes que pour le "SaaS" et le "IaaS" dès 2008 [2, 3], pour leur offrir une plate-forme d’hébergement d’applications en ligne. Ce type de solution est communément appelé "PaaS" (Platform as a Service). L’architecture technique des "PaaS" repose en générale sur une couche appelée "middleware" qui permet aux développeurs d’applications de faire abstraction du système sur lequel leur application tournera. Comme pour le "SaaS" et le "IaaS" le développeur accède à sa plate-forme au travers d’internet. Microsoft Azure et Google App Engine sont deux solutions de type "PaaS".
Avec le développement du web, des RIA et la mise en place de solution de "Cloud Computing" la notion de service est devenue une réalité. L’informatique est un consommable de première nécessité pour les entreprises, comme l’eau, l’électricité et le téléphone.

[2] Google, Introducing Google App Engine, http://googleappengine.blogspot.com/2008/04/introducing-google-app-engine-our-new.html, publié le 07/04/2008, consulté le 15/06/2009
[3] itbusiness.ca, Windows in the cloud and a services offering from Microsoft, http://www.itbusiness.ca/IT/client/en/CDN/News.asp?id=50556, publié le 30/10/2008, consulté le 15/06/2009
[P_09] Guillaume Plouin, CLOUD COMPUTING et SaaS, publié en 2009

16 octobre 2009

Tout n’est pas "Cloud"! Le "Cloud Computing" c’est …

Comme le rappelle Allan Leinwand (venture capitalist) dans son article "Not Everything Is a Cloud", en 2009 tout n’est pas "Cloud Computing" en informatique.
Pour illustrer ses propos, Allan Leinwand nous rapporte qu’il a récemment reçu le business plan d’une startup qui exploite une solution informatique hébergée sur le "Cloud" pour distribuer des véhicules propulsés à l’énergie humaine. Il s’agissait en fait d’une entreprise qui vend des vélos au travers d’un site web. Afin de m’aider à définir ce qu’est un "Cloud", j’ai eu la chance le 8 octobre dernier, de suivre la session sur le "Cloud Computing" au forum Telecom World 2009 (TCW09). Durant cette session, les panelistes Jay Chaudhry, Michael G. Hill, Vincent Franceschini, Duncan Stewart, Panu Kause et Monique Morrow modéré par Tim Cowen ont défini exactement ce qu’est le "Cloud Computing". Ils auraient pu me donner une énième définition à étudier pour mon mémoire, mais au contraire ils ont donné les 5 concepts à la base du "Cloud Computing" :

  • Service
  • Pay as you go
  • Elasticité
  • Virtualisation
  • Internet

Je vais donc développer ces concepts dans mes prochains articles et surtout dans mon mémoire (PS. : il me manquait que le concept de virtualisation dans mon plan initiale).

02 octobre 2009

Google Wave


Je viens de passer ma soirée sur Google Wave ! Seul 100'000 personnes ont pu obtenir une invitation (merci Joao) pour tester cette nouvelle App de Google. Pour le moment, je n’ai pas encore d’amis sur cette plate-forme collaborative en temps réel, car Google a de « nombreux timbres à coller » (dixit Google) avant de forwarder mes invitations, mais j’ai déjà pu tester en solo quelques services.

J’ai commencé à planifier mes prochaines vacances et je continuerai à les préparer avec mon épouse dès qu’elle aura son compte sur Google Wave. J’ai ensuite intégrer mon Twitter avec Tweety dans Google Wave et vous avez sûrement pu lire mes premiers Twitt depuis cette nouvelle plate-forme. J’ai ensuite essayé de configurer Bloggy pour éditer ce blog, mais ce service n’est pas encore opérationnel. Je vais donc devoir encore attendre un peu pour gérer tous mes canaux de communication depuis une plate-forme.

Je trouve cette plate-forme collaborative très prometteuse et suis impatient de vous y retrouver pour discuter soit des sujets (le "Cloud Computing", le "Web 2.0", …) d’actualité m’intéressent aussi bien dans le cadre de mon travail que dans la rédaction de mon mémoire d’ingénieur, ou pour s’organiser une soirée sympa.

18 septembre 2009

Apps.gov

Je viens de lire l’article [1] de ZDNet France "La Maison Blanche s’ouvre au Cloud Computing pour réduire ses dépenses IT" et quelques autres en Anglais sur le même sujet. En période de crise, l’annonce du Gouvernement Américain ne peut que réjouir ses concitoyens. Mais attention, plusieurs acteurs du marché comme Google et SalesForce.com ont déjà annoncé qu’ils collaborent ou vont collaborer avec le Gouvernement Américain pour ce projet apps.gov. Amazon a quand à lui annoncé le 26 août 2009 [2] qu’il allait offrir une version privée d’EC2. Est-ce que la Maison Blanche utilisera cette dernière solution ?
Même si l’État se doit d'être un des moteurs de l’économie, il doit aussi protéger la vie privée de ses concitoyens. Le Gouvernement Américain devra donc faire attention aux données stockées sur des "Public Cloud" ou il devra transformer ses "Data Center" pour fabriquer son "Private Cloud" afin de garantir la sécurité de l'information.

En Europe, je n’ai pas entendu parler de tels projets ! Allons-nous aussi héberger nos données chez Google et Force.com ou allons-nous développer nos propres solutions ?

[1] ZDNET.fr, Christophe Auffray, La Maison Blanche s’ouvre au Cloud Computing pour réduire ses dépenses IT, http://www.zdnet.fr/actualites/informatique/0,39040745,39706848,00.htm, publié le 16/09/2009, consulté le 17/07/2009
[2] InformationWeek, Charles Babcock, Amazon's Private Cloud: Virtually Private Or Maybe Private?, http://www.informationweek.com/cloud-computing/blog/archives/2009/08/amazons_private.html, publié le 28/08(2009, consulté le 30/08/2009

Origine du terme "Cloud Computing"

Le "Cloud Computing" est l’évolution des notions que j’ai décrites dans les articles précédents. La première citation de ce terme date de 2001. Cette année là, Microsoft [1] en lançant sa nouvelle plate-forme de développement ".Net" présente le "Cloud" comme l’endroit où seront hébergés les "Web Services". Ces services seront accessibles sur l’internet et l’utilisateur pourra les consommer sans se soucier où sont-ils hébergés et avec quelle technologie sont-ils développés. Le terme "Cloud" (nuage en Français) est utilisé par analogie au symbole communément utilisé pour représenter l’internet dans les schémas des ingénieurs réseau. C’est en août 2006, lors de la conférence Search Engine Strategies, qu’Eric Schmidt PDG de Google présente un nouveau modèle architectural informatique où les données et les services seront hébergés quelque part sur le "Cloud" [2]. Le 24 août de la même année Amazon annonce son nouveau service "Elastic Compute Cloud" (EC2). Ce service web, qui est le premier du genre, offre aux développeurs le premier ordinateur redimensionnable sur le "Cloud" [3]. Grâce à cette solution, chaque développeur peut virtuellement créer le serveur dont il a besoin pour son projet et le dimensionner pour ses besoins.

C’est au second semestre 2008 que le terme "Cloud Computing" se répand et deviennent un concept phare en informatique. En octobre 2008, Amazon a lancé la version commerciale d'EC2 [4]. Amazon a depuis aussi ouvert son premier "Data Center" en Irlande, afin de diminuer les temps de latence réseau liés aux connections transatlantiques. Cette ouverture à aussi permis à Amazon d’offrir une solution conforme aux standards Européens en matière de stockage de données [5]. Entre 2008 et le premier semestre 2009, tous les autres grands acteurs du marché informatique, comme Google, Microsoft, IBM, HP, Dell, Sun, Cisco, VMware, Xen et Ubuntu ont rejoint le marché du "Cloud Computing" ou ils ont lancé des projets liés à ces concepts.

Pour analyser les évolutions technologiques, le Gartner publie chaque année sa courbe de "hype" (popularité) pour les technologies émergentes [6]. Le "Cloud Computing" a été annoncé pour la première fois dans ce rapport en 2008 et il a atteint en 2009 le sommet du "pic des attentes exagérées". Ce phénomène est dû au fait que le concept de "Cloud Computing" est nouveau. Comme avec toutes nouveautés, pour dominer le marché les concepteurs se doivent de promettre l’impensable. Dans son article "Twenty-One Experts Define Cloud Computing" [G_09], Jeremy Geelan relève déjà 21 définitions reprisent et complétées dans la publication scientifique "A Break in the Clouds: Towards a Cloud Definition" [VRCL_09]. Durant nos recherches, j’ai trouvé d’autres définitions comme celle de l’université de Berkeley [AFG_09], celle de l’université de Karlsruhe [WTK_09] ou la quinzième version de la définition du National Institute of Standards and Technology (NIST) américain [MG_09]. Toutes ces définitions présentent des aspects novateurs et prometteurs pour l’informatique, mais comme le rappel les auteurs de la définition du NIST le "Cloud Computing" est encore un paradigme en pleine évolution. Toutefois, comme pour les autres technologies émergentes, le concept de "Cloud Computing" devrait, selon le Gartner, rapidement tomber dans le "fossé des désillusions", car les acteurs du marché ne pourront tenir toutes leurs promesses. Mise à part les pannes un des premiers exemples est Amazon. Pour éviter les problèmes de goulets d’étranglement réseau et afin de permettre à ses clients d’envoyer des gigas octets de données rapidement, ce dernier a du proposer l’envoie par courrier (Fedex) de disques durs [7]. Finalement, le concept de "Cloud Computing" devrait atteindre, selon les analyses du Gartner, le plateau de la productivité d’ici 2 à 5 ans. Toujours selon le Gartner, ce concept devrait à terme aussi modifier le monde des technologies en offrant l’informatique comme un service consommable et non plus comme un investissement couteux. Dans les articles suivants je vais donc présenter les concepts qui me semblent déterminant pour donner une définition du "Cloud Computing".
[1] Microsoft, Sanjay Parthasarathy, WinHEC Conference 2001, http://www.microsoft.com/presspass/exec/sanjay/03-26winhecsanjayp.mspx, publié le 26/03/2001, consulté le 11/09/2009
[2] Eric Schmidt, Search Engine Strategies Conference, Conversation with Eric Schmidt hosted by Danny Sullivan, http://www.google.com/press/podium/ses2006.html, publié le 09/08/2006, consulté le 05/07/2009
[3] Amazon, Announcing Amazon Elastic Compute Cloud (Amazon EC2) - beta, http://aws.amazon.com/about-aws/whats-new/2006/08/24/announcing-amazon-elastic-compute-cloud-amazon-ec2---beta/, publié le 26/08/2006, consulté le 11/09/2009
[4] Amazon, Amazon EC2 Exits Beta and Now Offers a Service Level Agreement, http://aws.amazon.com/about-aws/whats-new/2008/10/23/amazon-ec2-exits-beta-and-now-offers-a-service-level-agreement/, publié le 23/10/2008, consulté le 11/09/2009
[5] Le Monde Informatique, Emmanuelle Delsol, Le cloud d'Amazon EC2 arrive en Europe, http://www.lemondeinformatique.fr/actualites/lire-le-cloud-d-amazon-ec2-arrive-en-europe-27631.html, publié le 11/12/2008, consulté le 17/12/2008
[6] Gartner, Gartner's 2009 Hype Cycle Special Report Evaluates Maturity of 1,650 Technologies, http://www.gartner.com/it/page.jsp?id=1124212, publié le 11/08/2009, consulté le 12/09/2009
[7] GigaOM, Stacey Higginbotham, Amazon’s New Service Goes Postal Over Slow Broadband, http://gigaom.com/2009/05/21/amazons-new-service-goes-postal-over-slow-broadband/, publié le 21/05/2009, consulté le 13/06/2009
[AFG_09] Michael Armbrust, Armando Fox, Rean Griffith, Anthony D. Joseph, Randy H. Katz, Andrew Konwinski, Gunho Lee, David A. Patterson, Ariel Rabkin, Ion Stoica et Matei Zaharia, Above the Clouds: A Berkeley View of Cloud Computing, publié en février 2009
[G_09] Jeremy Geelan, Twenty-One Experts Define Cloud Computing, http://cloudcomputing.sys-con.com/node/612375, publié en janvier 2009, consulté le 12/08/2009
[MG_09] Peter Mell, Tim Grance, Working Definition of Cloud Computing, publié en août 2009
[VRCL_09] Luis M. Vaquero, Luis Rodero-Merino , Juan Caceres, Maik Lindner, A Break in the Clouds: Towards a Cloud Definition, publié en 2009
[WTK_09] Lizhe Wang, Jie Tao, Marcel Kunze, Alvaro Canales Castellanos, David Kramer et Wolgang Karl, Scientific Cloud Computing : Early Definition and Experience, publié en octobre 2008

Server farm et Web farm

Un dernier article de théorie qui présente une des étapes importantes à la base du "Cloud Computing". Je l’ai plus orienté sur "Web farm" que sur les "Serever farm", car l’objectif de mon mémoire est de construire un site Web 2.0 sur un "Cloud".

Historiquement, les fermes de serveurs et plus particulièrement les "Web farms" se sont développées au début des années 2000 [CT_01, WY_01] pour répondre aux besoins de la bulle internet. Ces "fermes" hébergent des centaines de serveurs montés en "Cluster". Le nom "farm" a été choisi par analogie avec les grandes granges américaines qui servent au stockage des céréales. Tout comme pour l’agriculture, ces fermes de serveurs sont installées en campagne ce qui permet aux exploitants de diminuer les coûts de stockage et de garantir un approvisionnement facilité en eau (nécessaire pour le refroidissement des machines) et en électricité.

Ces "fermes" de serveurs ont permis de répondre aux besoins de "haute disponibilité" (HA – "high availability" en Anglais) nécessaire à une grande majorité de services accessibles au travers de l’internet. La HA permet de garantir l’accomplissement des tâches même en cas de défaillance d’un des nœuds ("nodes" en Anglais) du "Cluster". Ce principe de "haute disponibilité" est réalisé grâce à la redondance des infrastructures physiques et logiques ainsi que la mise en place de mécanismes de reprise sur panne ("failover" en Anglais) et de répartition de charge ("load balancing" en Anglais). Malgré la HA l’utilisateur peut ressentir des baisses de performance, mais ne perdra pas complètement accès au service qu’il est entrain de consommer.

Pour répondre à ce besoin de "haute disponibilité" dans les "Web Farms" deux concepts sont primordiaux : celui de la "scalabilité" et celui de la "répartion de charge".
·         La "scalabilité" permet de facilement augmenter la taille du "Cluster" en ajoutant des machines. Cette propriété permet de faciliter la montée en charge grâce à l’augmentation de la puissance de calcul et de la mémoire offerte dans la ferme. Ce concept permet aussi de garantir la "haute disponibilité" en permettant le remplacement d’une machine sans interruption de service.
·         La répartition de charge en Anglais "load balancing" est un énorme challenge pour les ingénieurs et fait l’objet de nombreuses publications [BDH_03, CT_01, WY_01]. L’objectif de toutes les solutions proposées est de minimiser le temps de réponse moyen et éviter de surcharger une machine particulière. Pour atteindre ce but, les paramètres à prendre en compte sont divers et varient en fonction des projets.
La solution la plus simple, pour le "load balancing", est basée sur la répartition de charge au niveau du serveur DNS (Domain Name System). Cette première solution ne fait que convertir un nom de domaine en une IP. Cette solution est externe au "Cluster" et elle ne permet pas d'éviter de diriger l’utilisateur sur une machine surchargée ou qui ne répond plus.
La seconde solution consiste à utiliser un serveur frontal, appelé communément "dispatcheur", pour répartir la charge. Le "dispatcheur", pour faire son travail, prend en compte plusieurs paramètres tels que la nature du site (statique ou dynamique), l’URL demandé, les cookies ou la popularité momentanée du site. En fonction de la nature du site statique ou dynamique le "dispatcheur" mettra en œuvre un algorithme différent.
Des solutions peuvent aussi être développées pour répondre à des besoins spécifiques. Les ingénieurs de Google, dans l’article "Web Search for a Planet: The Google Cluster Architecture" [BDH_03], décrivent la solution mise en œuvre, par ce leader des moteurs de recherche, pour répondre aux requêtes faites sur son moteur de recherche. La solution consiste premièrement en une répartition de la charge au niveau du serveur DNS. Cette première étape dirige l’utilisateur sur le "Cluster" le plus proche de lui géographiquement. Dans une seconde phase, un serveur exécute la demande en interrogeant un serveur d’"index" et complète le contenu de la page de résultats en interrogeant un serveur dit de "documents" avant de la retourner à l’internaute.
Dans leur article "Load Balancing for Clustered Web Farms" [WY_01] Joel L. Wolf et Philip S. Yu, ingénieurs chez IBM, proposent d’héberger plusieurs sites web indépendants sur un nœud du "Cluster" et chacun de ces sites web est lui-même répliqué sur plusieurs nœuds du "Cluster". Ce chevauchement de sites sur plusieurs nœuds permet d’optimiser l’utilisation des ressources du serveur, car un site peut être temporairement fortement sollicité tandis que les autres sites hébergés sur le même serveur ne le sont pas. Cette solution, de partage des ressources physiques, pause toutefois un problème pour la confidentialité des données, car ces dernières sont toutes hébergées sur le même serveur. Un concurrent pourrait donc accéder aux données qui ne lui appartiennent pas.


Pour conclure cette section, je peux dire que les "Web Farm" ont permis et permettent toujours d’héberger des services accessibles sur l’internet nécessitant sur une très haute disponibilité. La principale difficulté, pour le développement des services hébergés dans ces fermes, est liée au fait que chaque machine reste indépendante, malgré qu’elles fassent toutes parties du même "Cluster". Il faut donc, tout comme pour le "Grid Computing" développer spécifiquement les applications, pour quelle fonctionne sur un "Cluster".

[BDH_03] Luiz André Barroso, Jeffrey Dean, Urs Hölzle, Web Search for a Planet: The Google Cluster Architecture, publié en 2003
[CT_01] Emiliano Casalicchio, Salvatore Tucci, Static and Dynamic Scheduling Algorithms for Scalable Web Server Farm, publié en 2001
[WY_01] Joel L. Wolf, Philip S. Yu, Load Balancing for Clustered Web Farms, publié en 2001

02 septembre 2009

Gmail – Panne ?!?

Comme tout le monde le sait, hier soir Gmail est tombé en panne, suite à une mise à jour de routine et une sous-estimation de la charge que certaines modifications récentes (ironie du sort, certaines ont été mises en œuvre pour améliorer la disponibilité du service) placé sur les routeurs/serveurs qui gère le load balancing [1].
Depuis un petit mois, je me documente sur les "Web Farms" et les "Clusters" afin de rédiger la prochaine section de mon mémoire. Je vais essayer de publier cette dernière d’ici à mi-septembre. Dans cette section, un des points principaux que je développe est justement le "Load Balancing". Ce sujet a fait l’objet de nombreuses publications et ça reste le nerf de la guerre tous les gros projets.
Pour résoudre ce problème, je me demandais si la virtualisation est un pré requis pour ce type d’application hébergée sur le "Cloud". En lisant l’article de Gary Orenstein "Is Virtualization a Cloud Prerequisite?" [2], je comprends qu’à l’heure actuelle si on utilise des architectures système dédiées et développées spécifiquement pour un projet, on obtient des performances plus grandes. Toutefois, si on virtualise et que l’on met en œuvre des mécanismes de haute disponibilité, on est sensé diminuer le risque de pannes par surcharge. Je vais donc essayer de tester ce point lors de la mise en œuvre pratique de mon projet de mémoire au début 2010. J’émets déjà une réserve quand à la taille du projet. Si j’ai quelques centaines d’utilisateurs à la seconde je suis un homme heureux, tandis que si Google ou un autre major n’a que quelques centaines d’utilisateurs à la seconde ils se posent des questions!
[1] More on today's Gmail issue, http://gmailblog.blogspot.com/2009/09/more-on-todays-gmail-issue.html, consulté le 02/09/2009
[2] Is Virtualization a Cloud Prerequisite?, http://gigaom.com/2009/08/30/is-virtualization-a-cloud-prerequisite/, consulté le 31/08/2009

31 août 2009

Grid Computing

Après avoir défini l’"Utility Computing", une des premières étapes qui m’a semblé logique pour définir la genèse du "Cloud Computing" a été le "Grid Computing". En effet, le "Grid" et le "Cloud" sont souvent comparés [FZRL_09, S_08].
Personnellement, j’ai découvert ce concept informatique en 2003, lors d’une visite au CERN. Travaillant déjà dans le développement de sites et d’applications web, je n’avais pas vraiment porté d’intérêts sur ce concept, car il me semblait et me semble toujours dédié aux scientifiques qui veulent résoudre d’énormes problèmes.
Le concept de "Grid Computing" ou "Grille Informatique" est né en 1997 lors d’un séminaire intitulé "Building a Computational Grid" tenu au Laboratoire national d’Argonne. En 1998, Ian Foster et Carl Kesselman les deux organisateurs de ce séminaire ont publié un livre intitulé "The Grid : Blueprint for a New Computing Infrastructure" [FK_98]. Cet ouvrage est souvent considéré comme la bible du "Grid".
Le "Grid" ou "Grille" est une analogie au réseau électrique, "power grid" en anglais, où l’utilisateur se branche au réseau et paie ce qu’il consomme sans se soucier d’où vient le courant. Le "Grid" a été initialement mis au point pour permettre le partage des ressources au sein de la communauté scientifique. Les ressources partagées [CERN1] peuvent être de natures diverses comme des données de testes, des logiciels, du matériel informatique et même des télescopes ou des microscopes.
Le terme "Grid" est rapidement devenu un élément vendeur et il a donc été utilisé pour vendre de nombreux projets comme par exemple : "Data Grids" ou "Cluster Grids", etc. Ian Foster a donc précisé sa définition en 2002 en décrivant en trois points le "Grid Computing" [F_02] :
1)                  Un "Grid" coordonne des ressources partagées qui ne sont pas gérées de manière centralisée. C'est-à-dire qu’il permet de cordonner différents systèmes indépendants au sein d’une même entreprise ou au sein d’entreprises tierces tout en abordant les questions de sécurité, de droits d’accès et de paiement.
2)                  Utilisation d’interfaces et protocoles ouverts et standards afin de permettre l’authentification, la découverte des services et leur utilisation.
3)                  Un "Grid" doit fournir un niveau de service de qualité, malgré l’utilisation de ressources de natures différentes. Ce niveau de service doit être adapté en fonction des besoins comme le temps de réponse, le débit, la disponibilité, la sécurité ou la colocation des ressources.
Ces trois points laissent le débat ouvert sur ce que sont une gestion centralisée des ressources, des interfaces et protocoles ouverts ou un service de qualité. Toutefois Ian Foster précise qu’un "Cluster" informatique n’est pas un "Grid".
Techniquement un "Grid Computing" s’architecture en quatre couches [CERN1]. La première couche est la "couche réseau" qui permet d’interconnecter les différents éléments entre eux. La deuxième couche est constituée des ressources effectives faisant partie de la grille, tels que des ordinateurs, des systèmes de stockage, ou même des capteurs tels que des télescopes ou autres instruments qui peuvent être connectés directement au réseau. La troisième couche est le "middleware". Elle permet de gérer les interactions entre les différentes ressources. Cette couche gère l’organisation et la distribution des tâches aux différentes ressources. Pour ce faire le "middleware" s’appuie sur des agents capables d’échanger des métadonnées et des "brokers" charger de négocier l’authentification et l’autorisation d’utilisation. Le "broker" se charge aussi de conclure la transaction pour l’utilisation et le paiement de la ressource. Le "Globus toolkit" est un "middleware" très répandu qui permet entre autre de gérer l’affectation des ressources, de garantir la sécurité, de surveiller et découvrir les services et de répliquer les données. La dernière couche, qui est la seule à être visible des utilisateurs, est la couche applicative. C’est elle qui contient tous types d’applications développées pour le "Grid". Ces applications peuvent être de natures diverses comme des applications scientifiques ou financières, devant réaliser des gros calculs sans contraintes de temps. Pour fonctionner sur un "Grid" une application doit être "Gridifiée" pour interagir avec le système et pouvoir soumettre des demandes à la "Grille".
Pour conclure cet article, je peux dire que malgré la souplesse offerte par un "Grid" tant au niveau du type de ressources qu’à la quantité des ressources utilisables à un temps T, un "Grid Computing" peut-être utilisé que pour des applications spécifique (scientifique, financière, BI, …). Ceci est du à sa nature de brokering de tâches en fonction des besoins et des disponibilités. Le "Grid" a donc trouvé son créneau d’utilisation et pour moi il pourra être considéré que comme un cousin lointain du "Cloud Computing". 
[CERN_1] GridCafé.org. http://www.gridcafe.org/. Consulté le 10/07/2009
[F_02] Ian Foster. What is the Grid? A Three Point Checklist. Publié en 2002
[FK_98] Ian Foster, Carl Kesselman. The Grid : Blueprint for a New Computing Infrastructure. Morgan Kaufmann Publishers, 1ère edition 1998
[FZRL_09] Ian Foster, Yong Zhao, Ioan Raicu, Shiyong Lu. Cloud Computing and Grid Computing 360-Degree Compared. Publié en 2009
[S_08] Jamie Shiers. Grid today, clouds on the horizon. Publié en 2008

26 août 2009

Utility Computing

En octobre 2008, quand j’ai commencé mes recherches sur le "Cloud Computing", j’ai constaté que le concept d’"Utility Computing" ou "Calcul à la Demande" revenait régulièrement dans l’histoire informatique.
Ma première référence remonte à 1974. A cette époque George J. Feeney, dans sa synthèse d’une table ronde "Utility computing – A superior alternative" [F_74], introduit le concept d’"Utility Computing". Dans cet article, il annonce que les sociétés, qui utilisent un des 60'000 calculateurs de manières indépendantes aux États-Unis dans les années septante, devraient suivre le même chemin que l’industrie qui produisait son électricité au début du XXème siècle. Un demi-siècle plus tard, ces industries sont devenues clientes de sociétés productrices d’électricité. Les sociétés devraient à terme aussi externaliser leur informatique pour des raisons économiques.
Les facteurs, qui ont conduit ce changement pour l’électricité, sont les économies d’échelle, le fait que les coûts puissent être variables et que la technologie, pour produire cette énergie, a évolué rapidement. George J. Feeney rapporte aussi que grâce à l’"Utility Computing" les sociétés et les universités pourront utiliser des machines sophistiquées en ne payant que ce qu’elles consomment.
En 2002 [SJ_02], IBM, Sun et HP investissent dans le concept d’"Utility Computing" et proposent tous les trois leur propre solution. L’argumentaire de ses prestataires de services est une diminution des coûts, une simplification de la gestion des infrastructures et une possibilité d’augmenter ou de diminuer la puissance de calcul en fonction des besoins. Depuis d’autres acteurs, comme Microsoft, Google ou Amazon ont lancé leur solution.
Le concept d’"Utility Computing" est rémanent et toujours à la base des projets d’externalisation des solutions informatiques. On retrouve les mêmes arguments économiques pour le "Grid Computing", les "Web Farm" et le "Cloud Computing", seul les concepts techniques évoluent.
Juste après avoir rédigé ces quelques lignes pour mon mémoire, j’ai lu un article de James Urquhart [U_09], dans un flux RSS auquel je suis abonné. Cet article "In cloud computing, data is not electricity" démontre que l’analogie à l’électricité ne peut-être simplement appliquée au monde informatique. Lors de la consommation d’électricité, l’utilisateur ne se soucie pas d’où vient l’électricité. Dans le concept d’"Utility Computing" et plus particulièrement avec le "Cloud", il est important pour le consommateur de savoir où et comment est stocké son information. Toutefois, James Urquhart conclut son article en confirmant qu’il faudra encore beaucoup de temps pour gagner la confiance des entreprises. L’externalisation complète de l’informatique va encore prendre des décennies et devoir surpasser de nombreux obstacles aussi bien techniques que légaux.
[F_74] George J. Feeney, A panel session - Utility computing - A superior alternative?, publié en 1974
[U_09] James Urquhart, In cloud computing, data is not electricityhttp://news.cnet.com/8301-19413_3-10296370-240.html, publié le 01/08/2009, consulté le 10/08/2009
[SJ_02] John G. Spooner et Sandeep Junnarkar, IBM talks up 'computing on demand', http://news.cnet.com/IBM-talks-up-computing-on-demand/2100-1008_3-963807.html, publié le 30/10/2002, consulté le 06/08/2009

24 août 2009

Bienvenue!

Je viens d’ouvrir ce blog pour développer le côté Web 2.0 de mon mémoire d’ingénieur CNAM (bac +5) option "Systèmes d'information" (CYC12). Durant les 10 prochains mois, le sujet que je vais développer  est la "Mise en place d’un site type Web 2.0 sur un Cloud". Je vais donc parler principalement de ce sujet dans ce blog, et j’espère que vous serez nombreux à commenter mes posts, afin d’enrichir le débat et par conséquent améliorer le contenu de mon travail. Je commenterai aussi quelques actus lues, dans un des nombreux feeds que j’essaie de suivre quotidiennement. Vous pouvez aussi suivre mes lectures sur http://www.google.com/reader/public/atom/user/03794033100048597177/state/com.google/broadcast
Pour mon mémoire, je vais dans un premier temps définir ce qu’est un "Cloud", et j’espère en décembre commencer la partie pratique. Pour la partie théorique, j’ai commencé il y a quelques semaines. J’ai déjà rédigé quelques pages sur la genèse du "Cloud Computing" en parlant de l’"Utility computing", du "Grid Computing" et des "Web farms". Je vais donc mettre rapidement des posts sur ces sujets. Puis je vais analyser les solutions du marché et en retenir une afin de lancer le développement du site type Web 2.0. En mai prochain, je pourrai présenter mes conclusions au jury.
Encore quelques mots sur moi, après un Bachelor en informatique de gestion à la HEG, je travaille depuis plus de 6 ans dans une structure mixte (académique et Étatique) qui s’occupe principalement de développement Web pour l’administration.
Mes liens :
Google site (pour partager mes docs) : http://sites.google.com/site/maslintcho/