4

I want to run a Node.js API on an Azure App Service.

I have the options of Azure App Service on Linux or Windows.

What are the arguments for choosing one over the other?

lox
  • 167
  • 1
  • 7
  • 1
    There is no correct answer. You should compare them and choose the right one for you. – Shui shengbao Apr 21 '17 at 08:45
  • Linux and Windows are two type OS platform. – Shui shengbao Apr 21 '17 at 08:48
  • I am aware that Linux and Windows are operating systems. I was more interested in knowing if there were any differences in pricing, performance, stability etc. – lox Apr 21 '17 at 09:10
  • The price is same. https://azure.microsoft.com/en-us/pricing/details/app-service/ – Shui shengbao Apr 21 '17 at 09:11
  • The core component iisnode for Azure App Service on Windows is out of maintenance since 2018, https://github.com/Azure/iisnode So Azure App Service on Linux is no doubt the only feasible option onwards. Similarly, PHP/Python web apps should also go to the Linux based Azure App Service. – Lex Li Nov 20 '20 at 14:44

1 Answers1

0

App Service on Linux is still in preview, so stick with Windows for production environments.

For Dev/Test (or even non-critical prod environments), if you have a Node.JS or Php application Linux is the way to go because it runs Apache which offers way more performance than on Windows IIS. Additionaly, the App Service on Linux is currently 50% of the regular price.

Public Preview pricing for App Service on Linux is 50% of the regular price, and the price is calculated by halving the number of compute-hours consumed by your App Service Plan.

No SLA is offered during the public preview period.

When the Web App for Linux launched last year I was quick to perform a few basic performance tests between the two. You can find my original article here (Beware: Bing Translation from Portuguese!). While this article is definitely outdated, at that point in time, Linux was performing about two times faster than Windows for a typical WordPress Blog application. The problem I had back then was the large number of failed requests I was getting from the Linux platform that should be fixed by now.

Considering features, the Linux platform also lags behind Windows. Some features, such as virtual network integration, Azure AD, or Kudu site extensions, are not complete. There's also no Free/Shared Tier or availability beyond West US, West Europe and Southeast Asia datacenters.

Bruno Faria
  • 3,814
  • 1
  • 13
  • 18
  • My experience is using NodeJS on Windows servers. In some scenarios it silently fails to deploy. Something like when the app is running there are file system locks in place. But it wasn't every time or in the same way. It was extremely frustrating. When this happened I seemed to remember Windows having this problem in the past. I can't believe that Windows still suffers from this. I'm forced to use Windows servers where I work so that won't change. Hopefully the missing Linux features now exist (2 years later) so those new to Azure can choose Linux. – HankCa Apr 26 '19 at 06:37