Is each instance of Azure Application Service running on its own virtual machine?

(Note that I use the new "Azure Portal" for blade servers exclusively and use new terminology, so avoid words like "Azure Website" as they are not used here).

In Portal, I created two Azure App Services, "foo-production" and "foo-staging" - they exist in the same subscription and resource group and use the same application maintenance plan. These App Services are production and intermediate deployments of a simple ASP.NET web application that runs like a regular web site.

Application Service Plan "Basic: 1 Small".

I understand that when you use Azure App Services with a basic or higher plan for servicing applications, this plan is a virtual machine in which I can host as many IIS websites as possible - these IIS websites are represented in Azure as Azure App Services

Given this, it can be assumed that when I access the file system of a virtual machine in Kudu ( https://yourwebsite.scm.azurewebsites.net/DebugConsole ), which I could see every website file is in some common root directory .

However, when I access the Kudu console for the foo-production website, I see that its files are in D:\home\site\wwwroot , and the files for foo-staging not found.

If I understand this correctly, this means that Azure actually created a whole new virtual machine for each website only and that websites cannot share the file system - and that I cannot have a more complex IIS configuration managed by Azure, - I would have to create my own Windows Server managed virtual machine.

I can understand the motivation of a separate virtual machine for each website, it just seems wasteful - Windows Server requires at least a gigabyte of memory for each virtual machine, but my website is basically just static files (but I can't use the Shared Application Service Plan because I need some of the more complex features). This may not be economical for Microsoft.

How can I use multiple Azure App applications in an Azure management environment with the same virtual machine? Or am I thinking about it wrong?

To avoid the problem with X / Y: I declare that my main problem is saving files. The web application that I am deploying, uploads the downloaded files to the webroot subdirectory, and these files must be there permanently. There is ambiguous information: some people offer websites (and all of their files) are actively destroyed and recycled and that Azure Storage Blobs should be used. I would like to use Azure File Shares, unfortunately, I get ACCESS_DENIED errors when using WNetAddConnection2 , and some users report that Azure File Shares cannot be used from Azure App Services, although I can not find anything authoritative from Microsoft about this.

+5
source share
3 answers

As I replied here , all application services within the plan are launched in one set of virtual machines, distributing all the computing resources.

You assumed that each application service plans to use shared files with all other applications. This is not true: each application service will have its own set of files, in d:\home for each application service. If you need to share files, you will need to use something external for applications such as the Azure File Service (SMB share). Azure File Service is separate from the space created for you based on each application.

+5
source

If they are in the same application maintenance plan, they work in the same virtual machine. Try entering the hostname in the Kudu Console for each and you will see the same machine name.

But note that each of them runs in a different sandbox, which prevents them from seeing each other's files. Folders like d:\home are virtualized and actually point to network resources. Therefore, you cannot use this to draw conclusions that the machines are the same.

+5
source
  • Azure Application Service is similar to Container (Docker terminology). Although it is based on a virtual machine, it is much lighter than the VM itself. For example, you cannot use RDP.

  • Azure "VM" is a full-fledged virtual machine. The OS can be Windows or any of several different Linux variants.

  • You can get more information here:

Here's a great article comparing websites (one example application service), cloud services, and virtual machines:

http://www.c-sharpcorner.com/UploadFile/42ddd2/azure-websites-vs-cloud-service-vs-virtual-machines/

Azure Websites

Azure sites have very little responsibility, and relatively less control. This is the best choice for most web applications. Deployment and management are integrated directly into the receive platform.

Azure Cloud Services

If you want more, a web server, such as the environment you might want with Azure Cloud services. You can delete your cloud services and configure launch tasks. Cloud Services Provide You More Management and Agility Than Azure Websites

Azure virtual machines

Provides you with a rich feature set; however, properly configured, security and virtual machine support require much more time and more IT experience compared to Azure Cloud Services and Azure sites.

+2
source

All Articles