Et voilà la dernière session de la PDC, enfin la session que j’attendais depuis le début (j’exagère à peine) En même temps on se garde le meilleur pour la fin :)

Présenté par Marc Scurell, Lead PM sur le sujet. Le but de la présentation est biensur de nous présenter SQL Azure Data Sync sorti le jour du KeyNote (bon ça a fait moins de bruit que la sortie de SL4 beta, je vous l’accorde volontiers !)

Basé sur le Sync Framework V2 , Marc nous fait un tour d’horizon du framework, avec pas mal de théorie, intéressant pour ceux qui n’ont pas suivi mes webcasts et articles ;)

imageimage

SQL Azure Data Sync

image

Le Wizard qui va permettre de connecter une base de données locale avec SQL Azure, avec une base de données local SQL SERVER 2008.

Tout se passe par le wizard, qui va créer toute l’architecture sur SQL AZURE, parfait réplica de la base locale. A noter que le tracking des changements se fait via le Change Tracking de SQL SERVER 2008, mais j’ai pu voir encore des tables supplémentaires contenant des métadatas encore nécessaires pour faire fonctionner le tout.

 

 

image

Vient ensuite une démo de synchronisation entre SQL AZURE et SQL SERVER CE. Ce qu’est sympa c’est que le template VS pour SQL CE va générer via son wizard non seulement la première synchronisation mais aussi le code nécessaire pour reproduire une synchronisation complète en .NET

Du coup la synchro entre une base de données sql ce et sql azure se résume en 1 ligne !

image

Pour aller plus loin; on peut meme imaginer des scénarios 3 Tiers, avec de la logique métier officiant entre les bases de données locale et les bases SQL Azure :

image

 

Synchronisation avec un client Silverlight

Une démo très très sympa vient conclure ma PDC, une synchronisation entre SQL Azure et un client Silverlight (où je vous rappelle nous n’avons PAS ADO.NET et encore moins la possibilité d’accéder à une base Compact)

Le principe est donc de synchroniser la base SQL Azure avec l ‘IsolatedStorage local disponible depuis SL :

image Ca, ça m’a bien bluffé, ils ont écrit le SyncProvider spécial pour l’IsolatedStorage. Espérons qu’ils le fourniront en sample :)

Pour finir la roadmap de Sync Framework : On s’oriente vers début 2010 avec la sortie du Sync Framework V2.1 avec le full support Azure et la V3 en cours d’année.

image

Voilà la PDC c’est fini pour cette année, et contrairement à l’année passée, aucune prochaine date n’a été annoncée, on va donc je pense revenir à un cycle plus classique de 3 ou 4 ans avant la prochaine PDC !

J’en profite au passage pour remercier Laurent de Techheadbrothers et Thomas de Microsoft qui m’ont permis d’assister cette année à ce grand évènement. Merci !

, ,

Déployer un site web sous Azure est quelque chose de parfaitement maitrisé, simple et efficace.

Mieux, le load balancing se résume à une ligne de configuration dans un fichier xml azure. Ainsi, en quelques clics, il est possible de déployer plusieurs instances, ou noeuds, ou web roles, le tout load balancé automatiquement.

Que du bonheur donc !!

… ou pas :)

Petit problème du jour : Les noeuds (web roles) Azure sont “State less” : Ils ne gèrent pas l’affinité de la session.

Du coup, vous n’êtes pas garantie qu’une requête HTTP soit correctement redirigée vers le bon web role.

Bref un site web avec une gestion poussée de la session ne peut pas être load balancé en l’état actuel des choses, sur AZURE.

Pour pallier à ce problème, il est possible d’utiliser un système personnalisé de gestion des sessions. Il existe de base un fournisseur (provider) de session SQL : le SqlSessionsStateStore.

Malheureusement pour nous, celui ne fonctionne PAS sur azure, dû notamment à l’utilisation de fonction SQL non autorisées dans SQL AZURE pour le moment

image

Utilisation de la procédure stockée système sysobjects non autorisé sur SQL Azure

Autre problème : Le provider SQL utilise l’agent SQL pour effacer les sessions expirées. Et ce fameux agent n’est pas disponible sur SQL AZURE…

Il ne manque pas grand chose pour faire fonctionner ce système sur Sql Azure

  1. Résoudre les problèmes de T-SQL non autorisé
  2. Utiliser un Worker Role pour réaliser le travail de l’agent SQL

J’ai donc développé une solution complète qui résout ces problèmes et permet ainsi de gérer la session d’un site web load balancé sous Azure !

Note : Pour autoriser le fonctionnement de votre fournisseur de session personnalisé, n’oubliez pas d’activer l’option “Enable Full Trust” de votre Web Role

image

Vous trouverez la solution complète sur Codeplex à l’adresse suivante : http://azuresqlsession.codeplex.com/

Au final, vous pourrez mettre facilement en place :

