David Chappell est un grand speaker. Je le savais déjà et je viens d'en avoir la démonstration lors de son passage à Paris, ce matin même. Il est invité par Microsoft à faire le tour du monde pour évangéliser la plate-forme Azure. Sa présentation est limpide, concise, il n'hésite pas à faire des pronostics sur l'avenir du Cloud, et il est tout simplement passionnant.
Il se défend d'abord de parler d'Azure au nom de Microsoft, il rappelle qu'il ne fait pas partie de MS, et qu'il donne son avis personnel. Il a par ailleurs publié un excellent white paper sur Azure, disponible ici.
David Chappell positionne rapidement le Cloud dans l'histoire de l'informatique: c'est la 6ème plate-forme à apparaitre en moins de 50 ans (après les Mainframe, les Mini, le PC Desktop, le PC Server et le Mobile), c'est un enjeu formidable et une chance inouïe de vivre actuellement une rupture de cette nature. D'ici 5 ans, pratiquement tous les ISV de la planète (cette conférence s'adressait spécifiquement aux éditeurs de logiciels) feront du Saas et auront une partie de leur offre dans le Cloud. Construire soit même sa plate-forme pour faire du Saas n'a pas plus de sens que d'écrire un système d'exploitation !
Si vous souhaitez tourner votre entreprise vers l'avenir, c'est dans cette direction qu'il faut regarder.
Vue d'ensemble de la plate-forme Azure
Windows Azure se divise en 3 parties:

Windows Azure n'est pas exactement Windows dans les nuages, mais pas loin.
On disingue les Traitements et le Stockage, le tout étant géré par Fabric, le service d'infrastructure de la plate-forme.
Les Traitements

Le traitement comporte plusieurs instances de role (role Web ou Worker), qui sont loadbalancées automatiquement. Chaque "role" tourne dans sa machine virtuelle qui lui est propre. La configuration des différents rôles est définie dans un fichier XML au moment du déploiement, et la Fabric se charge de créer et configurer les différentes VM.
De la même façon que vous n'aurez pas accès à la VM comme un administrateur voudrait le faire, n'espérer pas disposer de Windows Azure (en tant qu'OS) chez vous. Il est peu probable que Microsoft change d'avis sur le sujet.
En tant que développeur, vous aurez juste une instance d'une Fabric locale, pour simuler votre application sur votre machine, avant de la déployer dans Windows Azure. A noter, qu'il n'est pas possible pour l'instant de débuguer une application Azure, une fois déployée; cela changera peut être avec les prochaines versions, mais pour l'instant, la seule source d'infos sur une application déployée est un service de logging (mutualisé, qui permet à tous les rôles de centraliser leur log).
Le Stockage
On distingue le stockage Azure et SQL Azure.

Le stockage Azure est accessible par http uniquement.
Il y a 3 formes de stockage dans Azure; les Blobs, les Tables et les Queues.
Les Blobs permettent de stocker des gros fichiers, comme des vidéos ou des images
Les Tables, qui portent très mal leur nom, car ce ne sont pas des Tables au sens d'une base de données; mais David Chappell qui avait l'habitude d'être très critique vis à vis du nommage des différents services par Microsoft, s'interdit désormais de le faire, depuis qu'il a été engagé sur le sujet, et il reconnait que c'est extrêmement difficile de bien nommer les choses, bref, une Table contient des données de type clé-valeur, il n'y a pas de schéma et pas de colonnes. L'avantage, est que cela Scale très bien, et qu'il est possible d'avoir des milliards d'éléments dans une Table Azure.
Les Queues qui permettent l'échange de messages, notamment entre les différents rôles, pour répartir des traitements par exemple.
SQL Azure est le stockage relationnel (anciennement SQL Data Services), qui correspond à une base SQL server en ligne, avec quelques fonctionnalités mineures en moins. C'est une très bonne idée que de l'avoir ajouter, car ce n'était pas prévu dans la version initiale. Une base de données comme SQL Server sait faire du Scale Up, est accessible par ADO.Net et offre beaucoup d'autres services (Reporting et OLAP). Mais on aura besoin que les données Scale Out, c'est à dire qu'elles soient distribuées. Il pense d'ailleurs que la limite de 10Gb sera revue à la hausse dans le futur (n'oublions pas qu'il s'agit d'une V1).
Il y a également les .Net Services. Il n'en a pas beaucoup parlé, juste mentionné le scénario avec les données à l'intérieur de l'entreprise qui fait intervenir le Service Bus qui est là pour ça (je n'ai pas tout compris, mais cela permet d'avoir une connexion tcp avec l'extérieur).
La migration d'une application .Net existante est en tout cas très facile:
- à condition d'être stateLess
- à condition de ne pas avoir besoin de privilèges particuliers, ce que Windows Azure interdit formellement (du coup, une application Win32 ou COM sera impossible à migrer).
Une application existante pourra être complétée par des services purement Cloud par la suite (comme l'usage de parallélisation massive ou du stockage massif).
Business Model
David Chappell a rappelé les tarifs de Azure en insistant sur l'extrême faible cout de stockage, surtout qu'il n'y a pas besoin d'un administrateur devant le serveur. Les tarifs sont clairs, il y a encore quelques questions sur la bande passante, mais pas de mauvaise surprise ; ils sont tout à fait concurrentiels.
Quels sont les scénarios de déploiement sur le Cloud ?
- Application scalable; cela concerne peu de monde, tout le monde n'écrit pas FaceBook ou Twitter, mais il y en a tout de même quelques unes.
- Application à charge fluctuante; par exemple un site de vente de billets de concert aura une charge brutale lors de la mise en vente des billets pour le prochaine concert de ColdPlay (c'est lui même qui a prit cet exemple)
- Application temporaire destinée à être détruite; pour faire un prototype par exemple, ou pour un studio de cinéma qui a besoin d'une application dédiée sur un tournage et de la détruire ensuite.
- Application qui a besoin d'être testée à un moindre coût avant d'être industrialisée. Le cas de la direction métier qui ne s'entend pas avec son IT est monnaie courante, et un très bon exemple de besoin du Cloud.
- Application qui nécessite un fort volume de données; une application qui héberge des vidéos aura tout intérêt à être sur le Cloud (au moins pour les données).
- Application qui nécessite une disponibilité permanente; évidemment, en premier lieu, les éditeurs en mode Saas. L'intérêt du modèle Saas n'est plus à démontrer et le Cloud est justement là pour ça.
- Application qui nécessite de fortes charges de calcul; les applications qui font du Grid Computing, sont idéales pour tourner dans le Cloud, sans nécessité une infrastructure délirante, qui seraient peu rentable.
- Application qui fait intervenir plusieurs partenaires, et dont aucun ne voudrait s'approprier l'hébergement et le stockage.
Et enfin, la baisse des coûts va être un formidable vecteur d'adoption des applications sur le Cloud; pas seulement pour les éditeurs, mais pour les grandes entreprises. Elles ne vont pas migrer toutes leurs applications du jour au lendemain, cela se fera progressivement, et en fonction des différents scénarios d'applications. Les scénarios hybrides (données ou traitement ou les deux sur le Cloud) est en tout cas très attractif.
Quelles sont les offres concurrentes ?
- Le Hosting dédié. Non, Azure ne va pas tuer les hébergeurs et le métier du Hosting. D'abord, ce marché est beaucoup trop important pour Microsoft ! Ensuite il y a de réelles différences; plus de contrôles sur les machines, mais moins de charge d'administration dans Azure. Et là ou un hébergeur mettra plusieurs jours à vous fournir des ressources supplémentaires, c'est instantané sur le Cloud.
- Amazon: le premier acteur du Cloud, historiquement un vendeur de livres ! L'offre d'Amazon permet à l'utilisateur d'avoir la main complète sur sa VM. C'est à l'utilisateur d'installer sa Base de données pour les données relationnelles.
- Google AppEngine: très similaire, en terme de services à Azure. Vous ne voyez pas les VM, vous avez accès à des ressources. Sauf que l'intégration se fait en Python; il a fait un sondage pour savoir qui connaissait Python, 3 mains timides se sont levées. Dans la Silicon Valley, toute la salle aurait levé la main, nous a-t-il dit. L'offre de Google est donc clairement tournée vers les Startup et particulièrement la Silicon Valley. De plus, AppEngine ne permet que de faire des Applications Web, et pas du tout des applications serveurs au sens de Windows.
- SalesForce: c'est un peu le Access du Cloud, qui permet de construire des applications clé-en-main facilement. Par contre, une fois chez SalesForce, vous aurez du mal à migrer votre application vers un autre environnement. Il rappelle au passage que SalesForce a été fondé par un ancien d'Oracle, qui sait très bien se lier à ses clients.
En résumé, il n'y a pas de meilleures plates-formes de Cloud qui sort du lot; elles sont toutes différentes, même si elles ont des zones de recoupement, et tout dépend de ce que vous voulez faire.
Quel niveau de confiance la plate-forme Azure va t elle recueillir lors de son lancement ?
Difficile à dire, mais à la vue des enjeux, de la baisse des coûts que cela représente, Microsoft et ses partenaires trouveront les éléments pour obtenir la confiance de leurs premiers clients. SalesForce a bien réussit à obtenir la confiance pour héberger les données stratégiques des entreprises dans le Cloud, ce qui n'était pas du tout gagné au départ.
Enfin, même s'il y a un certain nombre de règlementations qui contraignent les entreprises, notamment Sarbanes-Oxley, les éditeurs de plate-forme de Cloud en tiendront compte pour adapter leurs offres en conséquence. Azure a une plate-forme à Dublin, et en proposera surement d'autres en Europe.
En conclusion, David Chappell invite tout le monde à faire des essais, à partir de la CTP.
Voilà, une conférence d'une remarquable qualité, sur un sujet nouveau et très prometteur. Il n'y aura pas de vidéo de la conférence, et pour ceux qui ne le connaissent pas, une petite idée du personnage, ici.