Windows Azure - la plateforme Cloud de Microsoft – permet d’héberger des données, des services et des applications, mais ce n’est pas tout ! Comment profiter au mieux des fonctionnalités offertes par Windows Azure dans vos applications, non seulement en terme de déploiement, configuration et monitoring, mais aussi grâce à ses briques fonctionnelles comme Access Control Services, et autres composants très utiles à découvrir. Nous partirons d’une application type que nous migrerons vers Windows Azure. --- Cette session est la 3ème du parcours « De A à Z : Concevoir et développer une solution applicative ». Elle peut être suivie de manière totalement indépendante puisque seul le scénario métier sert de fil rouge dans le parcours. La session se déroule en 2 temps : 1. Mise en œuvre basique de la techno 2. Intervention d’un expert de la techno qui va proposer d’améliorer l’application ou l’expérience en utilisant des techniques nouvelles ou plus avancées ou peu connues et pourtant si pratiques.
2. CLO207 De A à Z: Pourquoi et
comment utiliser Azure dans
son application ?
07/02/2012
Stéphanie Hertrich Florent Santin
Microsoft Infinite Square
http://blogs.msdn.com/b/steph http://blogs.developeur.org/azr
e a
3. Agenda
De A à Z : l’application de départ
Pourquoi aller vers Azure?
Comment
Base de données
Packaging
Amélioration du code
Réversibilité
Scénarios avancés
Synthèse
4. Le besoin métier
Application Cave à Vins
Téléphone, tablette, Desktop,
multi-plateforme
Cas d’utilisation différents
Catalogue de tous les vins
Gestion de ma Cave
Aide à l’achat
5. D’où part-on ?
Silverlight Silverlight iPhone, …
pour WP Desktop
Client
WCF Data WCF Data Client
Services Services OData
Serveur Application Web http://localhost:8090/
(on premise) CaveAVinsDataService.svc
WCF
Stockage
Data
Photos
Service
Système de
Sql
fichiers
Server
7. Pourquoi aller vers le Cloud
Simplification de l’hébergement
Pas d’infrastructure à gérer
Pas de maintenance hardware ou Software
Elasticité
Adapter ma capacité d’absorption de charge à mon
taux de réussite
Pouvoir proposer de la haute disponibilité
8. Condition pour aller vers le
Cloud
Je souhaite :
Disposer d’une approche réversible
Le retour en arrière doit être possible et simple !
Ne pas changer mes habitudes de développement
Pas de changement d’environnement de
développement
Pas ou peu de nouvelles compétences à acquérir
9. Architecture en l’état
Silverlight Silverlight iPhone, …
pour WP Desktop
Client
WCF Data WCF Data Client
Services Services OData
Serveur Application Web
(on premise)
WCF
Stockage
Data
Photos
Service
Système de
Sql
fichiers
Server
11. Schéma d’architecture
Silverlight Silverlight iPhone, …
pour WP Desktop
Client
WCF Data WCF Data Client
Services Services OData
Serveur Application Web Serveur
(on premise) WCF
(Azure)
Stockage
Data
Photos
Service
Système de SQL
Sql Azure
fichiers
Server
12. Base de données : simple ! SQL
Azure
En résumé !
Migration du schéma vers SQL Azure
Via un assistant: http://sqlazuremw.codeplex.com/
En utilisant SQL Server Management Studio
Au travers du portail Web
Une adaptation de schéma peut être nécessaire
Pas de requêtes base à base, de types CLR, index
obligatoires…
Aucun impact sur le code de l’applicatif Web
Modification de la chaine de connexion dans fichier de
configuration
13. Base de données : avancée SQL
Azure
Sharding pour SQL Azure
Limitation de SQL Azure
Une seule base
Nombre de transaction simultanées caées
SQL Azure Federation
Pour « Caves à vin », augmente les performances d’accès
T1 T2 T3 T4 T5 T1 T2 T3 T4 T5
T6 T7 T8 T9 T10
T6 T7 T8 T9 T10
Une seule grosse
T11 T12 T13 T14 T15 base de données
T11 T12 T13 T14 T15
T16 T17 T18 T19 T20
T16 T17 T18 T19 T20
14. Schéma d’architecture
Silverlight Silverlight iPhone, …
pour WP Desktop
Client
WCF Data WCF Data Client
Services Services OData
Serveur Application Web Serveur
(on premise) WCF
(Azure)
Stockage
Data
Photos
Service
Système de SQL
fichiers Azure
16. Schéma d’architecture : avant
Silverlight Silverlight iPhone, …
pour WP Desktop
Client
WCF Data WCF Data Client
Services Services OData
Serveur Application Web Serveur
(on premise) WCF
(Azure)
Stockage
Data
Photos
Service
Système de SQL
fichiers Azure
17. Schéma d’architecture : après
WCF Data WCF Data Client
Client Services Services OData
Serveur Routeur / répartiteur de
(Azure) charge
Stockage WCF Data Stockage WCF Data
Photos Services Photos Services
Système de Entity Système de Entity
fichier Framework fichier Framework
Instance (rôle web) Instance (rôle web)
Service hébergé
SQL Azure
18. Packaging et déploiement :
avancé
Pièges à éviter :
Inclure dans le package les différents dépendances
« Copie locale » des DLL
Scripter la configuration de la machine virtuelle Azure
si nécessaire
Modification de IIS, écriture dans base de registre,
installation d’éléments dans le GAC…
Installation des composants tiers via des « Startups
Tasks »
19. Packaging et déploiement :
avancé
Deboggage classique en local dans l’émulateur / Visual
Studio
Déboggage d’un package déjà déployé
IntelliTrace
Profiler
Surveiller un déploiement
Compteurs de performances et capture de logs
Activer le bureau distant
21. Azure et gestion de
configuration
ServiceConfiguration.cscfg
Fichier de configuration plus haut
Applicatif Web
que le web.config ou
Web.config
machine.config
Permet de modifier Instance (rôle web)
dynamiquement la configuration
de toutes les instances Applicatif Web
Web.config
RoleEnvironment.
Instance (rôle web)
GetConfigurationSettingValue("value"
);
Service
Configuration.cscfg
Pour « Caves à vin », permet de Service hébergé
changer de base de données à chaud
22. Schéma d’architecture : après
WCF Data WCF Data Client
Client Services Services OData
Serveur Routeur / répartiteur de
(Azure) charge
Stockage WCF Data Stockage WCF Data
Photos Services Photos Services
Système de Entity Système de Entity
fichier Framework fichier Framework
Instance (rôle web) Instance (rôle web)
Service hébergé
SQL Azure
23. Manipulation de système de
fichiers
Utilisation du stockage Windows Azure
Blobs pour remplacer le système de fichier
Stockage partagé entre chaque serveur et hautement
performant / disponible / scalable
Le système de fichier des
instances Windows Azure
n’est pas persistant !
Perte de données en cas
Applicatif Web
de redémarrage ou Blobs
Instance (rôle web)
d’ajout d’instance
Applicatif Web
Pour « Caves à vin », Instance (rôle web) Stockage
permet de centraliser les Service hébergé Windows Azure
24. Réversibilité
Objectif :
Code compatible pour une exécution sur Windows
classique…
… et sur l’environnement Windows Azure !
Demande un minimum d’effort d’abstraction de code
Application modulaire pour :
Gestion de la configuration
Manipulation du système de fichier
Gestion des logs
Manipulation du stockage Windows Azure
Test sur variable RoleEnvironment.IsAvailable !
Pour « Caves à vin », permet le retour en arrière !
26. Schéma d’architecture
WCF Data WCF Data Client
Client Services Services OData
Serveur Routeur / répartiteur de
(Azure) charge
Stockage WCF Data WCF Data
Stockage
Photos Services Services
Photos
Système de Entity Système de Entity
fichier Framework fichier Framework
Instance (rôle web) Instance (rôle web)
Service hébergé
Stockage
Blobs
Windows
Azure SQL Azure
27. Utilisation avancée de Windows
Azure
Cache distribué
Partage de données entre instances
Windows Azure AppFabric Cache
Pour « Caves à vin », optimise les accès aux données
statiques en BDD
CDN
Stockage des données le plus prêt possible des utilisateurs
Pour « Caves à vin », augmente les performances pour les
utilisateurs Français
Traffic Manager
Exécution d’une application sur plusieurs DataCenter
Pour « Caves à vin », permet de se déployer à
l’international
28. Access Control Services
Windows Azure permet de faire de l’authentification
fédérée
Un intermédiaire de gestion d’identité pour N providers
LiveID, Google, Facebook, Yahoo, ADFS…
Pour « Cave à vins » : intéressant pour identifier les
utilisateurs !
29. Access Control Services +
Windows Phone + OData
1 credentials
2 token
WS-Federation
OpenID
OAuth Protection
3 http Request modules
with token 5
request 4 request with token
+ claims
6 Compute
results or
security
7 OData results or exception
security exception OData Service
NB : Le userId stocké dans le token = id du propriétaire du vin dans la BDD
31. Récapitulatif !
Les étapes clés :
1. Migration base de données
2. Migration applicatif Web
3. Adaptation de l’applicatif Web au contexte Cloud
1. Images
2. Configuration
4. Utilisation des services avancés Windows Azure
« Caves à vin » est dans le Cloud (et pas) et utilise au
mieux les possibilités offertes par Windows Azure!
32. Synthèse
Pivot
Silverlight Viewer
Objective-C
Pages
(Silverligh
WP7 iPhone Nav Desktop
Objets t)
Android
WCF Data
Services OData Client
métier WCF Data Client
Services
OData Client
Access Control Services
Serveur
Photo Upload (Azure)
Service WCF Data Services
Service File Blob
System Client
Entity Framework
File System Blobs SQL Azure Données
Sql Server
DB
33. Livre sur Windows Azure
Premier ouvrage rédigé en
Français
Sur l’intégralité de la
plateforme Windows Azure
Disponible dès aujourd’hui!
Consultation et achat
possible sur le stand (52)
des éditions ENI
34. Des ressources Windows Azure
gratuites
Testez Windows Azure Abonnés MSDN, vous
gratuitement pendant bénéficiez de
90 jours Windows Azure
http://aka.ms/ http://aka.ms/
tester-azure-90j activer-azure-msdn
35. Pour aller plus loin
Prochaines sessions des Dev Camps
Chaque semaine, les 10
Live Open Data - Développer des applications riches avec le
février
DevCamps 2012
16
Meeting protocole Open Data
ALM, Azure, Windows Phone, HTML5, OpenData février
Live
Meeting
Azure series - Développer des applications sociales sur
la plateforme Windows Azure
2012
http://msdn.microsoft.com/fr-fr/devcamp
17
Live Comprendre le canvas avec Galactic et la librairie
février
Meeting three.js
2012
Téléchargement, ressources 21
février
Live La production automatisée de code avec CodeFluent
Meeting Entities
et toolkits : RdV sur MSDN 2012
2 mars Live Comprendre et mettre en oeuvre le toolkit Azure pour
http://msdn.microsoft.com/fr-fr/ 2012 Meeting Windows Phone 7, iOS et Android
6 mars Live
Nuget et ALM
2012 Meeting
Les offres à connaître 9 mars
2012
Live
Meeting
Kinect - Bien gérer la vie de son capteur
90 jours d’essai gratuit de Windows 13 mars
2012
Live
Meeting
Sharepoint series - Automatisation des tests
Azure 14 mars Live TFS Health Check - vérifier la bonne santé de votre
www.windowsazure.fr 2012 Meeting plateforme de développement
15 mars Live Azure series - Développer pour les téléphones, les
2012 Meeting tablettes et le cloud avec Visual Studio 2010
Jusqu’à 35% de réduction sur Visual 16 mars Live Applications METRO design - Désossage en règle d'un
Studio Pro, avec l’abonnement MSDN 2012 Meeting template METRO javascript
20 mars Live Retour d'expérience LightSwitch, Optimisation de
www.visualstudio.fr 2012 Meeting l'accès aux données, Intégration Silverlight
23 mars Live OAuth - la clé de l'utilisation des réseaux sociaux dans
2012 Meeting votre application