(résumé de la session des TechDays 2010)
Avec Sebastien Pertus (Bewise) et Thomas Conté (Microsoft).
Dans cette session il s’agit de migrer en live une application ASP.NET classique vers Azure.
Introduction et rappels
On part d’une application avec des services, une base de données. On va migrer une partie de ses briques (notamment la partie Web et base de données) vers le nuage, ce qui va permettre la facturation à l’utilisation et la montée en charge.
Migration vers azure: principes
- Le Web Role permet de migrer naturellement des applications
- Stockage: blob storage ou table storage
- SQL Azure: Migration Wizard qui va aider la migration.
- Azure AppFabric: permet de garder la connectivité entre ce qui est dans le nuage et ce qui est resté dans le SI de l’entreprise.
Démo
Application ASP.NET 2.0 et base SQL Server 2008 qui utilise les ASP.NET memberships. Constituée d’un assembly business et d’un assembly Web.
On va:
- migrer vers SQL Azure;
- créer un Web Role;
- retoucher ce qui ne peut pas être migré sur Azure, dans le cas de cette application les fichiers joints, qui vont être stockés dans les “blob containers”;
- utiliser la AppFabric service bus pour se connecter à un Active Directory déjà existant au sein de l’entreprise.
Pour migrer la base, on peut utiliser SSI ou utiliser le “SQL Azure Migration Wizard”, une application de CodePlex qui permet de migrer le schéma et les données. Cette application génère un script SQL. Elle permet de se connecter au compte Azure et exécute directement le script de migration. Il y a quelques erreurs qui sont dues aux différentes entre SQL Server et SQL Azure, mais aussi à des spécificités de la base de données.
Autre option: SSIS.
On crée ensuite un Web Role vide:
On y ajoute un rôle “Web” vide (cela ajoute un fichier WebRole.cs qui est nécessaire au fonctionnement de l’application Azure).
En compilant, on a une erreur:
On passe donc en .NET 3.5. Nouvelle compilation, tout se passe bien.
Dans l’application, on change la chaîne de connexion:
On lance alors la DevFabric, qui simule Azure en local tout en requêtant nos données SQL Azure puisqu’on vient de les déployer.
Jusque là, c’était le plus facile.
On ajoute une référence au SDK Azure pour pouvoir utiliser les blob containers.
On ajoute un application setting pour accéder au blob container:
On met alors à jour le code qui utilisait des fichiers. Ajout de référence au SDK Azure, puis du code spécifique Azure. Pour cela on utilise le code des samples du SDK:
Une application CodePlex, Azure Storage Explorer, permet de voir le contenu du storage Azure en direct pour vérifier que tout fonctionne correctement.
Dernière étape: donner l’accès aux données de l’Active Directory. On expose pour cela un service WCF qui expose du netTcpBinding hébergé sur IIS (pour cela il faut IIS7 et ajouter la feature Windows “WCF non-HTTP Activation”). On rajoute un service bus dans la AppFabric pour faire le lien entre notre service local et l’application en ligne.
Points d’attention
Nouveauté: depuis février 2010 on a les Drives, qui permettent d’attacher un VHD et d’y accéder en tant que disque NTFS. Par contre du coup on n’a plus la montée en charge et le CDN des blobs.
Comments