Allez un peu de teasing sur ma session !

Bon d’abord faut le savoir hein, une bonne raison de venir c’est que j’y serai.. aussi. Hein, si déjà là vous êtes pas bluffé, là ! (non ?)

Sinon, si vraiment vous hésitez encore un chouilla (genre y’a Angelina Jolie qui passe pas loin, bon ok là vous hésitez, je comprend …) Sachez que :

Renaud Conté sera là … aussi ! (ouais ça calme)

Accrochez vous, nous parlerons de :

  • Création et intégration de Web Role dans une application web existante
  • Migration d’une base de données SQL SERVER 2005 vers SQL AZURE
  • Portage de code pour gérer l’upload de fichier avec les Blob Container
  • Support d’un service sur l’intranet de l’entreprise via l’ AppFabric Azure

Et si tout ça ne suffisait pas, on parlera aussi … Donuts ! (Cherchez pas :) )

Teasing

,

TechDays 2010

Retrouvez moi au TechDays 2010 !

Je serai avec plaisir présent cette année encore aux TechDays 2010 à Paris, pour animer 2 sessions.

Chose assez rare (pour moi) je n'animerai ni session sur SQL SERVER ni session sur SYNC SERVICES.

Et oui, les temps changent !

Allez, cette année, vous aurez donc droit à 2 sujets complètements différents :

Xaml Futures

Sorti il y a maintenant 3 ans avec le .NET Framework 3.0, XAML est un langage de sérialisation utilisé pour le support de WPF, WF puis Silverlight.
Ce langage est capable non seulement de sérialiser un graphe de données de tout type mais également d'associer évènements et désormais code…
Avec .NET 4.0, XAML devient une classe unifiée de base du framework, au service de toutes les couches et dévoile un grand nombre de points d'extensibilité.

Découvrez Azure par la pratique en migrant vos applications

Dans cette session, vous découvrirez tous les aspects de Windows Azure au travers de la migration d’une vraie application sur la plate-forme de cloud-computing de Microsoft.Cette session se veut didactique et vous permettra de comprendre les enjeux, les atouts et les choses à savoir pour mettre un peu de « cloud » dans votre système d’informations.
Toutes les technologies liées à Azure seront abordées : SQL Azure, Azure Storage, Service Bus Web Role, AppFabric, etc. n’auront plus de secret pour vous.

Rendez vous à tous là bas !

PS  : Petit Jesus, s'il te plait, cette année, promets moi que je pourrai monter à Paris sans encombre .. et que tu ne cloueras pas les avions au sol à cause du mauvais temps, comme l'année dernière :)

,

Voilà une session animée par Clemens Vaster en personne.

Celui ci va nous parler de la communication entre applications externes et AZURE. Alors forcément, partant de la, on pense forcément Service Bus ! Alors oui la session fut en partie consacrée au service bus, mais pas que :)

Pour nous introduire sa problématique Clemens Vaster (CV) fait mumuse avec DinnerNow.net, un projet démo qu’il utilise depuis des lustres pour aborder des sujets divers et variés.

Chose intéressante, son application existe et comme toute VRAI application, a un historique, des contraintes architecturales fortes. Potentiellement toutes les briques ne sont pas migrables sur AZURE :

Un peu comme je l’ai fais, le contexte est de prendre une application déjà existante et de la porter sur le CLOUD :

  • Des choses que vous ne pouvez pas exécuter dans le Cloud
  • Des choses que vous ne voulez pas exécuter dans le cloud

image 

Biensur le Sevice bus est LA solution pour mettre en relation un service WCF, quelque soit les contraintes de votre Intranet.

Mais que se passe t’il si le service exposé ne sait pas parler WCF ou ne sait pas communiquer par HTTP ? Prenons par exemple SMPT, SNMP, POP, IMAP … TDS !

TDS est le protocole de communication de SQL SERVER sur un port 1433 en général. Justement nous voudrions (Surtout Clemens Vaster en fait :) ) faire communiquer notre Web Role avec une base de données sur un intranet local, serveur situé biensur derrière toutes les barrières des sécurité classiques (firewall, proxy, isa etc …)

CV va donc pendant sa session nous démontrer comment utiliser le Service Bus et un projet Bridge pour réussir à faire ce que l’on appelle communément du Tunneling :

Nous avons deux composants : “Port Bridge Service” et “Port Bridge Agent”

L’agent a pour rôle d’écouter et d’accepter des connexions TCP (ou named pipe) sur un port configurable. le service lui doit accepter ces connexions et établir un duplex channel avec l’agent, via le Service bus. Il a ensuite la charge traiter les données de l’agent avec le sercice à l’écoute et vice versa :

image

 

Clemens Vasters a mis à jour son blog pour expliquer comment faire du tunneling grace à son Bridge et le Service Bus AZURE : http://blogs.msdn.com/clemensv/archive/2009/11/18/port-bridge.aspx

