54
Windows Azure pour les applications mobiles, tablettes, multi-écrans Thomas Conté Architecte Microsoft http://twitter.com/tom conte

ReMix11 Paris: Windows Azure & développement mobile

Embed Size (px)

Citation preview

Page 1: ReMix11 Paris: Windows Azure & développement mobile

Windows Azure pour les applications mobiles, tablettes, multi-écrans

Thomas ContéArchitecteMicrosoft

http://twitter.com/tomconte [email protected]

Page 2: ReMix11 Paris: Windows Azure & développement mobile

Agenda

Pourquoi le Cloud pour les Devices?Cas client: Mobiles RepublicTour d’horizon de Windows Azure

IdentitéStockageServicesCommunications

Pourquoi Windows Phone + Windows Azure?Windows Azure Toolkit for Windows PhoneEt pour les devices non Microsoft?

Page 3: ReMix11 Paris: Windows Azure & développement mobile

Pourquoi le Cloud?

Services universels, accessibles par tous les matérielsInfrastructure à la demande, sans ticket d’entréeInfrastructure évolutive pour faire face aux pics ou à la montée en charge (e.g. effet Marketplace)Platform As A Service (PAAS): vous vous concentrez sur l’application, pas l’infrastructure

Page 4: ReMix11 Paris: Windows Azure & développement mobile

Mobiles Republic

vidéo

Page 5: ReMix11 Paris: Windows Azure & développement mobile

Architecture de News Republic

Page 6: ReMix11 Paris: Windows Azure & développement mobile

Toolkits Windows Azure pouriOS, Android & Windows Phone

annonce

Page 8: ReMix11 Paris: Windows Azure & développement mobile

Vue d’ensemble de Windows Azure

Compute

Storage

Database

Environnement d’exécution évolutifSupporte .NET, C++, PHP, Ruby, Python, …Gestion automatisée des servicesStockage évolutif, hautement disponibleBlobs, Tables, Queues, DrivesAPIs REST et nombreuses librairies

Base de données relationnelle SQLOutils & développement familiers

Page 9: ReMix11 Paris: Windows Azure & développement mobile

Compute

Page 10: ReMix11 Paris: Windows Azure & développement mobile

Web Role et Worker Role

Le Web Role a IISPas le Worker Role

“DLL avec un Main()”Les deux implémentent RoleEntryPoint

Page 11: ReMix11 Paris: Windows Azure & développement mobile

Multitenancy

Vous pouvez avoir plus d’une application Web tournant dans votre Web Role

Page 12: ReMix11 Paris: Windows Azure & développement mobile

Montée en charge dans Windows Azure

1. Le Web Role reçoit des messages

2. Le Web Role poste des messages dans une Queue

3. Le Worker Role surveille la Queue

4. Le Worker Role accomplit une action (ici, envoie des notifications)

MPNS

Worker Role

Web Role

(1)

(2)

(3)

(4)

Page 13: ReMix11 Paris: Windows Azure & développement mobile

Windows Azure Compute

démo

Page 14: ReMix11 Paris: Windows Azure & développement mobile

Windows Azure AppFabric CachingCache mémoire distribué

On interagit avec le cache directement via une librairie .NETSession State Provider pour les applications Windows Azure

Fourni sous forme de service prêt à l’emploiOn configure un AppFabric NamespaceOn choisit la taille du cacheOn écrit le code qui accède au service

APIs .NET familières & homogènesMême APIs que pour Windows Server AppFabric

Disponible depuis fin AvrilAccessible depuis le portail windows.azure.com

Page 15: ReMix11 Paris: Windows Azure & développement mobile

Windows Azure AppFabric Caching

démo

Page 16: ReMix11 Paris: Windows Azure & développement mobile

Build Fast Web Applications with Windows Azure AppFabric Caching

http://channel9.msdn.com/Events/MIX/MIX11/SVC01

Page 17: ReMix11 Paris: Windows Azure & développement mobile

Windows Azure Content Delivery Network

Plusieurs Terabits par seoncde de capacité disponibles dans 24 emplacement dans le monde avec

99.95% de disponibilité. Le CDN s’adapte automatiquement à la charge sans intervention utilisateur. Utilisé par Microsoft en interne depuis 3 ans – maintenant disponible pour les clients Windows Azure.

Page 18: ReMix11 Paris: Windows Azure & développement mobile

Windows Azure CDN

