35
palais des congrès Paris 7, 8 et 9 février 2012

De A à Z: Pourquoi et comment utiliser Azure dans son application ?

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

palais des congrès Paris

7, 8 et 9 février 2012

Page 2: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

07/02/2012

Stéphanie HertrichMicrosofthttp://blogs.msdn.com/b/stephe

CLO207 De A à Z: Pourquoi et comment utiliser Azure dans son application ?

Florent SantinInfinite Squarehttp://blogs.developeur.org/azra

Page 3: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

De A à Z : l’application de départPourquoi aller vers Azure?Comment Base de données Packaging Amélioration du code Réversibilité Scénarios avancés

Synthèse

Agenda

Page 4: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

Application Cave à VinsTéléphone, tablette, Desktop, multi-plateformeCas d’utilisation différents Catalogue de tous les vins Gestion de ma Cave Aide à l’achat

Le besoin métier

Page 5: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

D’où part-on ?

Sql Server

WCF Data Services

WCF Data Services

Silverlight pour WP

Silverlight Desktop

iPhone, …

Client OData

Client

Serveur(on premise)

Système de fichiers

Application Web

Stockage Photos

WCF Data

Service

http://localhost:8090/CaveAVinsDataService.svc

Page 6: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

DEMO : le back-end existant

Page 7: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

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é

Pourquoi aller vers le Cloud

Page 8: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

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

Condition pour aller vers le Cloud

Page 9: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

Architecture en l’état

Sql Server

WCF Data Services

WCF Data Services

Silverlight pour WP

Silverlight Desktop

iPhone, …

Client OData

Client

Serveur(on premise)

Système de fichiers

Application Web

Stockage Photos

WCF Data

Service

Page 10: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

DEMO : Migration de base de la données

Page 11: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

Schéma d’architecture

WCF Data Services

WCF Data Services

Silverlight pour WP

Silverlight Desktop

iPhone, …

Client OData

Client

Serveur(on premise)

Système de fichiers

Serveur(Azure)

SQL Azure

Application Web

Stockage Photos

WCF Data

Service

Sql Server

Page 12: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

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

Base de données : simple !SQL Azure

Page 13: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

Sharding pour SQL Azure Limitation de SQL Azure

Une seule base Nombre de transaction simultanées caées

SQL Azure FederationPour « Caves à vin », augmente les performances d’accès

Base de données : avancéeSQL Azure

T1 T2 T3 T4 T5

T6 T7 T8 T9 T10

T11 T12 T13 T14 T15

T16 T17 T18 T19 T20

T1 T2 T3 T4 T5

T6 T7 T8 T9 T10

T11 T12 T13 T14 T15

T16 T17 T18 T19 T20

Une seule grosse base de données

Page 14: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

Schéma d’architecture

WCF Data Services

WCF Data Services

Silverlight pour WP

Silverlight Desktop

iPhone, …

Client OData

Client

Serveur(on premise)

Système de fichiers

Serveur(Azure)

SQL Azure

Application Web

Stockage Photos

WCF Data

Service

Page 15: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

DEMO : Packaging et publication

Page 16: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

Schéma d’architecture : avant

WCF Data Services

WCF Data Services

Silverlight pour WP

Silverlight Desktop

iPhone, …

Client OData

Client

Serveur(on premise)

Système de fichiers

Serveur(Azure)

SQL Azure

Application Web

Stockage Photos

WCF Data

Service

Page 17: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

Schéma d’architecture : après WCF Data

ServicesWCF Data Services

Client ODataClient

Serveur(Azure)

SQL Azure

Service hébergé

Routeur / répartiteur de charge

Instance (rôle web)

Entity Framework

WCF Data Services

Système de fichier

Stockage Photos

Instance (rôle web)

Entity Framework

WCF Data Services

Système de fichier

Stockage Photos

Page 18: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

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 »

Packaging et déploiement : avancé

Page 19: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

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

Packaging et déploiement : avancé

Page 20: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

DEMO : Startup Task et bureau distant

Page 21: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

ServiceConfiguration.cscfg Fichier de configuration plus

haut que le web.config ou machine.config

Permet de modifier dynamiquement la configuration de toutes les instances

RoleEnvironment.GetConfigurationSettingValue("value");

Pour « Caves à vin », permet de changer de base de données à chaud

Azure et gestion de configuration

Instance (rôle web)

Applicatif Web

Web.config

Instance (rôle web)

Applicatif Web

Web.config

ServiceConfiguration.csc

fg

Service hébergé

Page 22: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

Schéma d’architecture : après WCF Data

ServicesWCF Data Services

Client ODataClient

Serveur(Azure)

SQL Azure

Service hébergé

Instance (rôle web)

Entity Framework

WCF Data Services

Système de fichier

Routeur / répartiteur de charge

Stockage Photos

Instance (rôle web)

