📜 ⬆️ ⬇️

Farm IIS and Application Request Routing



Most recently, my colleagues wrote several articles about shared-hosting based on Cloud Linux, and today I will tell you about the Microsoft technology that we use for Windows-hosting services . We are talking about a bunch of IIS 8.5 and Application Request Routing (ARR).

ARR is an extension for IIS that allows you to assemble multiple IIS servers into a single farm. It allows you to load balance HTTP traffic, use routing rules, and can act as a caching Reverse Proxy server to offload the main content delivery servers.
ARR can distribute traffic in various ways:

Another very important feature is the ability to use URL filtering rules. Using regular expressions, you can redirect HTTP and HTTPS requests separately to different IIS farms.
Inside the farm is constantly checking the "pulse" of all nodes. If the node is "dead", ARR will stop sending requests to it.
Nodes are checked in two ways:

The only difference between them is that in the monitoring mode, ARR will not stop requests for farm nodes in the event of their failure. And just make a note for the administrator, thus giving the possibility of manual control. And already when URL polling is enabled, if the node is unavailable, it will be paused.
ARR can be used not only for web hosting, but also for balancing the load on other services that use the HTTP protocol. An example of this is the Exchange OWA (Outlook Web Access) publication, great for organizing mail access for a large number of clients.
Starting with Windows Server 2012, it became possible to store all SSL certificates in one place accessible to all nodes. This greatly simplifies the operation of the entire farm. now you don’t have to spend a lot of time installing and managing certificates.
')
How does this work with us?

Previously, to provide shared hosting based on Windows, we used single servers. As they filled, new and new nodes appeared that were not combined in a single configuration. Over time, this became an inconvenience for both clients and system administrators who had to serve the entire zoo. As an example, an OS update on a web server, requiring a reboot, and therefore a suspension of all sites hosted on it.

Now I will tell you about the minimum fault-tolerant configuration that is used at the base of our shared-hosting.



All components of the farm are located in the cloud infrastructure, which already at the equipment level reduces the possibility of failure to a minimum. One of the most important components is data storage. load distribution loses all meaning if user content is unavailable, damaged, or worse, irretrievably lost. To solve this problem, the data is placed on a clustered file storage.
In addition to client sites, it also stores:

The result is that the entire configuration and user data are not stored on the web servers themselves. This greatly simplifies server setup, storage and backup. The farm of web servers and load balancers can be horizontally scaled by new nodes. For clients to access their content, a separate host is organized, which acts as an FTP server and Web Deploy service. On our shared-hosting, websites written in PHP and ASP.NET feel equally comfortable.

Our customers manage hosting through a personal account . All tasks that the user sends for execution are put in a queue and the orchestrator takes over. It is this that manages all the services of Windows hosting using PowerShell scripts.

But there are also very demanding customers. We have something to offer them: geo-distributed farms. They are physically spaced across several data centers. Data replication occurs at the file storage level. DFS is great for this. Client data between data centers can be replicated either automatically or on request. And since, in addition to the content, the entire configuration of the web servers is also replicated, this is an added bonus to reducing the costs of administering this entire enterprise.

For today, in the next article I will try to describe in detail how to make all of this live in harmony and smoothly fulfill my duties.

Source: https://habr.com/ru/post/274923/


All Articles