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 Report

Transcript 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.