Entity Framework

WCF Data Services

Système de fichier

Stockage Photos

Page 23: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

Le système de fichier des instances Windows Azure n’est pas persistant ! Perte de données en

cas de redémarrage ou d’ajout d’instance

Pour « Caves à vin », permet de centraliser les images

Manipulation de système de fichiers

Instance (rôle web)

Applicatif Web

Instance (rôle web)

Applicatif Web

Blobs

Service hébergé

Stockage Windows

Azure

Utilisation du stockage Windows Azure Blobs pour remplacer le système de fichier Stockage partagé entre chaque serveur et

hautement performant / disponible / scalable

Page 24: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

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 !

Réversibilité

Page 25: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

DEMO : Configuration et réversibilité

Page 26: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

Schéma d’architectureWCF Data Services

WCF Data Services

Client ODataClient

Serveur(Azure)

SQL Azure

Service hébergé

Routeur / répartiteur de charge

BlobsStockage Windows

Azure

Instance (rôle web)

Entity Framework

WCF Data Services

Stockage Photos

Instance (rôle web)

Entity Framework

WCF Data Services

Système de fichier

Système de fichier

Stockage Photos

Page 27: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

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

Utilisation avancée de Windows Azure

Page 28: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

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 !

Access Control Services

Page 29: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

Access Control Services + Windows Phone + OData

NB : Le userId stocké dans le token = id du propriétaire du vin dans la BDD

1 credentials

2 token

OData Service

3 http Requestwith token

4 request with token5 request + claims

7 OData results or security exception

6 Compute results or security exception

OAuth Protection modules

WS-Federation

OpenID

Page 30: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

DEMO : Access Control Services

Page 31: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

Les étapes clés :1. Migration base de données2. Migration applicatif Web3. Adaptation de l’applicatif Web au contexte Cloud

1. Images2. 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!

Récapitulatif !

Page 32: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

Service

WP7

WCF Data Services

Silverlight

Android

OData Client

Objets métier

Pages

Nav

Synthèse

Client

Serveur(Azure)

Données

Desktop

WCF Data Services

Pivot Viewer

(Silverlight)

iPhone

OData Client

Objective-C

Sql Server

Entity Framework

WCF Data Services

SQL Azure DB

Access Control Services

BlobsFile System

Photo Upload Service

File System

Blob Client

Page 33: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

Premier ouvrage rédigé en FrançaisSur l’intégralité de la plateforme Windows Azure

Disponible dès aujourd’hui!Consultation et achat possible sur le stand (52) des éditions ENI

Livre sur Windows Azure

Page 34: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

Des ressources Windows Azure gratuites

Testez Windows Azure gratuitement pendant 90 jours http://aka.ms/

tester-azure-90j

Abonnés MSDN, vous bénéficiez de Windows Azure http://aka.ms/

activer-azure-msdn

Page 35: De A à Z: Pourquoi et comment utiliser Azure dans son application ?

Chaque semaine, les DevCampsALM, Azure, Windows Phone, HTML5, OpenDatahttp://msdn.microsoft.com/fr-fr/devcamp

Téléchargement, ressources et toolkits : RdV sur MSDNhttp://msdn.microsoft.com/fr-fr/

Les offres à connaître90 jours d’essai gratuit de Windows Azure www.windowsazure.fr

Jusqu’à 35% de réduction sur Visual Studio Pro, avec l’abonnement MSDN www.visualstudio.fr

Pour aller plus loin

10 février 2012

Live Meeting

Open Data - Développer des applications riches avec le protocole Open Data

16 février 2012

Live Meeting

Azure series - Développer des applications sociales sur la plateforme Windows Azure

17 février 2012

Live Meeting

Comprendre le canvas avec Galactic et la librairie three.js

21 février 2012

Live Meeting

La production automatisée de code avec CodeFluent Entities

2 mars 2012

Live Meeting

Comprendre et mettre en oeuvre le toolkit Azure pour Windows Phone 7, iOS et Android

6 mars 2012

Live Meeting

Nuget et ALM

9 mars 2012

Live Meeting

Kinect - Bien gérer la vie de son capteur

13 mars 2012

Live Meeting

Sharepoint series - Automatisation des tests

14 mars 2012

Live Meeting

TFS Health Check - vérifier la bonne santé de votre plateforme de développement

15 mars 2012

Live Meeting

Azure series - Développer pour les téléphones, les tablettes et le cloud avec Visual Studio 2010

16 mars 2012

Live Meeting

Applications METRO design - Désossage en règle d'un template METRO javascript

20 mars 2012

Live Meeting

Retour d'expérience LightSwitch, Optimisation de l'accès aux données, Intégration Silverlight

23 mars 2012

Live Meeting

OAuth - la clé de l'utilisation des réseaux sociaux dans votre application

Prochaines sessions des Dev Camps