Problématique
Outils / types d’implémentations
Hardware Load Balancing
Windows Network Load Balancing
IIS ARR
Répartition au niveau client (DNS, Applicatif, …)
Windows Server AppFabric
WCF Routing Service
Et dans Azure?
www01
www02
www…
www-n
www VIP
Ferme Web
www01
Processus 01
Processus 02
Processus - n
Processus …
Web Garden
Utilisateur servi par plusieurs serveurs, ou plusieurs processus
Où est l’état ?
Sesssion ASP.NET
En mémoire <= pb
SQL Server
AppFabric Caching
…
Affinité de session
Le même utilisateur sur le même serveur Web
Difficile à atteindre
Le serveur Web peut tomber
Possible aussi uniquement pour des raisons d’optimisation du cache
Load Balancer 01
Load Balancer 02
www01
www02
www…
www-n
www01
www02
www…
www-n
Hardware load balancing Windows NLB
Travaille au niveau TCP/IP et au niveau
applicatif
Travaille au niveau TCP/IP
Affinité possible en fonction de critères
applicatifs
Affinité uniquement en fonction de
critères TCP/IP (n° port, adresse, …)
Routeur => client et fermes dans des
sous réseaux différents
Peut être dans le même sous réseau
Routeurs Nécessite de faire fonctionner les
switches en hubs
Peut tester la santé des serveurs de la
ferme au niveau applicatif
Santé gérée uniquement au niveau
TCP/IP (sauf management pack)
Appliances matérielles Inclus dans Windows Server
Montée en charge accrue d’un site Web via l’en-tête HTTP et équilibrage de
charge via des algorithmes basés sur des règles de routage des requêtes HTTP
Routage des requêtes HTTP
Équilibrage de la charge
Complémentaire de Windows NLB qui ne travaille qu’au niveau
TCP/IP
Permet de tenir compte de la charge des serveurs, de leur
disponibilité au niveau applicatif, de gérer de l’affinité même à
travers Internet
http://www.msteched.com/2010/NorthAmerica/WEB303
Workflow Service Host
Persistence
(Instances)
Monitoring
Activity Library
Receive
Send
...
Management
Endpoint
Persistence
Behavior
Tracking
Behavior
AppFabric
CACHING
MONITORING
WORKFLOW HOSTING
SERVICE HOSTING
SCALE OUT HIGH AVAILABILITY MANAGEMENT
Windows
Server
AppFabric
Windows
Server
AppFabric
Load
Balancer
Persistence
DB
Workflow
Service
Workflow
Service
Workflow
Management
Service
Workflow
Management
Service Windows
Server
AppFabric
Workflow
Service
Workflow
Management
Service
Instance
123 | data
456 | data
789 | data
011 | data
AppFabric
SQL
Persistence
Database
Management
Service
4
5
instance 2
App Domain
Workflow Service Host
Workflow
SQL Instance Store
1
3
AppFabric
Workflow
Service
AppFabric
Workflow
Service
Persistence
Database
Monitoring
Database
Network
Load
Balancer
Management
Service
Management
Service
Administration
Tool or Script
instance
1
2
3
4
5
6
7
8
Building a WCF Router
http://msdn.microsoft.com/en-
us/magazine/cc500646.aspx
http://msdn.microsoft.com/en-
us/magazine/cc546553.aspx?pr=blog Impact sur les performances
Reroutage sur un endpoint NamePipe
Pattern Composition
Transacted Sessions
Session Replay
Error Recovery
Unicast vs. Multicast
Customer Feedback:
Outside the scope of the customer's problem
They just want their app to work
Limited reusability
If I do build one of these, making it generic is a pain
Content Based Routing
Protocol Bridging
Error Handling (Failover)
Dynamic Rule Updates
WCF
Client(s)
Routing
Service
S1
Filter Destination Priority
If (has header A) Service1 0
If (arrives on endpoint B) Service2 0
S2
S1’
S2’
Backup
S1Backup
S2Backup
http://channel9.msdn.com/Shows/Cloud+Cover/Cloud-Cover-
Episode-24-Routing-in-Windows-Azure