Session intéressante, assez technique, enfin …. trés technique :)

,

Nouvelle sessions sur Azure, et le dévelopement avancé d’application pour la plateforme, présenté par Steve Marx. technical strategist sur azure.

imageL’application exemple prend un Load Balancer; des noeuds IIS, des noeuds permettant de faire de la recherche, et des noeuds gérant des requetes SMTP externes.

Le principe va etre de monter un architecture comprenant un gros moteur de recherche qui va etre réparti sur plusieurs noeuds azure.

 

 

 

 image

Durant sa session, il nous présentera des points comme : La communication inter roles, les Endpoints non HTTP, les cycles de vies des instances, ou encore les tailles des VMs (ça c’etait le plus simple, un simple attribut dans le fichier xml de config !)

 

 

image Les noeuds web sont basés sur ASP.NET MVC

Le moteur de recherche est Lucene.net, une API populaire portée de java

 

 

 

 

 

 

 

Aprés nous avoir bien expliqué la différence entre les messages reçus par un Web Role et un Worker Role (grosso modo, le web role est soutenu par un IIS qui gère les requêtes entrantes, alors que votre Worker Role reçoit n’importe quel type de message) Steve nous parle un peu des Endpoints :

  • InputEndpoint. Permet d’écouter sur des ports specifiques des requêtes entrantes
  • InternalEndpoint : Permet de communiquer entre différents roles à l’intérieur de votre architecture AZURE : de la communication inter roles

image

Durant sa session, Steve nous montrera même comment se passer des queues, qui ont l’avantage et l’inconvénient de délivrer un message à un seul Endpoint, là où il nous faut dispatcher le message sur tous les noeuds : Il va passer par les Table Storage (je vais rester assez vague sur sa technique, parce que j’ai d’une part, pas tout suivi, et d’autre part, il est lui meme rester assez flou :) )

 image

Bref une démo pur code, bien HardCore, le source code de la session devrait être dispo rapidemment sur le blog du monsieur.

Le blog du monsieur, où le source devrait être rapidemment disponible : http://blogs.smarx.com

,

Juste aprés la session sur Azure Present and Future, voici la même mais cette fois ci pour SQL AZURE

Les nouveautés présentés vont tourner autour de :image

  1. Intégration avancée dans SSMS SQL SERVER 2008 R2
  2. Intégration dans Visual Studio 2010
  3. Reporting
  4. Synchronisation

 

Alors bon, un peu déçu sur le coup car au final, aucune démo ni sur la BI, Reporting et encore moins sur Data Sync.

Il faut croire qu’il faudra attendre les sessions dédiées sur ces sujets !

Sinon pour le reste :

image J’ai pu voir le plan d’exécution d’une query sur SQL AZURE depuis Visual Studio 2010. Sympa !

 

 

 

 

Nous avons droit à une présentation du système de backup, bien que cette partie ne nous concerne pas puisque totalement pris en compte par SQL AZURE.
Par contre possibilité de configurer et gérer les backups.

Système de Clone : Possibilité de Cloner les bases de données :

image

   1: Create Database xx.ProdClone as CLONE of xyz.Prod

D’autres points, en vrac:

  • Support de providers SaaS (Api, template, Meta-data tracking, Support de scénarios)
  • Support du DAC
  • Support de Data Sync
  • Dynamic database splits
  • Merge databases
  • Management across group of databases
  • Aditionnal database size options
  • Multiple database connections
  • fan-out query on multiple databases

Les demandes utilisateurs (je n’ai pas su voir si cela allait être intégré)

  • Support for profiler
  • support spatial
  • Full Text Search
  • Change Tracking
  • CLR
  • BI
  • Encryption
  • Additionnal authentication

Tiens, une info (on s’en serait douté mais bon) “Dallas” utilise SQL AZURE.

Sql Azure codename “Vidalia”

Le principe : Séparer le contrôle des données des données elles-même.

Pas de démo sur le sujet, le principe reste sympa. A tester :)

,

image image

Cette session nous a présenté la plateforme Azure tel qu’elle a été imaginée au départ et vers où elle s’oriente.

Si on résumait l’évolution, on pourrait dire que nous avons eu :

  1. Azure sort en CTP (ça c’est le passé)
  2. Azure supporte des application critiques (ça c’est le présent)
  3. Azure prend en compte le management, la facturation, la localisation, les outils (ça c’est le futur !)

image

Ce qui va nous intéresser bien sur c’est l’évolution de la plateforme !

La session arrive sur ce point à peine 10 minutes après le début. Bon Point !

 

 

Ce que j’ai pu en retenir :

La volonté de créer un environnement de programmation complet, et encourager les best practices.
Notre interlocuteur va d’ailleurs nous détailler comment il voit le dév. des worker roles et de web roles

