Une session présentée par Manuvir Das à la PDC09. Manuvir s’occupe des outils destinés aux développeurs Windows Azure comme les SDK ou les outils pour Visual Studio.
Il y eu énormément d’annonces lors de la keynote de ce matin, cette session est donc l’occasion de revenir plus en détail sur l’état de Windows Azure spécifiquement et de ses évolutions à venir.
Windows Azure est un système d’exploitation pour le Cloud: des milliers de serveurs permettant d’exécuter vos applications, ainsi que les outils de gestion associés et des solutions de stockage. Les principaux éléments sont:
Au départ: deux rôles (Web + Worker), communicant par les Queues, partial trust ASP.NET/.NET. Le staging fonctionne par “VIP swap”. L’OS est maintenu à jour automatiquement.
On a commencé par consolider l’infrastructure et les data centers. Ensuite, on va allouer et déployer des images virtuelles de façon automatisée, y compris la configuration des équipements réseau, etc. Un contrôleur alloue les ressources en fonction de la demande. Un modèle de service permet de décrire les besoins des applications.
Puis l’on a développé le système de stockage: un référentiel de données répliquées (3 replica) puis un système de partitionnement automatique permettant de répartir la charge sur plusieurs serveurs, dynamiquement.
Tout cela existait dès le lancement de la CTP en 2008.
L’on a ensuite construit la plateforme de développement: les outils, le modèle de développement, la gestion des services, puis une série d’abstractions au-dessus du modèle de stockage: Tables, Blobs, Queues.
C’est cette deuxième partie qui a beaucoup évolué depuis la CTP.
Dans les prochaines semaines, la CTP continue avec l’ensemble des fonctionnalités. Le lancement est en Janvier et devient payant en Février.
Le modèle de développement a été conçu pour être familier, tout en encourageant les meilleures pratiques pour le Cloud. Exemple: le système de diagnostics, API standard mais implémentation spécifique dans Azure.
Un service est accessible via une VIP (adresse IP virtuelle) load-balancée sur des endpoints configurables. Une API de service permet de gérer les IP et les ports.
Une API autorise la communication inter-rôles par TCP. Le dernier SDK inclut ces fonctionnalités.
Manuvir démontre l’API IPEndPoint. Elle est illustrée dans l’exemple HelloFabric, présent dans le SDK.
Manuvir démontre ensuite les notifications dans l’API de runtime: RoleEnvironment.Changed permet de définir le callback à appeler en cas de changement dans l’environnement (e.g. une instance est démarrée ou arrêtée).
Manuvir montre l’API de logging: Trace.WriteLine() + configuration dans web.config (générée automatiquement par Visual Studio).
Ce qui vient:
Ce qui a évolué sur la partie Storage:
Le futur sur la partie Storage:
Ce qui a évolué sur la partie Service Management:
Manuvir revient sur la callback appelée suite à une notification; Windows Azure appelle les callbacks update domain par update domain. Ici, l’instance sera réinitialisée.
C’est une fonctionnalité clé de Windows Azure: les modifications d’environnements sont prises en compte de façon contrôlée via les update domains. C’est une meilleure pratique pour la gestion d’applications dans le Cloud.
Manuvir détaille alors un témoignage de Coca Cola Enterprises: une plateforme Extranet permettant à des clients professionnels de Coca Cola de passer des commandes. Le portail permet de passer des commandes et communique avec la plateforme interne.