580 likes | 906 Views
Windows Azure AppFabric Services. Alain Borlet-Hôte. Architect. Agenda. 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. Introduction Quand utiliser Windows Azure?
E N D
Windows Azure AppFabric Services Alain Borlet-Hôte Architect
Agenda 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. • 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
Quandutiliser 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é (disasterrecovery) • Déploiement mondial
Quandutiliser 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 WorkerRole • 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: • Rolename • Role type • VM size (e.g. small, medium, etc.) • Network endpoints • Code: • Web/WorkerRole: DLL • VM Role: VHD • Configuration: • Nombre d’instances • Nombre de domaines de mise à jour • Nombre de domaines de panne Mon Service Role: Front-End Definition Type: Web VM Size: Small Endpoints: External-1 Role: Background Definition Type: Worker VM Size: Large Endpoints: Internal-1 Configuration Instances: 2 Update Domains: 2 Fault Domains: 2 Configuration Instances: 3 Update Domains: 2 Fault Domains: 2
Références générales • Gartner • http://www.gartner.com/technology/media-products/reprints/microsoft_mapp/vol2/article14/article14.html • Azure Pricing • http://www.microsoft.com/windowsazure/pricing/ • http://www.microsoft.com/windowsazure/offers/default.aspx#tcoCompare-LB • http://msdn.microsoft.com/en-us/library/ff959173.aspx • Communauté francophone • http://www.azureguru.org/
Références générales • Moving and developingcloud applications • http://msdn.microsoft.com/en-us/library/ff898430.aspx • Essayer sans carte de crédit • http://www.wadewegner.com/2011/03/try-out-windows-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
Qu’estcequ’AppFabric? Designer Graphique Plateforme Middleware AppFabric Services Caching Service Access Control Service Service Bus Service Integration Service Composite Application Service .NET Composition Model & Tools Management AppFabric Container Multi-mandant, isolation, montée en charge horizontale, haute disponibilité, routage reconfiguration dynamique Composition runtime: chargement, cycle de vie, démarrage à la demande, mesures, logging, throttling SQL Azure SQL Server Fabric Controller Windows Azure (blob, queue, table, network) Windows Server Modèle de développement cohérent
AppFabricCaching Designer Graphique Plateforme Middleware AppFabric Services Caching Service Access Control Service Service Bus Service Integration Service Composite Application Service .NET Composition Model & Tools Management AppFabric Container Multi-mandant, isolation, montée en charge horizontale, haute disponibilité, routage reconfiguration dynamique Composition runtime: chargement, cycle de vie, démarrage à la demande, mesures, logging, throttling SQL Azure SQL Server Fabric Controller Windows Azure (blob, queue, table, network) Windows Server Modèle de développement cohérent
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 AppFabricCachingavec 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 SQL Azure Web Store AppFabric Caching • AzureStoreMVC • Données dans SQL Azure • Session en local • Dans l’environnementde développement • Utilisation du caching (CTP, Labs) • Pour les sessions • Pour le cache des données de référence (produits) Sessions Products
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 AppFabricCaching • http://msdn.microsoft.com/en-us/library/ff383731.aspx • Windows Azure AppFabricCaching (subset) • http://msdn.microsoft.com/en-us/library/gg278356.aspx
AppFabricAccess Control Designer Graphique Plateforme Middleware AppFabric Services Caching Service Access Control Service Service Bus Service Integration Service Composite Application Service .NET Composition Model & Tools Management AppFabric Container Multi-mandant, isolation, montée en charge horizontale, haute disponibilité, routage reconfiguration dynamique Composition runtime: chargement, cycle de vie, démarrage à la demande, mesures, logging, throttling SQL Azure SQL Server Fabric Controller Windows Azure (blob, queue, table, network) Windows Server Modèle de développement cohérent
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 (OData-based) • 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 RealmDiscovery (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=Home • http://social.technet.microsoft.com/wiki/contents/articles/windows-identity-foundation-wif-and-azure-appfabric-access-control-service-acs-survival-guide.aspx • Developer Guide • http://download.microsoft.com/download/D/6/F/D6F4E54C-F6A7-48FA-AE03-4C543B14B41A/A%20Developer's%20Guide%20to%20Service%20Bus%20in%20Windows%20Azure%20AppFabric.docx
AppFabricService Bus Designer Graphique Plateforme Middleware AppFabric Services Caching Service Access Control Service Service Bus Service Integration Service Composite Application Service .NET Composition Model & Tools Management AppFabric Container Multi-mandant, isolation, montée en charge horizontale, haute disponibilité, routage reconfiguration dynamique Composition runtime: chargement, cycle de vie, démarrage à la demande, mesures, logging, throttling SQL Azure SQL Server Fabric Controller Windows Azure (blob, queue, table, network) Windows Server Modèle de développement cohérent
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 transactionnellefiabled’échange de messages Système de gestioncohérent et capacité de virtualisation des services Routagebasé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 Message Buffer (volatiles, non répliqués) Producteur • 3 sortes de queues: • Message Buffer (prod) • Queue (labs) • Topic (labs) En-Mémoire SB 10 min 2MB 60KB SOAP/TCP TTL Stockage Capacité Messages REST/HTTP Durable, Stockagerépliqué 100MB 256KB … No limit Consom-mateur Queue / Topic (durable, répliqués, organisation)
Service Bus Topics (P/Sub) Service Bus <Topic>…</Topic> • Messages séquentiels avec des souscriptions multiples indépendantes (curseurs) • Plusieurs règles par souscriptions, chaque règle peux avoir plusieurs filtres • Les messages sont évalués en fonctions des règles. Chaque règle qui correspond obtient une copie 1 Consom-mateur 2 3 4 6 2 Consom-mateur 4 5 Consom-mateur 6 = 7 Topic <Subscribe> <Filter>…</Filter></Subscribe> 8 Producteur
Distribution d’évènement Service Bus <Topic>…</Topic > • 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 EventPoint Push Target Listener Listener = <Subscribe> <Filter>…</Filter></Subscribe> Msg Event Source SB Subscription Protocol
Anycast Service Bus • Point de connexions explicites • Plusieurs Listener partagent le même point de connexion • Equilibre de la charge • Affinité de session • Optimisation de traffic via le mode Buffered(une connexion entre SB et un listener) <ConnectionPoint>…</ConnectionPoint> Subscribe Sender Listener Sender Listener
Références Service Bus • CS69-Vasters.pptx • http://msdn.microsoft.com/en-us/library/gg278348.aspx • SDK2.0 samples • http://msdn.microsoft.com/en-us/library/ee794877.aspx • DeveloperGuide • http://download.microsoft.com/download/5/A/7/5A7703E2-32DA-4D53-9EFD-A200E1E93562/A%20Developer's%20Guide%20to%20Access%20Control%20in%20Windows%20Azure%20AppFabric.docx
AppFabricIntegration Designer Graphique Plateforme Middleware AppFabric Services Caching Service Access Control Service Service Bus Service Integration Service Composite Application Service .NET Composition Model & Tools Management AppFabric Container Multi-mandant, isolation, montée en charge horizontale, haute disponibilité, routage reconfiguration dynamique Composition runtime: chargement, cycle de vie, démarrage à la demande, mesures, logging, throttling SQL Azure SQL Server Fabric Controller Windows Azure (blob, queue, table, network) Windows Server Modèle de développement cohérent
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 AppFabricConnect • 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 AppFabricConnect • http://social.technet.microsoft.com/wiki/contents/articles/working-with-biztalk-appfabric-connect.aspx • http://www.microsoft.com/biztalk/en/us/appfabricconnect.aspx
AppFabricComposite App Designer Graphique Plateforme Middleware AppFabric Services Caching Service Access Control Service Service Bus Service Integration Service Composite Application Service .NET Composition Model & Tools Management AppFabric Container Multi-mandant, isolation, montée en charge horizontale, haute disponibilité, routage reconfiguration dynamique Composition runtime: chargement, cycle de vie, démarrage à la demande, mesures, logging, throttling SQL Azure SQL Server Fabric Controller Windows Azure (blob, queue, table, network) Windows Server Modèle de développement cohérent
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 AppFabricContainer • Support dans Visual Studio via un designer graphique • Métriques, graphiques de l’utilisation disponible depuis la représentation graphique • CacheGet, CachePut, SQL QueryLatency, SQL DB Size WCF average Call durationGestionaccessible à travers un service
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/archive/2011/03/10/introduction-to-windows-azure-appfabric-blog-posts-series-part-4-building-composite-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é.CloudAzure + AppFabric Services AppFabric Services: Caching Service Bus Access Control Composite App CommandeService Workflow Items et Soumis. SQL Azure Database EnchèresWeb ASP.NET Web App EnchèresService WCF Service Session State Caching Items et Soumis. Caching Satisfaction Vendeur Service Bus
Application connectée par le Cloud Cloud Sur Site Data Synchronization SQL Azure Data Sync Application-layer Connectivity & Messaging Windows Azure AppFabric Service Bus Security Federated Identity and Access Control Secure Network Connectivity Windows Azure Connect
SQL Azure Data Sync Aujourd’hiui SQL Azure Database Sync Sync Data Sync Service For SQL Azure Magasins Bureaux Sync Sync Sync Sync CTP2 – à venir Sync Quartiers généraux Sur site
Windows Azure Connect Windows Azure • 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 Role A Role B Role C (multiple VM’s) Relay 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/Phphttp://www.microsoft.com/windowsazure/interop/default.aspx • Autres • Tracinghttp://blogs.msdn.com/b/jimoneil/archive/2010/10/08/azure-home-part-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