Une nouveauté intéressante (enfin !) La possibilité de communiquer entre différents worker roles, via des Endpoints exposés, en HTTP ou TCP !

image  image

Le système va plus loin et nous proposera même un système de notifications, pour par exemple être prévenu lors de l’arrivée de nouvelles instances !

image

Imaginez des centaines d’instances communiquant ensembles, et pouvant être prévenues qu’une nouvelle instance est disponible !

Sinon, d’autres divers points  :

  • Support des magasins de certificats dans le cloud
  • Support des providers ASP.NET (authentication, membership …) (ENFIN !)
  • Système de logging et de diagnostiques directement sur le cloud

image

Quelque chose à mon avis de TRES TRES intéressant, c’est l’accès Remote sur les VMs Azure !
Dommage nous n’avons pas eu droit à une démo de cette feature, mais il reste pas mal de sessions, wait and see !

Vous connaissez déjà sous Azure les systèmes de Blob Storage ou encore de Table Storage.
Chacun d’entre eux va bénéficier de quelques nouveautés comme le Random read ou Random writes sur les Blob Storage ou encore le support du batch partitionning sur les Tables.

Une nouveauté vient s’ajouter la dessus : le Drive-Storage : A mon humble avis, un suppléant tout désigné du Blob Storage à terme, il permettra d’utiliser un système standard de gestion de fichier sur AZURE !

Nous avons eu droit à un Slide nous présentant la possibilité de faire des mises à jour à chaud des services hébergés sur vos Roles Instances. Pas mal, à tester !

Enfin, une dernière nouveauté, le Service Management, un ensemble d’api de management de votre environnement Azure, à utiliser en parrallèle avec les API de diagnostics et de Logging

,

Suite du workshop de ce matin.

Voici un aperçu non exhaustif de cette deuxième partie de session

Dynamic Worker Roles

Présentation des worker roles dynamiques : Ou comment répartir les types de travaux sur un worker role, et pouvoir ajouter de nouveaux types de travaux sans redéployer

La solution : Utiliser une file d’attente de stockage: Grosso modo, le principe est d’uploader les taches dans un Blob storage qui est chargé dans le worker role à la volée, dans un AppDomain perso, quand celui en a besoin pour parser un message.

image

Ah, petit exemple avec un service “PingPongService” :)

image

image

Le gros intéret réside surtout dans le fait que le déploiement d’un service mis à jour ne nécessite pas le redéploiement complet du Worker Role.

L’exemple est concluant, le redéploiement d’une nouvelle version d’une assembly est quasi instantanée, sans interruption des autres services du worker Role

image

The MapReduce Pattern

Concept du MapReduce : Diviser un problème énorme à résoudre en plusieurs problèmes plus simple, ou comment résoudre le traitement d’une charge trop importante pour un worker role.

image

A vous de définir comment mapper et réduire votre charge de travail, avec une fonction de répartition:

image

Storage Strategy

Il est déjà 15h quand nous attaquons les différentes stratégies de stockage

Chris Auld nous parle de Partitionning : Parce que les données sont trop volumineuses ou la charge top importante (trop de transactions / sec par ex) il est intéressant de partitionner (ça vous rappelle surement le partionning sous SQL SERVER non ? :) )

Le partitionning est divisé en 3 types : Horizontal, Vertical et Hybrid.

L’Horizontal Partitionning est géré par défaut dans Azure Blobs ou Azure Queues, et à gérer dans SQL Azure

image

Le Vertical Partitionning, va découper les données sur plusieurs noeuds.

image image

L’Hybrid partitionning prend les avantages et défaut des deux modèles précédents

Quelques slides supplémentaires nous présentent les meilleurs façons de partitionner sous SQL AZURE (qui reste une solution à implémenter selon votre propre méthode algorithme)

image

La partie partionning se termine sur une démo des différentes façons de créer une clé de partitionnement.

image

,

Voici le Workshop de la pré Session PDC, autour de l’architecture sur Windows Azure.

image image

Notre interlocuteur nous présente une première session de 2 heures axée sur plusieurs chapitres :

  • Cloud Economics
  • Evolutivité

Tout ceci est un retour d’expérience d’une application présentée en session : TicketDirect

image image

”TicketDirect”, application complètement hébergée sur Windows Azure.

  1. A première vue, c’est du Silverlight, couplé à de l’ASP.NET
  2. Il s’agit de réserver différents billets, comme un billet pour un match de NBA.
  3. Vous pouvez accéder à votre place et la modifier, directement depuis une vue du stade, en Silverlight.
  4. Tout ceci est bien sûr localisé avec du Bings Maps

Tout le workshop va tourner autour de cette architecture mise en place pour l’application TicketDirect, et surtout le retour sur expérience des développeurs.

image

Une session intéressante, pas technique pour un sous (du moins pour cette première partie), pas de code (enfin si, juste un petit sample)

Voilà, en résumé ce que j’en ai retenu. Tout ceci est surement non définitif, et peut être sujet à débat, ma compréhension de l’américain reste proche du néant :)

Modèle économique

En résumé, au niveau économique, le discours reste le même: Azure est économique, si on la compare à une solution maison !

Un petit slide nous présente même le coté Green IT d’une telle solution. C’est sûr c’est à la mode :)

Packaging Windows Azure

Voilà quelque chose qui a déjà été annoncé Vendredi dernier, avec l’annonce du SDK Azure de Novembre, mais pour les retardataires, voici une des nombreuses nouveautés de la plateforme AZURE :

Le support de différents types de VM (Virtual Machines) sur AZURE :

image

Windows Azure sera compartimenté en différents packages de machines virtuelles :

  • Small  : 1 CPU – 1,7 Gb de Ram, 250 Gb de stockage.
  • Medium : 2 CPU – 3,5 Gb de Ram, 500 Gb de stockage.
  • Large : 4 CPU – 7 Gb de Ram, 1000 Gb de stockage.
  • Extralarge : 8 CPU – 15 Gb de Ram, 2000 Gb de stockage.

Scalabilité et élasticité (wow !)

Dommage, je n’ai pas eu le temps de photographier le slide, mais j’ai bien aimé le contenu : “Si vous n’avez pas de gains de performances sur un multi core en local, vous n’en aurez pas plus sur AZURE !”

Pour illustrer tout ça, Ici démo de Parrallel FX, avec et sans programmation parallèle, concluant !

Caching

image image

Démo et présentation des ETags HTML, une des façons de faire du Caching.

Puis la génération de données périodiques générées dans un cache d’un Worker Role.

Petit aperçu de solutions plus classiques comme l’OutPut Caching d’ASP.NET; puis un peu de push de donnée statiques dans un Blob Storage.

Ah un petit slide nous présente une solution peu connue, qui existe depuis l’année dernière : Velocity (Cache distribuée sur plusieurs machines client). Je vous conseille d’ailleurs d’aller faire un tour par msdn, si le sujet vous intéresse.

Bref, pas mal d’idées pour améliorer les performances de son application sous AZURE. Rien de bien révolutionnaire, juste du bon sens, et une bonne connaissance de la plateforme.

Montée en charge

image

Ici petit rappel que la montée en charge peut ou non être prédictible. Ici pas de solutions miracles

  1. Maintenir une sur capacité pour gérer les picks
    1. Peut être utile sur les nodes Azure Storage
    2. Peut être moins évident sur SQL Azure, mais reste une bonne piste
  2. Ajouter ou supprimer de la capacité en temps réel
    1. Ajout de web roles
    2. Ajout de workers roles

Monitoring

image

Accessible depuis le SDK Azure de Novembre, où vous pourrez facilement mesurer les métriques de vos applications dans le Cloud

Utilisation de Microsoft.WindowsAzure.Diagnostics.*

Voilà pour une première preview  de cette première partie du WorkShop Azure !

,

Je viens de publier la deuxième partie de ma série d’articles consacrée à la migration d’une application existante vers Azure.

Aujourd’hui, il s’agit de “Load balancer” (ou répartir la charge en français ) la première partie de la plateforme déjà en place sur Azure,  sur plusieurs noeuds (web roles).

Nous utiliserons le système de gestion de sessions personnalisés pour SQL Azure Database pour arriver à nos fins.

Voici un petit aperçu de ce que nous obtenons à la fin :

/content/cfc49beb-6279-40dc-ad75-b96fc6bf0f36/image13.png

Plateforme Azure : Migrez ! Part II

Bonne lecture :)

Je viens d’écrire un article sur la migration sur Azure. Il vient d’être publié sur Techheadbrothers

Il s’agit de migrer une application complète sur Azure. Cette migration aura lieu en plusieurs étapes, et l’objectif de ce premier article est de migrer

  1. L’application Web
  2. La base de données

Je vous invite donc à le lire, vous trouverez pas mal d’infos sur Azure, ainsi que sur la migration vers SQL Azure Database.

Un petit résumé :

“Lors de la PDC 2009, qui aura lieu en Novembre, la plateforme AZURE va passer de son statut de BETA à Release Commerciale. Les principales briques métiers qui la composent, avec dernièrement l’arrivée de SQL Azure Database, sont maintenant à disposition du grand public en Béta-Test.

Il est donc temps de songer à migrer nos applications sur le Cloud.”

Un petit schéma de l’architecture de l’application à migrer, et qui fait l’objet de cet article :

/content/8e779ecf-b16a-4406-8eb7-6f4d318e6467/image1.png

Bonne lecture !