lundi 12 janvier 2009

Windows Azure - la platforme qui révolutionnera l'informatique

Voici un article entamé il y a plusieurs mois et agrémenté au fil du temps.
J'essaye d'y faire la synthèse des informations glanées, ci et là, sur la plateforme Windows Azure et ses relations avec les autres technologies "made in" Microsoft.
Malheureusement, le domaine est vaste et la synthèse qui en découle difficile à conduire en un seul article.
Même s'il a été composé au mieux, je ne dispose plus de temps à lui allouer (même pour du fignolage).
Il sera donc publié en l'état, ainsi, soyez donc indulgent si je me suis offerts des largesses orthographiques avec le contenu.
Bonne lecture.

 
Introduction
Déjà abordé dans l'article "Windows Azure - Le cloud computing façon Microsoft" (à lire), la nouvelle plateforme de Microsoft serait bien en passe de modifier profondément le paysage logiciel de la prochaine décennie.
Google et ses différents services ayant déjà démontré depuis des années que ce modèle est plus que fiable, pourquoi Microsoft s'y lancerait-il pas?


Déjà bâtie sur les fondations d'un data center et environnement "cloud computing", Azure permettra aux petites sociétés de mettre en place des logiciels d'envergures sans devoir obligatoirement lever des fonds pour investir et maintenir une infrastructure couteuse.
Les "data centers" Cloud Computing prenant en charge les problématiques de bande passante, disponibilité de temps machine et de ressources, Windows Azure se présente comme une plateforme + solution attractive.
Ainsi, avec l'excellent et populaire environnement .Net comme autre pierre angulaire, Microsoft s'assure le support d'une très large communauté de développeurs pour sa nouvelle plateforme Azure.
Et cela, c'est sans compter sur "la réplication" transparente dans les data centers "Cloud Computing" et quelques autres concepts avancés par Microsoft.
Si Microsoft est loin d'avoir tout inventé, il faut reconnaître de l'assemblage s'organisant autour de la plateforme Azure est prometteur.

Windows Azure... pas seulement du pure Web
De prime abord, l'on pourrait penser que Windows Azure et son modèle Cloud Computing n'intéresserait que les sociétés envisageant des logiciels/services Web.
Mais qui peut aujourd'hui se targuer d'ignorer le Web. Même si certaines applications n'ont pas de front-end sur le Web, Internet peut permettre d'offrir des services (Web Services) complémentaires aux clients.
Demain, Windows Azure permettra de mettre en ligne des applications pour lesquelles l'on n'envisageait pas d'avenir orienté Web (des ERP, des logiciels de Compta, gestion de stock, CRM, etc) et ce avec la même rapidité qu'une application stand-alone.
Même les plus réticents aux "Web" trouverons leur bonheur car Windows Azure n'impose pas l'exécution ou le stockage de l'application sur le Web (voir détails plus loin).

