Présent et Futur de Windows Azure

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:

  • Le “business portal” permet d’acheter les services
  • Le “developer portal” permet de créer les services, etc.
  • Le “Service Management Service” exécute les ordres tels que créer une nouvelle instance, etc. et est exposé via REST
  • Les “storage clusters” offrent le stockage et sont exposés via REST
  • Le “compute cluster” exécute des machines virtuelles exécutant votre code
  • Les outils pour les développeurs

Evolution de la plateforme

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.

  • La CTP était donc une “crédible introduction au cloud” qui a permis de valider les fonctionnalités avec de nombreuses applications écrites par partenaires et clients.
  • La plateforme sera lancée en janvier en production, prête à accueillir des applications métier critiques.
  • Dans le futur, l’on va étendre la plateforme vers des scénarios ISV & Entreprise plus larges.

Dans les prochaines semaines, la CTP continue avec l’ensemble des fonctionnalités. Le lancement est en Janvier et devient payant en Février.

Visite guidée

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 qui définit une frontière d’isolation
    • des rôles, avec des endpoints
      • un certain nombre d’instances de chaque rôle
  • Web Role: un rôle tourne dans une VM. Dans un Web Role, IIS est pré-installé.
  • Worker Role: un rôle vierge qui peut exécuter tout type de code, qui peut également avoir des endpoints (écouter sur des ports)

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).

Ce qui a évolué

  • support de Full Trust
  • ajout d’un dépôt de certificats
  • système de logging et de diagnostics

Manuvir montre l’API de logging: Trace.WriteLine() + configuration dans web.config (générée automatiquement par Visual Studio).

Ce qui vient:

  • plus de contrôle sur les machines virtuelles pour migrer des applications plus facilement dans le Cloud
  • accès distant à la VM

Ce qui a évolué sur la partie Storage:

  • “Drives” qui ne sera réellement disponible qu’en février
    • Via un accès NTFS standard on interagit avec des données stockées dans le Cloud

Le futur sur la partie Storage:

  • géo-réplication commandée par l’utilisateur
  • index secondaires sur les Tables

Ce qui a évolué sur la partie Service Management:

  • l’API permet de gérer dynamiquement l’infrastructure, e.g. prendre des décisions type lancer plus d’instances, etc.
  • “in-place rolling upgrade”: comment mettre à jour un service sans l’arrêter; les “update domain” permettent de diviser son infrastructure en morceaux qui seront mis à jour en séquence sans interruption
    • on a toujours également le “VIP swap”

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.