Azure in action - Chris Hay and Brian H. Prince

hay_cover150

J’avais déjà eu l’occasion de jouer un peu avec l’offre “Cloud” de Microsoft en développant un prototype d’une application. Mais c’était au début et l’offre a beaucoup évolué : les outils, l’apparition d’une offre autour de Sql Server, d’un CDN etc.

Le livre commence par un survol de ce que recouvre une offre «cloud » et en quoi elle peut être bénéfique pour une entreprise. Il est toujours difficile d’éviter les discours stéréotypés sur ce genre de sujet à la mode. Les auteurs s’en tirent bien, en décrivant les scénarios où il fait sens de se départir d’une infrastructure interne : management de serveurs, proximité géographique (les serveurs Azure sont maintenant répartis en Amérique du Nord, en Europe et en Asie), etc. La discussion rentre en détail sur la construction du plus gros de ces centres (Chicago). La structure logique aussi est très détaillée : le rôle du « Fabric Controller » qui comme un OS abstrait les structures physiques pour manager de façon transparente les applications et les services. Quand vous stockez des données dans un Blob par exemple celui-ci est répliqué trois fois de façon instantanée.

On rentre ensuite dans le détail de chaque grand service : Web Role, Blob, Table/SQL, Worker, Queue et finalement AppFabric. La partie la plus détaillée au niveau code est celle consacrée au WebRole, et les auteurs insistent sur les différences avec un site classique : pas de «  sticky session » dans le cas où vous choisissez d’avoir plusieurs instances su même rôle, l’accès à un espace disque (temporaire).

La partie consacrée au stockage de blob est intéressante car elle introduit les concepts d’affinité (vous pouvez créer un groupe lié à un secteur géographique pour que le déploiement de votre application et de votre service de stockage se fasse sur le même secteur, à moins que vous aimiez l’idée de faire des SELECT transatlantiques).

Le chapitre sur la comparaison Table/SQL Azure est peut-être moins intéressant. SQL Azure étant une version «cloud » (et très « payante ») de SQL Server. Table Storage est un service de stockage sans schéma, basé sur un identifiant unique et une clé de partition. On peut stocker tout et n’importe quoi dans la même table. Tous les services de Azure sont accessibles via une API REST (attention aux yeux, faut savoir lire le XML nativement) ou par une bibliothèque cliente fournie par Microsoft (une version simplifiée de ADO.NET Data Services)

Le chapitre sur les « Worker Role » (cousin du service Windows et maintenant accessible depuis l’extérieur ou par d’autres services) combiné avec Azure Queue décrit une solution de Messaging. S’ensuit ici une discussion sur la granularité des workers et des queues correspondantes selon le type d’applications, de niveau de service attendus (supervision, déploiement, mise à jour etc.)

Enfin les auteurs terminent sur Windows Azure AppFabric qui comprend deux composants : Service Bus qui peut servir de proxy entre composants déployés sur des réseaux hétérogènes avec un service de messaging. L’autre est «Access Control » (dont on peut se servir avec Service Bus pour authentifier les accès) qui permet de fédérer différents systèmes d’authentification. Le livre comporte un exemple complet qui aide mieux à comprendre l’intérêt de ce type de technologie qui repose sur le standard OAuth : intégrer différents systèmes d’authentification, surtout quand on veut offrir de nouveaux services aux utilisateurs dans une entreprise ayant déjà une infrastructure existante.

Le livre en 425 pages couvre vraiment tous les services d’Azure mais il offre aussi une perspectives sur chacun d’eux. J’ai pu me rendre compte aussi en effectuant certains tutoriaux que les outils pour travailler avec Windows Azure sont maintenant beaucoup plus « user-friendly » (le déploiement post-PDC 2009 était assez laborieux). Microsoft a récemment lancé une offre d’essai étendue mais comparée à Google App Engine elle n’est pas très lisible. Si vous devez évaluer la plate-forme «Cloud » de Microsoft, Azure in Action sera sans doute un très bon compagnon pour vos premier pas.

billet publié dans les rubriques coding, readings le