Les sessions auxquelles j'ai participé :
- Keynote 1 & 2
- SQL Server Data Services: Tips and Tricks for High-Throughput
Data-Driven Applications
- SQL Server 2008: Business Intelligence and Data
Visualization
- A Lap around SQL Services
- Windows Azure: Architecting & Managing Cloud
Services
Ces 2
keynotes étaient vraiment fameux. De la démo magique qui brille mais c'est
tellement bon. Le premier Keynote était consacré à Windows 7
et aux interfaces clientes. Le second était une démo 100% code avec
Azure présentée par les showmen Don Box et
Chris Anderson.
Les sessions du jour quant à elles ont été instructives. J'ai eu de nombreux
éléments de réponse qui consolident ma vision de Azure (et de SQL Services).
Tout d'abord, sachez que les versions actuelles sont assez limitées. Je rapelle
que Azure est une vision à 2009-2010. Ces limitations sont fonctionnelles, tout
n'est pas encore développé, mais aussi au niveau des garanties et des quotas
(d'ailleurs, le pricing n'est même pas établi).
Précisions :
Je vais d'abord revenir sur Azure. L'idée n'est pas de prendre votre
application tel quel et de la mettre sur un système qui garantisse la
haute-disponibilité et la montée en charge. Votre application doit être conçue
pour Azure et doit répondre à de nombreuses règles. C'est pour cela qu'arrive
Oslo, langage qui permet de modéliser ces contraintes et de les intégrer dans
le développement.
Lors du déploiement sur Azure, ce modèle sera interprété par le "Fabric
Controller" qui gèrera l'application dans le cloud et mettra en place,
en fonction des contraintes exprimées, la redondance le load-balancing,
etc.
Pour comprendre les contraintes imposées pour votre architecture, il faut bien
voir que pour garantir le load-balancing de vos applications ou même la
haute-disponibilité (reprise après un crash), il faut tendre, par exemple, vers
le stateless ou avoir une gestion d'état compatible. Evidemment, cet exemple
n'est qu'une des facettes des choses à penser pour développer pour le
Cloud.
Concernant SQl Services, l'idée à terme est vraiment d'avoir un SQL Server
en ligne (in the cloud), qui peut monter en charge à l'infini, gérer la
haute-disponibilité, avec paiement à l'usage, etc. C'est bien SQL Server qu'il
y a derrière (backend servers) mais interfacé par un front-end qui semble
impressionnant (et qui, je pense, réinterprète la requête et la dirige dans le
bon noeud dans le backend).
Pour le moment, il y a très peu de fonctionnalités, juste du stockage
d'entités. Pas d'intégrité, pas de transactionnalité au niveau du container,
pas de jointures, etc. Pour ces fonctionnalités avancées, il va falloir
attendre ou se les coder comme au bon vieux temps. C'est d'ailleurs assez
frustrant d'ailleurs.
Le requêtage peut se faire via REST donc on peut tester directement dans un
browser.
A noter la notion de schéma flexible qui m'a bien plu et qui permet pour des
mêmes entités de ne pas avoir toutes les mêmes colonnes. (Ca sent le sparse
columns derrière...)
Jeudi, je vais à une session (level 400) sur SQL Services en interne. Il me
tarde...
Conclusion :
Pour conclure, la journée 2 a été très bien pour rentrer en profondeur dans
Azure et SQL Services. Je suis de plus en plus séduit par cette nouvelle
famille chez Microsoft et le fait que Microsoft réfléchisse à modéliser
l'infrastructure (et par extension la production) directement à la création de
l'application va dans le bon sens à mon avis.
En revanche, je suis aussi de plus en plus frustré car en rentrant dans le
détail, je vois les limitations de la version actuelle. En même temps, je
devais m'y attendre, je suis toujours sceptique sur les démos magiques où on
nous promet la lune :-p.