Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why would azure be restarting website when i do a deployment slot swap?

I've a .net 4.5 website running on Azure Websites. I've a staging deployment set up. I warm up both sites and then i run the swap process (both from azure portal and from Azure powershell). No matter what I try the swapping process restarts my websites (both) and they take about 3 minutes to boot up.

I was under the impression the deployment swapping was supposed to keep the websites "warm" and have no down time? My websites are unusuable for about 3 minutes!

As far as I can tell both production and staging slots have the same application settings etc.

Any advice or pointers would be greatly appreciated.

like image 637
richardwhatever Avatar asked Mar 18 '15 18:03

richardwhatever


People also ask

How Azure deployment slots work?

Azure Functions deployment slots allow your function app to run different instances called "slots". Slots are different environments exposed via a publicly available endpoint. One app instance is always mapped to the production slot, and you can swap instances assigned to a slot on demand.

How does Azure app Service ensure that production performance doesn't drop just after a swap?

How does Azure App Service ensure that production performance doesn't drop just after a swap? App Service warms up the app by sending a request to the root of the site.

How many deployment slots does Azure app have?

To scale your app to a different tier, make sure that the target tier supports the number of slots your app already uses. For example, if your app has more than five slots, you can't scale it down to the Standard tier, because the Standard tier supports only five deployment slots.

What is slot swap in Azure?

Swapping is another advantageous feature about deployment slots. Instead of deploying again new release of application into production environment, we can simply swap staging slot (newly added deployment slot) with our production within same app service.


1 Answers

Jeff is right. When there are sticky app settings or connection strings defined for the slot then the website's worker process will be restarted during the swap. The sequence of actions that happen in that case is this:

  1. Apply the sticky settings from production slot to the site's worker process that is currently in staging slot. That causes the restart of worker process;
  2. Warm up the site's worker process in the staging slot by making http requests to its root URL on every VM instances where site should be running;
  3. Swap the worker processes between slots. Now the warmed up worker process is in production slot and is accepting production traffic;
  4. Apply the sticky settings from staging slot to the worker process that is currently in staging slot. At this point this is the "used to be in production" worker process. This config change causes restart of that worker process, but at that point it does not take any production traffic.
like image 142
RuslanY Avatar answered Oct 18 '22 22:10

RuslanY