163

I'm trying to understand why it can take from 20-60min to deploy a small application to Azure (using the configuration/package upload method, not from within VS).

I've read through this situation and this one but I'm still a little unclear - is there a weird non-technology ritual that occurs while the instances are distributing, like somebody over at Microsoft lighting a candle or doing a dance?

emptyset
  • 3,164
  • 4
  • 26
  • 33
  • 12
    This is exactly the reason I still use EC2 even though I love the abstraction away from the OS administration that Azure provides. – stepanian Mar 29 '11 at 08:19
  • 15
    In the meantime we are almost 3 years further and still very slow. – staccata Jan 11 '14 at 14:09
  • @staccata Web sites are way faster to deploy so use them if you can. – Casey Jul 01 '14 at 18:05
  • Tough to fathom that 5 years have gone by but the start-up time is still the same. – rks Feb 26 '17 at 18:18
  • 5
    now is end of 2017 and this is still super slow. Sometimes I think about unboxing a computer then install os then deploy app manually is faster than this. – hoangpx Sep 15 '17 at 21:18
  • End of 2018. I've just registered yesterday, and I could resize the pool in 5 minutes. Today I'm resizing to 1 dedicated node on a custom image, it's been over 30minutes already. :( This does seem like some voodoo is going on here. – sr9yar Dec 04 '18 at 16:14
  • 3
    2019 is nearly over and even a simple Windows 10 virtual machine provision still takes 8-10 minutes. – Berkant İpek Oct 22 '19 at 14:06
  • At the end of 2019, provisioning a new instance of APIM has just crossed the 35 minute mark. – Rob Grant Dec 26 '19 at 22:48
  • 2
    // , It's a business decision. They're not selling to devs. – Nathan Basanese May 05 '20 at 04:09
  • coming towards end of 2020, az cognitive search service taking >1hr. Always completes. – frackham Oct 31 '20 at 18:23
  • nearing the end of 2022 and can confirm small nextjs app takes an incredibly long time to deploy – Jake Boomgaarden Sep 13 '22 at 09:06
  • joining the league of chads who exposed azure above. Oct 2022 it not just taking time to deploy but also loading the app extremely slow in the browser. AWS EC2/Linux server >>>>>>>>> Azure – Muhammad Umar Oct 31 '22 at 09:45

3 Answers3

59

As a fellow Azure user, I share your pain - deploying isn't "quick"/"painless" - and this hurts especially when you're in a development cycle and want to test dev iterations on Azure. However, in general deployments should take much less than 60 minutes - and less than 20 minutes too.

Steve Marx provided a brief overview of the steps involved in deployment: http://blog.smarx.com/posts/what-happens-when-you-deploy-on-windows-azure

And he references a deeper level explanation at: http://channel9.msdn.com/blogs/pdc2008/es19

Stuart
  • 66,722
  • 7
  • 114
  • 165
  • 13
    Is this answer still appropriate for 2018? I am trying to deploy a redis cache on Azure. My first service on azure - been waiting for 25 mins now and can't believe that this is normal / acceptable. – Gravy Jan 22 '18 at 17:09
  • 1
    @Gravy I've been using a lot for years now, and yes, deployments (especially of VMs) can at times be painfully slow. Generally you're looking between 10 and 60 minutes. – Cocowalla Jun 12 '18 at 12:38
26

There's a lot that goes on behind the scenes when you deploy an application to the Azure cloud. I don't have any special insight into what's going on behind the curtain, but having worked on the VS tools to upload projects to the Azure cloud, these are my impressions as an outsider looking in:

Among other things:

  1. Hardware must be allocated from the available pool of servers
  2. The VHD of the core OS must be uploaded to the machine
  3. A VM instance must be initialized and booted off that VHD image
  4. Your application package must be copied to the VM and installed
  5. The VM monitor must wait for your service to start up, or fail
  6. The data center load balancer and firewall must be made aware of your application's service endpoints
  7. Once all of that has synchronized, your app is accessible from the web.

The VHD image is probably gigabytes in size, much larger than your app upload. Even on a superfast datacenter network, it takes time to move that much stuff into the VM, unpack it, and boot from it. Also, the load balancer and firewall are probably optimized to make routing requests the highest priority. Reconfiguring the firewall and load balancer is lower priority, and has to be done without interrupting traffic flow.

Also note that all this work only has to be done for a new deployment. Updating an existing deployment rolls out much faster - 2 to 3 minutes instead of 20 to 30 minutes.

dthorpe
  • 35,318
  • 5
  • 75
  • 119
  • 2
    Interesting points, but considering we have the fastest of every options available these days. Shouldn't this allow us do all this in seconds if not ms? – afr0 Oct 03 '16 at 22:25
  • "These days" is now 5 years after when my original comment was written. I'm sure Azure provisioning performance has improved since 2011. :> – dthorpe Oct 05 '16 at 20:40
  • 10
    still not in seconds I can confirm that – afr0 Oct 06 '16 at 02:00
  • 1
    definitely not. – philippeback Sep 04 '17 at 12:11
  • 7
    Yeah, still takes like 10 minutes for a new deployment. Honestly, I'm a little surprised Azure doesn't keep some VMs waiting at step 4 in this list to improve their customer experience. – Fls'Zen Dec 06 '17 at 18:48
20

Check out this PDC10 video by Mark Russinovich. He goes into great detail on what's going on inside Azure with some insights into the (admittedly slow) deployment process.

Original link is no longer working. Here's another link to a version of the same presentation: https://channel9.msdn.com/events/Build/BUILD2011/SAC-853T

BrentDaCodeMonkey
  • 5,493
  • 20
  • 18