Activé depuis le portail d’administration Windows AzureIntégré avec le stockageNouveautés récentes:

Delivery depuis des instances Windows Azure ComputeSupport de HTTPS

CTP de Smooth Streaming

Page 19: ReMix11 Paris: Windows Azure & développement mobile

Performance & Latence

50ms

Page 20: ReMix11 Paris: Windows Azure & développement mobile

Performance & Latence

50ms

100ms

Page 21: ReMix11 Paris: Windows Azure & développement mobile

Performance & Latence

50ms

100ms

200ms

http://www.research.ibm.com/people/n/nahum/papers/sigmetrics01-slides.ppt

Page 22: ReMix11 Paris: Windows Azure & développement mobile

Performance & Latence

Page 23: ReMix11 Paris: Windows Azure & développement mobile

Windows Azure Traffic Manager

Performance

Envoie l’utilisateur sur le déploiement le

plus proche/performant

Tolérance aux pannesRedirige le trafic vers

un autre déploiement en fonctione de la

disponibilité

Round Robin

Trafic équilibré sur les déploiements en fonction d’un ratio

fixe

Équilibre le trafic sur de multiples Hosted ServicesIntégré dans le portail Windows Azure PlatformTrois scénarios activés pour la CTP:

Page 24: ReMix11 Paris: Windows Azure & développement mobile
Page 25: ReMix11 Paris: Windows Azure & développement mobile

Stockage

Page 26: ReMix11 Paris: Windows Azure & développement mobile

Stockage

SQL AzureBase de données relationnelleHautement disponibleFournie sous forme de service

Windows Azure TablesStockage structuré, non-relationnelMassivement évolutifOData

Windows Azure BlobsStockage de fichiersREST

Page 27: ReMix11 Paris: Windows Azure & développement mobile

Stockage dans le Portail

Page 28: ReMix11 Paris: Windows Azure & développement mobile

Windows Azure Blobs: Public Blobs

Le client envoie des données à un Web RoleLe Web Role stocke les données dans des BlobsLe client peut accéder aux Blobs publics directement

WebRole

(1)

(2)

(3)

Page 29: ReMix11 Paris: Windows Azure & développement mobile

Exemple: Public Container

Container ACL = Full Public Read AccessAutres valeurs possibles:

Public Read Access for Blobs OnlyNo Public Read Access

http://tcontepub.blob.core.windows.net/images/?restype=container&comp=list

Page 30: ReMix11 Paris: Windows Azure & développement mobile

Exemple: jQuery

Page 31: ReMix11 Paris: Windows Azure & développement mobile
Page 32: ReMix11 Paris: Windows Azure & développement mobile

jQuery+

jQuery Mobile+

PhoneGap

Page 33: ReMix11 Paris: Windows Azure & développement mobile

Windows Azure Blobs: SAS

Le client récupère une Shared Access Signature via un Web RoleLe client stocke des données directement dans le Blob StorageLe client peut toujours récupérer les Blobs publics directement

WebRole

(1)

(2) (3)

Page 34: ReMix11 Paris: Windows Azure & développement mobile

Windows Azure Tables: Proxy Calls

Pas de SAS pour les Tables

Le client envoie les données à un Web RoleLe Web Role implémente un service ou un HttpHandler

Le Web Role interagit avec le Table Storage

WebRole

(1)

(2)

Page 35: ReMix11 Paris: Windows Azure & développement mobile

Ne stockez pas les clefs sur le device!

Et si je collais l’access key dans

mon appli?

C’est comme croiser les effluves!

C’est mal!

Page 36: ReMix11 Paris: Windows Azure & développement mobile

Exemple avec OData: OGDI / govdata.eu

OData == WCF Data ServicesProtocole REST d’accès aux données: http://www.odata.org/

Open Government Data Initiativehttp://ogdi.codeplex.com/

Accès simplifié aux flux de données publicshttp://data.govdata.eu/v1/frOpenData/Sanisettes?

$filter=arrondissement eq '75015'

Page 37: ReMix11 Paris: Windows Azure & développement mobile
Page 38: ReMix11 Paris: Windows Azure & développement mobile

SQL Azure: Service OData

Le client interagit avec le Web Role via ODataLe Web Role stocke les données dans SQL Azure

WebRole

(1)

(2)

Page 39: ReMix11 Paris: Windows Azure & développement mobile

Identité

Page 40: ReMix11 Paris: Windows Azure & développement mobile

Identité: les Options

“Fait maison” (e.g. login + mot de passe, token)Modèle spécifiqueASP.NET Membership Providers

Utiliser un fournisseur d’identité existant(e.g. Live Id, Facebook, etc.)

Déléguer la gestion de l’identitéAccess Control Service

Page 41: ReMix11 Paris: Windows Azure & développement mobile

Access Control Service 2.0

Authentification via fournisseurs d’identité multiplesS’intègre avec Live ID, Facebook, Yahoo, & Google, and ADSupporte WS-Federation, WS-Trust, OpenID 2.0, OAuth 2.0

Modèle de développement .NET familierEn utiliant le Windows Identity Foundation SDK

API REST de gestion du servicePour intégration avec vos applications

Disponible en productionNo charge during promotion period ending January 1, 2012Low cost after the promotion: $1.99 per 100,000 transactions

Page 42: ReMix11 Paris: Windows Azure & développement mobile

Pour en savoir plus…

Authenticating Users in a Windows Phone 7 App via Access Control Service, OData

Services and Windows Azure

http://bit.ly/wp7acs

Page 43: ReMix11 Paris: Windows Azure & développement mobile

Communications

Page 44: ReMix11 Paris: Windows Azure & développement mobile

Communications

Deux modèles de communicationInitiée par le DeviceInitiée par le Cloud

Page 45: ReMix11 Paris: Windows Azure & développement mobile

Communication initiée par le Device

HTTP-based, request/responseChoix de frameworks

WCF REST,OData,WebRequest,etc.

Choix de formatsSOAP,JSON,POX,etc.

Page 46: ReMix11 Paris: Windows Azure & développement mobile

WCF Web APis: "There's a URI for That“

http://channel9.msdn.com/Events/MIX/MIX11/FRM14

Page 47: ReMix11 Paris: Windows Azure & développement mobile

Communication initiée par le Cloud

Push NotificationsConnexion établie entre le téléphone et le Microsoft Push Notification ServiceÉconomise batterie et bande passantePas de garantie de réception

Trois types de notifications pushRaw – envoie un message à une applicationToast – envoie un message à l’utilisateurTile – met à jour image, titre ou nombre

Page 48: ReMix11 Paris: Windows Azure & développement mobile

Abonnement aux notifications push

Le téléphone ouvre une channelLe téléphone envoie l’URL à l’application AzureL’appli pousse les notifications via cet URLMicrosoft Push Notification Service notifie le téléphone

MPNSWeb Role

(1)(2)

(3)

(4)

Page 49: ReMix11 Paris: Windows Azure & développement mobile

Windows Azure & Windows Phone

Windows Azure Toolkit for Windows Phonehttp://watoolkitwp7.codeplex.com/

Application Windows PhoneApplication Windows Azure

Service d’authentification basé sur Membership Provider ASP.NET + Windows Azure TablesService d’obtention de SAS pour les WA BlobsProxy HttpHandler vers les WATInterface Web MVC de gestion des autorisations

Services compatibles avec les toolkits iOS & Android

Page 50: ReMix11 Paris: Windows Azure & développement mobile

Windows Azure Toolkit for Windows Phone

démo

Page 51: ReMix11 Paris: Windows Azure & développement mobile

Windows Phone & Windows Azure

Building Windows Phone 7 Applicationswith the Windows Azure Platform

http://channel9.msdn.com/Events/MIX/MIX11/SVC02

Page 52: ReMix11 Paris: Windows Azure & développement mobile

Et pour les devices non Microsoft?

“Developing iPhone and iPad Apps that Leverage Windows Azure”

http://channel9.msdn.com/Events/MIX/MIX11/EXT18

Page 53: ReMix11 Paris: Windows Azure & développement mobile

Windows Azure Platform Access

Windows Azure Pass

Accès 30 jours gratuit sans carte bleueRessources:

Compute: 3 Small InstancesStorage: 3 GB + 250K tansactions Data Transfer: 3GB in & 3GB outDatabase: 2 x 1GB Web Edition

Abonnement:http://www.windowsazure.fr/

Introductory Trial

Jusqu’au 30 juin 2011Ressources:

Compute: 750 extra small hours + 25 smallStorage: 500MB + 10K transactionsData Transfer: 500MB in & 500MB outDatabase: 1GB Web Edition (90 days)

Abonnement:www.windowsazure.fr

Page 54: ReMix11 Paris: Windows Azure & développement mobile