Microsoft Application Request Routing (ARR) is a proxy based routing module that forwards HTTP requests to content servers based on HTTP headers and server variables, and load balance algorithms. For more information, refer to Using Application Request Routing.
There is a feature called "host name affinity" that is designed specifically for the shared hosters. This article provides an overview of this feature and how it can used to deploy an environment that is highly available and scalable, easy to manage, and potentially create additional business opportunities.
Common Shared Hosting Deployment
Below is a diagram of how a typical shared hosting deployment environment may look like:

-
User requests www.site2.com.
-
DNS is requested for www.site2.com.
-
IP address for www.site2.com is returned.
-
Browser sends requests to IP address.
-
Based on host name, requests are routed to corresponding site.
-
Responses for www.site2.com is returned.
While above deployment works, it has the following disadvantages:
-
There is no redundancy among sites.
-
The administrator has to load balance the traffic by limiting the number of sites per server.
-
The server resources may not be utilized evenly across servers.
-
The administrator has to manage multiple configuration files.
Shared Hosting with Application Request Routing
The "host name affinity" feature in Application Request Routing enables the shared hosters to rethink how the sites are deployed. Application Request Routing affinitizes the requests, regardless of whether they are made from one client of multiple clients, to one server behind ARR, ensuring that a given site is consuming resources only on one of the servers. The below diagram illustrates such deployment environment:

- User requests www.site2.com.
- DNS is requested for www.site2.com.
- IP address for www.site2.com is returned.
- Browser sends requests to IP address.
- ARR load balances the requests to one server and affinitizes the requests for www.site2.com to the same server for the lifespan of corresponding worker process.
- Requests are sent to one of the servers.
- Content for www.site2.com is requested from a file share.
- Content for www.site2.com is returned.
- Responses for www.site2.com are returned.
Above deployment environment with Application Request Routing provides the following benefits over the common shared hosting deployment:
- The requests are dynamically load balanced by Application Request Routing.
- The administrator can scale the environment horizontally by adding new servers without predefined site allocations.
- The servers' resources are more evenly distributed.
- The sites have high availability.
- There is only one shared configuration to manage.
To learn how to use "host name affinity" in Application Request Routing, refer to Shared Hosting using Application Request Routing.
Comments