Windows Azure AppFabric Services Alain Borlet-Hôte Architect Agenda Introduction Quand utiliser Windows Azure? Les différentes typologies d’application Windows Azure AppFabric Services? Les différents services Démo Développement sur le Cloud Typologies d’’applications.
Download ReportTranscript Windows Azure AppFabric Services Alain Borlet-Hôte Architect Agenda Introduction Quand utiliser Windows Azure? Les différentes typologies d’application Windows Azure AppFabric Services? Les différents services Démo Développement sur le Cloud Typologies d’’applications.
Windows Azure AppFabric Services Alain Borlet-Hôte Architect Agenda Introduction Quand utiliser Windows Azure? Les différentes typologies d’application Windows Azure AppFabric Services? Les différents services Démo Développement sur le Cloud Typologies d’’applications avec Windows Azure Windows Azure pour les développeurs Windows Azure pour les architectes Conclusion Eléments clés Questions & Réponses Des références sont présentes dans toutes les parties de la présentation sous forme de slides cachés, pour être utilisées après coup. Quand utiliser Windows Azure ? I Pour les performances Application web haute performance Besoin de montée en charge et d'élasticité pour les pics de charge (pas si simple) Calculs haute performance Infrastructure de simulation de pic, tests de charge Pour la disponibilité Besoin de tolérance aux pannes, plan de reprise d’activité (disaster recovery) Déploiement mondial Quand utiliser Windows Azure ? II Pour l’intégration et la sécurité Pour des solutions qui nécessitent interfaçage entre différentes entreprises ou différentes localisations Pour l’infrastructure Application utilisée seulement une partie de l’année Importante infrastructure nécessaire avec temps à disposition trop court pour l’IT Solution d’hébergement Pour une facturation à l'usage ou Saas Les différentes typologies d’application Application hébergée dans le Cloud (IaaS) Hébergement classique (non détaillé) Application év. Web spécifique au Cloud (PaaS) Tire partie des Web et Worker Role Haute disponibilité ou besoin de montée en charge? Applications connectées par le Cloud (PaaS) Le Cloud joue le rôle d’intermédiaire Application online dans le Cloud (SaaS) SharePoint, CRM Application hybride Combinaison des scénarios précédents Montée en charge et Haute disponibilité Montée en charge horizontale: en rajoutant des instances (rôles) et en gérant le partitionnement Haute disponibilité: en ayant au moins deux instances de chaque type et en utilisant les domaines de pannes Multi-mandant: via la gestion des namespaces Gestion du partitionnement via RoleEnvironment Reconfiguration dynamique Qu’est-ce qu’un rôle? Definit un type d’instance hébergée: Role name Role type VM size (e.g. small, medium, etc.) Network endpoints Code: Web/Worker Role: DLL VM Role: VHD Configuration: Nombre d’instances Nombre de domaines de mise à jour Nombre de domaines de panne Références générales Gartner http://www.gartner.com/technology/mediaproducts/reprints/microsoft_mapp/vol2/article14/articl e14.html Azure Pricing http://www.microsoft.com/windowsazure/pricing/ http://www.microsoft.com/windowsazure/offers/defau lt.aspx#tcoCompare-LB http://msdn.microsoft.com/enus/library/ff959173.aspx Communauté francophone http://www.azureguru.org/ Références générales Moving and developing cloud applications http://msdn.microsoft.com/enus/library/ff898430.aspx Essayer sans carte de crédit http://www.wadewegner.com/2011/03/try-outwindows-azure-with-a-free-pass/ Références de projet http://www.microsoft.com/windowsazure/evidence/ Agenda Introduction Qu’est-ce que Windows Azure? Quand utiliser Windows Azure? Les différentes typologies d’application Windows Azure AppFabric Services? Les différents services Démo Développement sur le Cloud Typologies d’’applications avec Windows Azure Windows Azure pour les développeurs Windows Azure pour les architectes Conclusion Eléments clés Questions & Réponses Caching Service Access Control Service Service Bus Service Fabric Controller Multi-mandant, isolation, montée en charge horizontale, haute disponibilité, routage reconfiguration dynamique Integration Service Composite Application Service Composition runtime: chargement, cycle de vie, démarrage à la demande, mesures, logging, throttling SQL Azure SQL Server Windows Azure (blob, queue, table, network) Windows Server Management Qu’est ce qu’AppFabric? Caching Service Access Control Service Service Bus Service Fabric Controller Multi-mandant, isolation, montée en charge horizontale, haute disponibilité, routage reconfiguration dynamique Integration Service Composite Application Service Composition runtime: chargement, cycle de vie, démarrage à la demande, mesures, logging, throttling SQL Azure SQL Server Windows Azure (blob, queue, table, network) Windows Server Management AppFabric Caching Caching Service (CTP) Cache applicatif distribué en-mémoire pour les applications hébergées dans Windows Azure Administration simplifiée avec une augmentation/diminution dynamique de la taille du cache à la demande Basé sur une techno éprouvée Windows Server AppFabric Caching avec les mêmes interfaces Bénéfices Solution orientée cloud pour les sessions/output caching ASP.NET Diminution de la latence pour les données présentes dans SQL Azure Faible latence et haut débit Sécurisé par Access Control Service Région (groupe d’items), notifications (vNext?) Caching Service Capacités Intégration sans code à ASP.NET (session state, output caching) Latence très faible avec le cache local Hébergé par sous-région pour l’affinité avec les applications Fournit de la Haute disponibilité et supporte la montée en charge Cache tout objet «managé» Sans limite de taille Sans coût de serialisation dans le cas du cache local Les différents types de données Données de références (liste de produits) Données partagées avec beaucoup de lecture Très peu de changement Mises à jour à intervalles déterminés Candidat idéal pour le caching Données d’activité (panier d’achat) Lecture écriture exclusive Candidat idéal pour le caching avec partitionnement Données de ressources (quantité) Partagées avec mise à jour concurrente Notifications et invalidations Relaxation des contraintes (over-selling) Pas si simple, faire des mesures en perf et en prix Démo AzureStoreMVC Données dans SQL Azure Session en local Dans l’environnement de développement Utilisation du caching (CTP, Labs) Pour les sessions Pour le cache des données de référence (produits) Références Caching Introduction au Caching CS60-Wegner.pptx http://msdn.microsoft.com/en-us/library/cc645013.aspx http://msdn.microsoft.com/en-us/library/gg278356.aspx Windows Server AppFabric Caching http://msdn.microsoft.com/en-us/library/ff383731.aspx Windows Azure AppFabric Caching (subset) http://msdn.microsoft.com/en-us/library/gg278356.aspx Caching Service Access Control Service Service Bus Service Fabric Controller Multi-mandant, isolation, montée en charge horizontale, haute disponibilité, routage reconfiguration dynamique Integration Service Composite Application Service Composition runtime: chargement, cycle de vie, démarrage à la demande, mesures, logging, throttling SQL Azure SQL Server Windows Azure (blob, queue, table, network) Windows Server Management AppFabric Access Control Access Control Service v2 (labs) Moyen de fournir des identités et du contrôle d’accès en se basant sur des fournisseurs d’identité standards comme Windows Live ID, Google, Yahoo! et Facebook ainsi que des annuaires d’entreprise comme AD. Fonctionnalités Fédération d’identité et transformation de «claims» Gestion centralisée des éléments de confiance et des polices Contrôle d’accès géré par un moteur de règle Fonctionne aussi avec les connexions de Service Bus Supporte des credentials multiples et des fournisseurs de service Supporte des protocoles standards incluant REST (ODatabased) Supporte les certificats X.509 Access Control Service v2 Web Single Sign-On (SSO) Supporte nativement (Google, Yahoo!), Facebook, AD FS v2 WS-Fed, HRD, WLID, Supporte OpenID, Home Realm Discovery (HRD) Supporte plusieurs types de tokens SAML 1.1, 2.0, Simple Web Token (SWT) Supporte des standards d’autorisation OAuth 2.0 draft 10 WS-Trust, WS-Federation Volonté d’évoluer pour suivre l’évolution des protocoles Références Access Control Documentation http://acs.codeplex.com/ http://acs.codeplex.com/documentation?referringTitle=Hom e http://social.technet.microsoft.com/wiki/contents/articles/win dows-identity-foundation-wif-and-azure-appfabric-accesscontrol-service-acs-survival-guide.aspx Developer Guide http://download.microsoft.com/download/D/6/F/D6F4E54C -F6A7-48FA-AE034C543B14B41A/A%20Developer's%20Guide%20to%20Servi ce%20Bus%20in%20Windows%20Azure%20AppFabric.docx Caching Service Access Control Service Service Bus Service Fabric Controller Multi-mandant, isolation, montée en charge horizontale, haute disponibilité, routage reconfiguration dynamique Integration Service Composite Application Service Composition runtime: chargement, cycle de vie, démarrage à la demande, mesures, logging, throttling SQL Azure SQL Server Windows Azure (blob, queue, table, network) Windows Server Management AppFabric Service Bus Service Bus Service Permet d’exposer des services à travers les firewall, NAT,… Découvertes des services avec une URL stable indépendante de la localisation One-way messaging implémentant l’unicast et le multicast Communication Full duplex entre l’émetteur le relai et le récepteur Système de gestion de Topic et de distribution d’évènement partagés Support du REST et d’un accès par HTTP pour les plateformes non .NET Support de l’accès anonyme en Opt-in Le périmètre du Service Bus ? Connectivité Service Relay Protocol Tunnel Eventing, Push Messaging Queue Pub/Sub Reliable Transfer Gestion de Serv. Nommage, Découverte, Monitoring Orchestration Routage Coordination Transformation De nombreuses options pour connecter des réseaux entre eux Infrastructure transactionnelle fiable d’échange de messages Système de gestion cohérent et capacité de virtualisation des services Routage basé sur du contenu, transformation de document et coordination de processus Connectivité .NET Grâce au Relai fourni par le ServiceBus netTcpRelayBinding netOnewayRelayBinding netEventRelayBinding webHttpRelayBinding ws2007HttpRelayBinding wsHttpRelayBinding basicHttpRelayBinding Optimisation avec connexion directe TcpConnectionMode Message Buffer REST API Nouveaux Message Buffers 3 sortes de queues: Message Buffer (prod) Queue (labs) Topic (labs) Producteur EnMémoire SOAP/TCP REST/HTTP SB Stockage 10 min 2MB TTL Capacité Messages … Consommateur Durable, Stockage répliqué 60KB 256 KB No limit 100 MB Service Bus Topics (P/Sub) Service Bus Consom -mateur 2 Consom -mateur 4 6 = Messages séquentiels avec 1 des souscriptions multiples 2 indépendantes (curseurs) 3 Plusieurs règles par 4 souscriptions, chaque règle 5 peux avoir plusieurs filtres 6 7 Les messages sont évalués Topic en fonctions des règles. 8 Chaque règle qui correspond obtient une Producteur copie <Topic> … </Topic> Consom -mateur <Subscribe> <Filter>…</Filter> </Subscribe> Distribution d’évènement <Topic> … </Topic > Event Point Push Target Listener = Distribution d’évènement en multicast Système de souscription identique aux topics Support d’UDP, pour de latence très faible Pas de curseur Service Bus Msg Event Source Listener <Subscribe> <Filter>…</Filter> </Subscribe> SB Subscription Protocol Anycast Point de connexions explicites Plusieurs Listener partagent le même point de connexion Equilibre de la charge Sender Affinité de session Optimisation de traffic via le Sender mode Buffered (une connexion entre SB et un listener) Service Bus <ConnectionPoint> … </ConnectionPoint> Listener Listener Références Service Bus CS69-Vasters.pptx http://msdn.microsoft.com/enus/library/gg278348.aspx SDK2.0 samples http://msdn.microsoft.com/enus/library/ee794877.aspx Developer Guide http://download.microsoft.com/download/5/A/7/5A7 703E2-32DA-4D53-9EFDA200E1E93562/A%20Developer's%20Guide%20to% 20Access%20Control%20in%20Windows%20Azure% 20AppFabric.docx Caching Service Access Control Service Service Bus Service Fabric Controller Multi-mandant, isolation, montée en charge horizontale, haute disponibilité, routage reconfiguration dynamique Integration Service Composite Application Service Composition runtime: chargement, cycle de vie, démarrage à la demande, mesures, logging, throttling SQL Azure SQL Server Windows Azure (blob, queue, table, network) Windows Server Management AppFabric Integration L’intégration dans Service Bus Fournit la possibilité de pré-traiter les messages avant qu’ils atteignent le EndPoint Pour faire de la validation, extraction, transformation et du routage dynamique Outil de développement simples Comme le développement sous BizTalk Pattern commun disponibles par défaut Biztalk AppFabric Connect La composante intégration du Service Bus? Les WorkFlowServices (WF) peuvent utiliser les MapperActivity et Connect LOB Activity de BizTalk Fonctionne dans Windows Server AppFabric et Windows Azure AppFabric Références BT AppFabric Connect http://social.technet.microsoft.com/wiki/contents/arti cles/working-with-biztalk-appfabric-connect.aspx http://www.microsoft.com/biztalk/en/us/appfabricco nnect.aspx Caching Service Access Control Service Service Bus Service Fabric Controller Multi-mandant, isolation, montée en charge horizontale, haute disponibilité, routage reconfiguration dynamique Integration Service Composite Application Service Composition runtime: chargement, cycle de vie, démarrage à la demande, mesures, logging, throttling SQL Azure SQL Server Windows Azure (blob, queue, table, network) Windows Server Management AppFabric Composite App App Fabric Composition Un modèle de composition permettant de configurer et de déployer automatiquement une application Pour Windows Server et Windows Azure Permet d’unifier le paramétrage Repose sur AppFabric Container Support dans Visual Studio via un designer graphique Métriques, graphiques de l’utilisation disponible depuis la représentation graphique CacheGet, CachePut, SQL Query Latency, SQL DB Size WCF average Call durationGestion accessible à travers un service App Fabric Composition App Fabric Container Environnement d’hébergement pour service WCF, WF, Data et RIA services Montée en charge horizontale et Haute disponibilité Via clonage et répartition des composants Via partitionnement et réplication pour les composants avec état Routage et résolution d’adresse dynamique Gestion du routage et de la redirection Composition Runtime Gère le cycle de vie des composants Démarrage à la demande ou automatique (relay) State Management Gère la persistance des workflows WF Multi-mandant et isolation Le contexte du mandant est propagé dans des environnements isolés Références App Fabric Composition CS04-Anand.pptx (min 35) Blog http://blogs.msdn.com/b/windowsazureappfabric/arc hive/2011/03/10/introduction-to-windows-azureappfabric-blog-posts-series-part-4-buildingcomposite-applications.aspx Agenda Introduction Quand utiliser Windows Azure? Les différentes typologies d’application Windows Azure AppFabric Services? Les différents services Démo Développement sur le Cloud Typologies d’’applications avec Windows Azure Windows Azure pour les développeurs Windows Azure pour les architectes Conclusion Eléments clés Questions & Réponses Application Web Spé.Cloud Azure + AppFabric Services AppFabric Services: Caching Service Bus Access Control Composite App Commande Service Workflow Enchères Web ASP.NET Enchères Service Items et Soumis. Web App WCF Service SQL Azure Database Session State Items et Soumis. Satisfaction Vendeur Caching Caching Service Bus Application connectée par le Cloud SQL Azure Database Sync Magasins Data Sync Service For SQL Azure Quartiers généraux Sur site Bureaux CTP2 – à venir Aujourd’hiui SQL Azure Data Sync Windows Azure Connect Règles réseau gérées à travers le Windows Azure portal Contrôle fin de la connectivité entre les rôles WA et les machines externes Configuration automatique d’IPsec Crée des tunnels à travers les firewalls/NAT via l’hébergement de relais basés sur SSL Application des règles réseau et sécurisation de traffic de bout en bout par de l’IPSec basé sur les certificats. Résolution DNS basé sur le nom des machines Windows Azure Role A Role B Role C Relay (multiple VM’s) Dev machines Databases Enterprise Windows Azure pour les développeurs .NET La barrière psychologique: Créer un compte avec sa carte de crédit, nouveauté! Un terrain connu: .NET 4.0, ASP.NET, EF, WCF, WF, WIF, Data Services, SQL Server Ce qui change: RoleEnvironment, Caching, Logging, RelayBinding, Instance identification, Windows Azure pour les développeurs .NET Outils: Visual Studio 2010 Compute Emulator, Storage Emulator Windows Azure Platform Management Portail Staging and Production environment Références de développement Développement SDK http://www.microsoft.com/windowsazure/getstarted/default.aspx Doc http://msdn.microsoft.com/library/dd163896.aspx Dev center http://msdn.microsoft.com/en-US/windowsazure Blogs http://blogs.msdn.com/b/windowsazureappfabric/ Java/Ruby/Php http://www.microsoft.com/windowsazure/interop/default.aspx Autres Tracing http://blogs.msdn.com/b/jimoneil/archive/2010/10/08/azure-homepart-8-worker-role-and-azure-diagnostics.aspx?wa=wsignin1.0 Windows Azure pour les développeurs Java/PHP/Ruby Les services et l’interface de gestion est basée sur des standards http, OData, XML, JSON, AtomPub, REST, RSS, Web Services Des API pour simplifier Azure et AppFabric Windows Azure SDK for Java/PHP/Ruby OData4J, extensions Restlet pour Odata, ODataPHP Tomcat solution accelerator Outils Plugin Eclipse pour Java et PHP permettant le déploiement en un clic Driver JDBC pour SQL Azure Windows Azure pour les architectes Faire les bons choix Compromis en garanties, perf, en montée en charge, et en prix ex: AzureTable, Caching Considérer les modèles de facturation Volumétrie Dimensionnement des rôle Attention aux courbes Multi-threading et parallélisme Programmation asynchrone Attention aux points de contention Systèmes de licences Impact des optimisations Windows Azure pour les architectes Attention à la latence Localisation géographique Trouver le découpage approprié Bien considérer les affinités: par partitionnement, par groupes de serveurs (portail), session (service bus anycast) Caching Plusieurs alternatives de communication HttpRelay, TcpRelay, http, Tcp, Queues, Topics, Events Windows Azure pour les architectes Plusieurs alternatives de Stockage avec facturation différentes: Azure Blobs (remplace les fichiers) avec CDN Azure Table (no-sql), Azure Queues, Azure Drive, SQL Azure (BD Relationnelle) Service Bus (queues durables) Local file system (attention sans garantie) Attention au logs Références d’architecture Etude de performance MS Research Azurescope: http://azurescope.cloudapp.net Autre Queues: http://blogs.msdn.com/b/clemensv/archive/2011/03/ 18/why-would-anyone-ever-use-a-messagequeue.aspx Agenda Introduction Quand utiliser Windows Azure? Les différentes typologies d’application Windows Azure AppFabric Services? Les différents services Démo Développement sur le Cloud Typologies d’’applications avec Windows Azure Windows Azure pour les développeurs Windows Azure pour les architectes Conclusion Eléments clés Questions & Réponses Eléments clés Un écosystème très très complet (des environnement de développement .NET, outils VS2010, émulateurs, RDP, DB SQL Server, OS, services spécifiques au Cloud) Tous les scénarios d’intégration sont possibles via le cloud (services, données, sécurité, réseau) Ajout de machine en quelques clics Des solutions simples à utiliser pour des problèmes très complexes, le design juste reste complexe. © 2011 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.