En abordant une vue plus large, les Web Services,Applications Web, etc peuvent être utilisés pour dynamiser le business d'une société existante en permettant aux clients, fournisseurs et partenaires d'interroger une partie de l'infrastructure de la société.
Une grande partie de la population est déjà familière avec ce principe car qui ne connait pas l "Internet Banking" ou les services/sites web des mutuelles. Les constructeurs automobiles y ont également largement recours dans leurs processus de distribution (ce n'est pas les concessionnaires qui le démentirons).
 
Windows Azure va stimuler, faciliter et sécuriser la création de tels éco-systèmes de services ou applications que cela soit sur site propre, sur le web ou en fonctionnement hybride (site-propre + web).

Les quelques points développés ci-dessous vont levé une partie du voile sur l'infrastructure Azure.
En y regardant de plus prêt et en assemblant les blocs, les plus clairvoyants y verront probablement les prochaines environnements de développements.

Data Center ou On-Promise
Bien que prévu pour fonctionner dans les data-centers de Microsoft, les applications écrites pour la plate-forme Windows Azure pourront être exécutées sur site propre (dénommé "On-Promise").
Les plus réticents pourront ainsi créer un environnement de type Azure au sein de leur propre société.
A l'heure actuelle, les seuls Data Centers disponibles pour la plateforme Azure se trouvent aux USA mais Microsoft planifie une extension en Europe (probablement Dublin et Amsterdam).

Avantages des data-centers:
L'utilisation de Windows Azure en Data Center présente un certain nombre d'avantages.
En voici quelques-uns:
  • Réplication des informations stockées (usuel dans le modèle "Cloud Computing").
  • Prise en charge de la maintenance et mise-à-jour des systèmes d'exploitation.
  • Serveurs d'applications ("services" seraient probablement plus approprié)
  • Service de transfert de données.
  • Pas de down-time.
  • "Pay as you go" (payer pour ce que l'on consomme).
  • Eco-système complet basé sur la platforme .Net, WCF, Asp, WPF, SilverLight
  • Disponibilité d'une DB relationnelle (Sql Azure, incluant la réplication)
  • etc
Pin-Point
Pin-point est une boutique en ligne de Microsoft permettant aux développeurs Azure de vendre leurs applications.
Avec l'aide des data-centers de Microsoft destinés à la plateforme Azure, la vente ou l'achat et le déploiement d'applications devient un jeux d'enfant (ou presque).
Se faire connaitre en tant que développeur ou société de développement Azure est forcement facilité.
L'achat, le test et le déploiement d'application Azure devient Trivial et d'une incroyable rapidité (plus besoin de trouver les machines de tests, d'acheter du matériel supplémentaire, etc).

Avec Pin-point et Azure le déploiement de software .Net s'apparente au modèle "Appliance" utilisé pour bon nombre d'applications (distribution d'application sous forme de machine virtuelle pré-configurée).
La principale différence réside dans le déploiement de code source plutôt que de fichiers binaires.

Dallas
A l'instar des AppStore (boutique en ligne permettant d'acheter des application), Dallas est une boutique en ligne permettant d'acheter de l'information.
Il est ainsi possible de publier et consommer des flux d'information de façon uniforme... mais en plus de pouvoir envisager de les rentabiliser.

Avantage:
Plus besoin de concevoir, implémenter et gérer par soi-même une solution de publication payante (et son infrastructure) lorsque l'on veut vendre de l'information.

Cas d'utilisation:
Publication d'article/journaux payant (le soir, le monde, etc), cotations et traitement d'information sur les marchés boursiers, informations statistiques diverses, info-traffic, indices de consommations, quantification anonyme de consommation de produits (médicaments) dans les officines, consommation food et no,-food dans les chaînes de magasin, résultat d'étude marketing, etc.

Un certain nombre d'information apparemment sans valeur peuvent être valorisée à l'aide d'outil statistique et être revendue (ou offerte) sur le net. J'imagine que bon nombre de résultats d'études "type universitaire" pourrait être partagé de cette façon.
Dallas peut devenir une plateforme et une plaque tournante du partage de l'information.
C'est qu'avec Dallas, il n'y a plus besoin de mise en page (et publication sur magazine ou net) pour l'émetteur d'information et le consommateur n'aura plus de besoin de traitement et réintégration de l'information dans un système informatique tiers; Dallas offre une interface "unifiée" pour partager l'information.

Service Bus, un layer de communication
La plateforme Azure dispose de son propre layer de communication (Service Bus) basé sur Windows Communication Foundation (WCF). Le Service Bus permet aux applications Azure de communiquer ensembles et ce de façon sécurisée (peu importe qu'elles soient prise en charge sur le Cloud ou On-Promise).
La communication entre les différentes applications se présente comme des "services" d'accès/de communications, "service" rendu par la plateforme Azure.
Ce service bus fonctionnant sur le Cloud, il permet également aux applications Azure (ou non) de communiquer avec d'autres applications Azure (ou non).
Un serveur d'une société X faisant fonctionner un ERP Z pourrait ainsi communiquer avec une application Azure (qu'elle soient prise en charge sur le Cloud ou On-Promise) ou bien encore directement avec un autre ERP-Y d'une Société H; Dans ce cas de figure étriqué, le "Service Bus" de la plateforme Azure prendrait en charge la communication entre les différents intervenants.

La vidéo ci-dessous présente un introduction (cas pratique de "Dinner now!") au Service Bus.
Ce cas d'utilisation néanmoins complexe met en avant la flexibilité du Service Bus. 

Get Microsoft Silverlight

Plus d'articles et de vidéos a propos de "Windows Azure Service Bus" sur channel 9.
Cet articles aborde d'ailleurs la mise en place (coding) autour du service bus.

Le cout

Concernant la politiques des couts, Microsoft n'a pas l'intention de prétendre être plus économique qu'une infrastructure physique réelle.
Selon le principe "Pay as you go", les factures mensuelles reprendront en charge votre consommation réelle de ressource.


A noter quand même que la plateforme Azure permet d'éviter les couteux problèmes de planifications et investissements matériels ainsi que les problèmes de redondance, mise-à-jour, down-time et de personnel.  

Voici, a titre d'exemple officieux, les cout qui auraient étés en application pour des projets pilotes:
  • 0,08 Eur par heure d'utilisation processeur.
  • 0,10 EUR / mois par la location d'un Giga-Octect (1 Go) de stockage.

Les coûts s'articulent autour de 3 éléments faisant l'objet d'une structure de prix propre.
A savoir:
  • L'utilisation de Windows Azure (l'utilisation du système d'exploitation)
  • La base de donnée "Sql Azure"
  • Le serveur d'application.

Regroupement des équipes Microsoft
Windows Azure est probablement destiné à devenir le principal business de Microsoft.
Microsoft en est d'ailleurs convaincu et réorganise son savoir faire de façon stratégique.
C'est ainsi que l'on apprend que Microsoft fusionnement ses entités Windows Serveur et Windows Azure (sources: articles Microsoft et PcInpact).
Si le message ne semble pas assez claire, il n'est pas bien risquer de considérer qu'à terme "Windows Azure sera aussi important de Windows Server sur tous les plans".


SilverLight 
Basé sur l'environnement .Net, Silverlight permet d'exécuter du code .Net sur une machine cliente.
A la base, Silverlight se présentait comme une alternative au Flash Player d'Adobe.
Mais puisqu'il est basé sur .Net, Silverlight bénéficie d'extensions intéressantes comme Windows Presentation Foundation, Windows Communication Foundation. Ainsi, Silverlight dispose intrinsèquement d'outils puissants pour exécuter une application de type "Windows" sur le client. La couche Windows Communication Foundation fournissant un accès au support de stockage distant.

En effet, de part son principe Silverlight est une extension du Web n'autorisant pas de stockage d'information (ou modification de la configuration) sur le poste client.
Mais de source officieuse, cela pourrait changer prochainement... et avec l'avènement de Windows Azune, Silverlight devient une nouvelle pierre angulaire. En effet, Silverlight pourrait exécuter localement des applications de type Windows qui stockent (ou pas) localement leurs informations de traitements.
Windows Azure et WCF offrent le support de communication et de stockage, la disponibilité de l'information, des services Webs et les applications à exécuter sur les postes clients.

C'est un peu comme télécharger ses applications à la demande en fonction de ses besoins. Elles fonctionneraient indépendamment de la même façon au travail, chez un client ou à la maison.
Seul besoin... Un navigateur internet et Silverlight. Pour les visionnaires, on est à mis chemin entre le poste de travail et les applications de type "Web Pure".
 
Il faut aussi savoir que Silverlight propose (ou proposera prochainement) un support matériel bien plus étendu que les produits concurrents (eg: Flash Player, etc).
Hormis la traditionnelle Webcam, le restant du matériel de la machine peut (pourra) être accessible depuis Silverlight. Une machine rudimentaire équipée de Silverlight et d'un scanner Code Barre peut alors devenir un puissant "point of sale".

Finalement et non des moindres, en plus de l'environnement internent (via le browser Internet), la prochaine mouture de SilverLight (v4) supportera de façon transparente les périphériques mobiles et les télévisions.

Avec un peu d'imagination, j'imagine qu'il soit facilement possible de créer un logiciel de comptabilité fonctionnant sous SilverLight ayant la capacité:
  1. De se télécharger depuis une plateforme Azure (et donc toujours à-jour).
  2. De dialoguer avec la plateforme Azure pour le traitement/stockage des informations.
  3. De dialoguer avec des applications tiers (pour l'intégration de service).
Bien que n'ayant jamais testé Office 2010, il me semble raisonnable de penser que la version Web d'Office 2010 puisse être bâtie sur cette nouvelle mouture de Silverlight et Windows Azure (gestion d'accès concurrents).

Le site de Clubic publie également l'article "S.Guthrie : les nouveautés de Silverlight 4 en vidéo".

Avis personnel
Google dispose déjà d'une solution Cloud Computing depuis quelques années (AppEngine).
Mes quelques recherches sur le sujet fûrent des plus captivant et force est de constater que Google dispose d'une force de calcul astronomique (ses data centers) et d'une main-mise sur l'information.
Google dispose donc de l'infrastructure adéquate laissant Microsoft loin derrière lui dans le domaine du Cloud computing... jusqu'aujourd'hui.

Si Microsoft sort maintenant du bois pour sauter dans les nuages (the Cloud :-) ), il ne dispose malheureusement pas des avantages de Googles.
Par contre, la très populaire plateforme .Net de Microsoft peut, elle, faire la différence.
Cet avantage là est indéniable!!!
Par le passé, l'émergence de la plateforme .Net, des technologies WCF (Windows Communication Foundation) & WPF (Windows Presentation Foundation) pouvaient être perçus comme des actions informatico-marketing pour "faire vendre" les produits de la société de Redmond.
Cette course aux nouvelles technologies et le manque de compatibilité ascendante en résultant (en lieu et place d'une consolidation des technologies Microsoft), ont souvent été mal reçu et mal perçu par le monde économique.
C'est que l'investissement constant que nécessite les plateformes Microsoft agace les professionnels. Vista en à d'ailleurs fait les frais puisqu'il est un cuisant échec dans le monde professionnel!.

Aujourd'hui, l'existence de la plateforme .Net, WCF, WPF, SilverLight, ASP.NET (supportant nativement, rapellons le, le caching et les Web-Farms) s'inscrivent en droite ligne dans l'exploitation d'une solution Cloud Computing.
Microsoft se lance dans le Cloud Computing en disposant déjà de tous les outils nécessaires; la plateforme et les technologies .Net déja bien éprouvées sont supportés par une large communauté de développeur.
Il ne reste plus à Microsoft qu'à se concentrer sur son infrastructure et l'ouverture de ses data-centers.

Microsoft et Google disposent chacun de leurs propres avantages stratégiques.
Mais Microsoft pourrait avoir envisager la meilleure des approches.

Aucun commentaire: