[TechDays 2010] Windows Azure AppFabric (CLO305)
Les webcasts sont désormais en ligne, je me décide donc à écrire ce post.
J’ai encore eu la chance d’animer une session aux TechDays cette année. Le sujet : le même que l’année dernière, ou plutôt son évolution. En effet, l’année dernière la couche de communication et de sécurisation du cloud de Microsoft se nommait .NET Services ; il faut maintenant l’appeler Azure AppFabric (A ne pas confondre avec Server AppFabric [velocity pour les intimes]).
Le sujet de la session
Annoncée en novembre 2009, Windows Azure AppFabric (anciennement .NET Services) est le pendant dans le cloud de Windows Server AppFabric (anciennement Dublin). Cette session fait le point sur les grandes fonctionnalités d'AppFabric et les nouveautés attendues.
Le but était donc de montrer le maximum de choses mais en se démarquant des autres événements MS. Tout le monde sait que l’on peut héberger un service sur le cloud. Par contre, rares étaient les personnes qui avaient compris qu’on pouvait garder le service chez soi et juste exposer un Endpoint (un point de connexion) sur cloud… De même pour la sécurité, peu de gens savaient que l’on peut sécuriser n’importe quoi grâce à l’ACS sans pour autant que ce soit hébergé sur le cloud… Notre intention était donc de montrer ce que personne ne montre lors des autres événements.
Les slides
Le webcast
Voir le Webcast
La démo
On a essayé de montrer le plus de chose possible dans la démo de cette session. Evidement on n’allait pas montrer 15 démos différentes donc on a cherché un scénario qui nous permettait de montrer tout ce qu’on souhaitait montrer. Nous sommes donc arriver à ça :
Mise en place d’un site web permettant à des abonnés de réserver des places de concert. Cependant, l'exploitant du site ne possède pas directement ces places de concerts. Il travaille donc avec un réseau de partenaires (fnac, virgin…) qui vont se faire une joie d’honorer les commandes passées sur le site. Nous obtenons donc le schéma de composants suivant (Attention ! Accrochez vous !) :
Le schéma qui aide pas mal :
Côté société qui met en place le site web:
- un site web de réservation de places de concerts [ hébergé sur le cloud ]. Il a plusieurs but :
- L’authentification via le service de validation d’authentifications.
- Le passage d’une commande sur le site web génère une levée d’événement sur un canal de diffusion (une sorte de broadcast) que le service de passage de commande écoute. Ce service n’est potentiellement pas le seul à écouter ce canal ; des applications d’audit des partenaires peuvent aussi écouter ce canal.
- Le site web ajoute aussi la commande sur un MessageBuffer (une sorte de Queue sur le servicebus) [ via une classe de l’API : MessageBufferClient ].
- une base de données contenant les concerts + affiches [ hébergée sur SQL Azure ]
- une base de données CRM [ On-Premise* ]
- un service WCF de validation d’authentifications faites sur le site web [ On-Premise* + EndPoint exposé sur le servicebus d’AppFabric – Type de communication : NetTcpRelayBinding ]
- un service WCF de passage de commandes via le site web [ On-Premise* + EndPoint exposé sur le servicebus d’AppFabric – Type de communication : NetEventRelayBinding ].
- un service WCF de mise à jour des commandes via les partenaires [ On-Premise* + EndPoint exposé sur le servicebus d’AppFabric – Type de communication : WebHttpRelayBinding / REST HTTPS ]
- un service WCF d’exposition de samples pour les différents événements [ On-Premise + EndPoint exposé sur le servicebus d’AppFabric – Type de communication : WebHttpRelayBinding / REST HTTPS ]
Côté partenaire maintenant:
- Une application d’audit en mode Console
- Une application de récupération de commandes à partir du MessageBuffer en mode Console
- LocalSTS : une petite application développée par Justin Smith qui permet de simuler un Active Directory + Active Directory Foundation Services. Le but est de se servir de cet “AD” pour gérer la sécurisation des services WCF On-Premises via ACS…
- Une application d’audit en WPF [ Ecoute le service de broadcast – Type de comunication : NetEventRelayBinding ]
- Une application de gestion des commandes en WPF. Elle va chercher une commande sur le MessageBuffer pour ensuite procéder au traitement et donc mettre à jour le statut de la commande en communiquant avec le service de mise à jour via le EndPoint sur le ServiceBus [ WebHttpRelayBinding / REST]. Evidemment le but ultime de la démo est de sécuriser cette mise à jour grâce aux credentials de l’AD du partenaire en passant via l’ACS (qui va au passage faire de la transformation de jetons de sécurité en plus de faire de la validation…)
On-Premise: Réseau de l’entreprise… Que ce soit en local ou chez un hébergeur tiers.
Voila, j’espère avoir été le plus claire possible. Avec un scénario pareil ce n’est vraiment pas évident. Si vous avez du mal à suivre mais que le sujet vous intéresse, regardez le webcast car les choses sont amenées logiquement et petit à petit au fur et a mesure que la session avance.
Les sources de la démo
Je fourni ici le code de la démo. Cependant je vais écrire un article spécifique pour permettre aux gens qui découvrent Azure AppFabric de la lancer car il y a tout un tas de paramètres à renseigner (credentials / connection strings…) ainsi que la mise en place des droits sur ACS et du LocalSTS avant de pouvoir la lancer. Ne sachant pas quand j’aurais le temps d’écrire cet article je fourni dors et déjà les sources pour les aficionados.
Les feedbacks
Les feedbacks, bons ou mauvais, sont toujours à prendre… Donc n’hésitez pas !
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :