TechDays 2010 (CLO301) : Windows Azure Comment Migrer Une Application
ReMix11 Paris: Windows Azure & développement mobile
1. Windows Azure pour les applications mobiles, tablettes, multi-écrans Thomas Conté Architecte Microsoft http://twitter.com/tomconte tconte@microsoft.com
2. Agenda Pourquoi le Cloud pour les Devices? Cas client: Mobiles Republic Tour d’horizon de Windows Azure Identité Stockage Services Communications Pourquoi Windows Phone + Windows Azure? Windows Azure Toolkit for Windows Phone Et pour les devices non Microsoft?
3. Pourquoi le Cloud? Services universels, accessibles par tous les matériels Infrastructure à la demande, sans ticket d’entrée Infrastructure é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
7. Windows Azure Toolkits pour les Mobiles Annonce officielle http://blogs.technet.com/b/microsoft_blog/ iOS: https://github.com/microsoft-dpe/watoolkitios-lib https://github.com/microsoft-dpe/watoolkitios-samples https://github.com/microsoft-dpe/watoolkitios-doc Windows Phone 7: http://watoolkitwp7.codeplex.com
8. Vued’ensemble de Windows Azure Environnement d’exécution évolutif Supporte .NET, C++, PHP, Ruby, Python, … Gestion automatisée des services Compute Stockage évolutif, hautement disponible Blobs, Tables, Queues, Drives APIs REST et nombreuses librairies Storage Base de données relationnelle SQL Outils & développement familiers Database
12. Montée en charge dans Windows Azure Le Web Role reçoit des messages Le Web Role poste des messages dans une Queue Le WorkerRole surveille la Queue Le WorkerRole accomplit une action (ici, envoie des notifications) (2) (4) Worker Role Web Role MPNS (3) (1)
14. Windows Azure AppFabric Caching Cache mémoire distribué On interagit avec le cache directement via une librairie .NET Session State Provider pour les applications Windows Azure Fourni sous forme de service prêt à l’emploi On configure un AppFabricNamespace On choisit la taille du cache On écrit le code qui accède au service APIs .NET familières & homogènes Même APIs que pour Windows Server AppFabric Disponible depuis fin Avril Accessible depuis le portail windows.azure.com
16. Build Fast Web Applications with Windows Azure AppFabricCaching http://channel9.msdn.com/Events/MIX/MIX11/SVC01
17. 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.
18. Windows Azure CDN Activé depuis le portail d’administration Windows Azure Intégré avec le stockage Nouveautés récentes: Delivery depuis des instances Windows Azure Compute Support de HTTPS CTP de Smooth Streaming
23. Windows Azure Traffic Manager Équilibre le trafic sur de multiples Hosted Services Intégré dans le portail Windows Azure Platform Trois scénarios activés pour la CTP: Tolérance aux pannes Round Robin Performance Redirige le trafic vers un autre déploiement en fonctione de la disponibilité Traficéquilibrésur les déploiements en fonction d’un ratio fixe Envoie l’utilisateur sur le déploiement le plus proche/performant
26. Stockage SQL Azure Base de données relationnelle Hautement disponible Fournie sous forme de service Windows Azure Tables Stockage structuré, non-relationnel Massivement évolutif OData Windows Azure Blobs Stockage de fichiers REST
28. Windows Azure Blobs: Public Blobs Le client envoie des données à un Web Role Le Web Role stocke les données dans des Blobs Le client peut accéder aux Blobs publics directement (2) Web Role (3) (1)
29. Exemple: Public Container Container ACL = Full Public Read Access Autres valeurs possibles: Public Read Access for Blobs Only No Public Read Access http://tcontepub.blob.core.windows.net/images/? restype=container& comp=list
33. Windows Azure Blobs: SAS Le client récupère une Shared Access Signature via un Web Role Le client stocke des données directement dans le Blob Storage Le client peut toujours récupérer les Blobs publics directement Web Role (2) (3) (1)
34. Windows Azure Tables: Proxy Calls Pas de SAS pour les Tables Le client envoie les données à un Web Role Le Web Role implémente un service ou un HttpHandler Le Web Role interagit avec le Table Storage (2) Web Role (1)
35. Ne stockez pas les clefs sur le device! C’estcommecroiser les effluves! C’estmal! Et si je collaisl’access key dansmonappli?
36. Exemple avec OData: OGDI / govdata.eu OData == WCF Data Services Protocole REST d’accès aux données: http://www.odata.org/ Open Government Data Initiative http://ogdi.codeplex.com/ Accès simplifié aux flux de données publics http://data.govdata.eu/v1/frOpenData/Sanisettes? $filter=arrondissement eq '75015'
37.
38. SQL Azure: Service OData Le client interagit avec le Web Role via OData Le Web Role stocke les données dans SQL Azure (2) Web Role (1)
40. Identité: les Options “Fait maison” (e.g. login + mot de passe, token) Modèle spécifique ASP.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
41. Access Control Service 2.0 Authentification via fournisseurs d’identité multiples S’intègre avec Live ID, Facebook, Yahoo, & Google, and AD Supporte WS-Federation, WS-Trust, OpenID 2.0, OAuth 2.0 Modèle de développement .NET familier En utiliant le Windows IdentityFoundation SDK API REST de gestion du service Pour intégration avec vos applications Disponible en production No charge during promotion periodendingJanuary 1, 2012 Lowcostafter the promotion: $1.99 per 100,000 transactions
42. 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
45. Communicationinitiée par le Device HTTP-based, request/response Choix de frameworks WCF REST, OData, WebRequest, etc. Choix de formats SOAP, JSON, POX, etc.
46. WCF Web APis: "There's a URI for That“ http://channel9.msdn.com/Events/MIX/MIX11/FRM14
47. Communication initiée par le Cloud Push Notifications Connexion établie entre le téléphone et le Microsoft Push Notification Service Économise batterie et bande passante Pas de garantie de réception Trois types de notifications push Raw – envoie un message à une application Toast – envoie un message à l’utilisateur Tile – met à jour image, titre ou nombre
48. Abonnement aux notifications push Le téléphone ouvre une channel Le téléphone envoie l’URL à l’application Azure L’appli pousse les notifications via cet URL Microsoft Push Notification Service notifie le téléphone MPNS Web Role (3) (1) (2) (4)
49. Windows Azure & Windows Phone Windows Azure Toolkit for Windows Phone http://watoolkitwp7.codeplex.com/ Application Windows Phone Application Windows Azure Service d’authentification basé sur Membership Provider ASP.NET + Windows Azure Tables Service d’obtention de SAS pour les WA Blobs Proxy HttpHandler vers les WAT Interface Web MVC de gestion des autorisations Services compatibles avec les toolkitsiOS & Android
51. Windows Phone & Windows Azure Building Windows Phone 7 Applications with the Windows Azure Platform http://channel9.msdn.com/Events/MIX/MIX11/SVC02
52. Et pour les devices non Microsoft? “Developing iPhone and iPad Apps that Leverage Windows Azure” http://channel9.msdn.com/Events/MIX/MIX11/EXT18
53. Windows Azure Platform Access Windows Azure Pass Introductory Trial Accès 30 joursgratuit sans carte bleue Ressources: Compute: 3 Small Instances Storage: 3 GB + 250K tansactions Data Transfer: 3GB in & 3GB out Database: 2 x 1GB Web Edition Abonnement: http://www.windowsazure.fr/ Jusqu’au 30 juin 2011 Ressources: Compute: 750 extra small hours + 25 small Storage: 500MB + 10K transactions Data Transfer: 500MB in & 500MB out Database: 1GB Web Edition (90 days) Abonnement: www.windowsazure.fr