Un site web gérant la session via le fournisseur de session personnalisé pour SQL AZURE

image

En attendant votre clé Sql Azure (ptin 15 jours …), vous pouvez toujours récupérer le Training Kit Sql Azure du mois d’Aout

Evidemment dans cette version vous trouverez notamment des chapitre concernant Sql Azure :

  • Introduction to SQL Azure
  • Building Applications using SQL Azure
  • Scaling Out with SQL Azure
  • Mais aussi toute une série de samples dédié à ce futur système de base de données in the cloud :

  • Managing Logins and Security in SQL Azure
  • Creating Objects in SQL Azure
  • Migrating a Database Schema to SQL Azure
  • Moving Data Into and Out Of SQL Azure using SSIS
  • Building a Simple SQL Azure App
  • Scaling Out SQL Azure with Database Sharding
  • Bon téléchargement

    Voilà depuis ce matin, vous avez la possibilité de tester GRATUITEMENT Sql Azure Database.

    Pour se faire, direction le site MSDN de SQL AZURE : http://msdn.microsoft.com/en-us/sqlserver/dataservices/default.aspx

    Il vous faudra un compte Connect, seul moyen d’obtenir une clé.

    Clé qui d’ailleurs mettra quelques temps à arriver (sachant que je n’ai aucune idée du “temps” que l’attente peut représenter )

    Voilà voilà … bon ben … j’attends (hein bon sait’on jamais …)

    Tiens je vais faire du TFS pour passer le temps moi là tout de suite !

    Hum ça sent bon tout ça !

    image

    Pour ceux qui s’intéressent à SDS (Sql Data Services) une annonce importante a été faite hier sur le blog de la team SDS.

    Bizarrement, la nouvelle est passée assez inaperçue alors que les changements au bout vont être radicaux !

    Pour faire simple, adieu le modèle ACE (Authority, Container, Entity) et bonjour le modèle relationnel classique, avec en objectif premier, devenir une base de données relationnelle exposé en service “in the cloud

    Morceau choisi du post qui expose bien leurs objectifs :

    We are providing an experience where a developer can take an existing application and just change the connection string to point it to the cloud and have it just work

    Ca veut bien dire ce que ça veut dire : Prenez votre application qui fonctionne aujourd’hui en réseau local, migrez votre base de données sur SDS, changez votre chaine de connexion et … lancez !

    Alors au niveau protocole de communication, sérialisation des données, on entend parler de TDS pour “Tabular Data Stream”. C’est déjà le mode standard de communication entre deux instantes SQL SERVER. Le tout bien sûr encapsulé dans du SSL.

    Maintenant, que devient le fameux modèle ACE ? Et bien, vous aurez toujours la possibilité d’utiliser le service Windows Azure Storage qui propose déjà cette fonctionnalité.

    On peut donc penser que les prix de SDS seront donc différents de ceux d’Azure Storage; et au final c’est l’utilisateur qui choisira quel est le modèle le plus économique à utiliser.

    Bref de gros gros gros changements en perspective !

    Juste une petite mise à jour pour vous prévenir que le client Silverlight Omega SDS, dont je vous parlais dans ce post, a été mis à jour récemment.

    Merci à Monsieur Gaurav Mantri de la société Cerebra (en charge du développement de la gamme d’outils Omega) de son mail à ce sujet.

    Alors le principe reste le même bien-sur, mais plusieurs améliorations font leur apparition.

    Tout d’abord la possibilité de voir le tout sous forme de TreeView, ou la possibilité d’avoir un menu contextuel, ou encore un système de tabcontrols pour avoir un meilleur aperçu de vos données

    Bref pas mal de changements qui vous permettront de mieux gérer vos containers SDS !

    image image

    Je viens de tomber sur un petit projet sympa qui rajoute des Cmd-Lets à votre console Powershell pour gérer vos Containers et autres Entities stockées dans SDS

    Vous trouverez le projet sur CodePlex : CodePlex SDSSH

    Une fois installé, n’oubliez pas d’enregistrer vos Cmd-Lets dans votre script powershell:

    Pour rappel : Voir les cmd-lets et Providers (Snap In) “enregistrables” :

    * Get-PSSnapin –Registered

    Enregistrer un snapin :

    * Add-PSSnapin “Nom du snappin”

    Dans notre cas :

    image

    Après à l’utilisation, c’est du SDS pour PowerShell, rien de plus :)

    Get-SdsAuthorities YOUR_LOGIN YOUR_PASSWORD "from e in entities select e "
    Get-SdsContainers YOUR_LOGIN YOUR_PASSWORD YOURCONTAINER "from e in entities select e"
    Get-SdsEntities YOUR_LOGIN YOUR_PASSWORD YOURCONTAINER YOURKINDENTITIES "from e in entities select e"

     image

    Au passage, notez l’utilisation du debug-write qui permet de débugguer nos scripts et faire du pas à pas. Pratique !

    ,