Search code examples
iispublishzeroarrdowntime

Deploy on IIS with Zero Downtime using ARR


I am trying to figure out steps for deploying on IIS using ARR (Application Request Routing).

We have 2 production servers WEB1 and WEB2.

What I understood from research is, follow the below blue-green deployment process:

1) Turn all traffic on WEB2
2) Deploy on WEB1
3) Test WEB1
4) Turn all traffic on WEB1
5) Deploy on WEB2
6) Test WEB2
7) Turn traffic on both servers (WEB1, WEB2) 

My question is,
How can I do this with ARR ? Right now I have web1/testing.html as URL to do the HealthTest.
I can manually return false when I am trying to publish on WEB1
Question : is there any other settings Do I need to do in load-balancer ? or once server is marked unhealthy, all requests will be redirected to another server - WEB2 or do I need to explicitly set a rule to route all traffic to WEB2 ?


Solution

  • Now suppose you need to deploy the new version of the application to web1 and web2, and these two servers serve as the back-end servers for running the application to process requests, and the forwarding request is another server where ARR is deployed.

    1. When deployed to web1, you can take web1 offline in ARR. Once web1 goes offline, all requests will be automatically forwarded by ARR to web2. In monitoring and managment, there is only web2.

    enter image description here

    1. After web1 is deployed, you can directly access web1 to test whether the deployment is successful, and bring web1 online in ARR after success.

    enter image description here

    The same is true for deploying web2. When web2 is offline, all requests will automatically go to web1. You do not need to do in load-balance.