Microsoft Azure web hosting options

Microsoft Azure provides three main cloud solutions where you can host your Kentico applications. Each of them has its own benefits and drawbacks, and they differ mainly in the amount of control they offer you over the site and machine.

  • Web Apps – least control, easy management
  • Cloud Services – moderate control, moderate management
  • Virtual Machines – most control, demanding management

You can run Kentico in all three hosting platforms. When deciding the particular platform which you want to use for your project on, consider the amount of control you will need, as well as the amount of maintenance work you are prepared to spend on maintaining the machine infrastructure.

Azure web hosting options

Azure Web Apps

Azure Web Apps are quick to create and easy to set up and manage. However, they do not offer as many customization options as the other two options.

You can deploy your application to Web Apps through several ways (FTP, Git, Visual Studio, etc.). However, you will never have direct server access.

Projects can be either websites or web applications, and can run on multiple versions of .NET. Deployment of changes is done via FTP or Web Deploy, so the changes are easily rolled out and applied to the application. This makes Kentico development a fast and simple process where changes can be completed and deployed from within Visual Studio. You can also utilize an integration to an online source control (Visual Studio Online, GitHub, Bitbucket, etc.).

Azure Cloud Services

Cloud Services was the first option to which you could deploy your application before the other options were introduced.

The main disadvantage of this platform is that you need to use the Azure project type for the Kentico application (or convert a web application project to an Azure project). Additionally, you need to package your application as a snapshot and then deploy it to the cloud. Azure pulls from this snapshot to create the application. This creates a scenario where every change to the application requires a full deployment.

Therefore, we believe that this model is now outdated and that you should rather consider using Azure Web Apps because of a quicker deployment process.

Deployment to Azure Cloud Services is not documented or recommended for Kentico sites that use the MVC development model.

Azure Virtual Machines

With Azure Virtual Machines, you can choose from a gallery of images for the virtual machine operating system. Microsoft provides options for Windows, Linux, Ubuntu, CoreOS, and others. Developers have the option to choose nearly any configuration of SQL Server, BizTalk Server, or even Visual Studio for a cloud-hosted development machine.

Kentico applications that require a lot of customization may benefit from a Virtual Machines deployment because the developer has the ability to control every aspect of the environment. Changes to the code can be deployed for example using Visual Studio or through other ways. Additionally, complex services and integrations can be easily managed via remote desktop. Also, legacy Kentico applications that cannot be converted to a web application can easily be set up on the desired OS and managed like an on-premise solution.

Comparison from Kentico perspective

Web Apps

Cloud Services

Virtual Machines

Note

Scalability

support auto-scaling

support auto-scaling

additional networking configuration required

You need to configure web farms in Kentico to ensure scalability. Please see individual sections in the documentation.

Machine access

no remote desktop access

remote desktop access, without server administration

complete control of OS and environment

Defines the level of access you have over the cloud computer your application is running on.

Machine management

no maintenance is required

no maintenance is required

configuring, patching, and maintaining the operating system is required

Setting up

fastest deployment model

lengthy configuration and deployment process for Kentico applications

 lengthy configuration of the virtual machine

Deploying changes

quick - Web Deploy

complete deployment required

quick - Web Deploy

Deployment slots for the file system

deployment slots available

staging deployment slot

Cloud Services: you can use the Staging deployment slot to deploy a new version of your website and after testing it, you can swap the staging website with the production website.

Project type

website or web application

 Kentico Azure project (or web application)

website or web application

Migrating a project from Cloud Services to Web Apps is easy. The other way around is more difficult.

Smart search

no special configuration required

a special worker role must be configured and running to use local smart search indexes

no special configuration required

Requires Azure Blob Storage

(can present potential problems)

no (but possible)

 yes

no (but possible)

Kentico Windows Services
(Kentico CMS Health Monitor and Kentico CMS Scheduler)

not possible

possible

possible

Startup tasks

not possible

possible

possible

Documentation

Running Kentico in Azure Web Apps

Running Kentico in Azure Cloud Services

We do not provide documentation for Virtual Machines, as you manage Kentico in a virtual operating system, which is similar to hosting Kentico on a server.

Conclusion

We recommend that you consider Azure Web Apps as the first cloud option for your applications.

Only if you necessarily need a remote desktop access to the computing machine or you need the Windows Services and startup tasks to be running, should you consider using the Azure Virtual Machines or Azure Cloud Services instead.

Official Microsoft Azure documentation

Microsoft Azure services comparison

DevNet articles

Hosting Kentico MVC Applications in Azure

Deploying Kentico to Microsoft Azure – Know your web hosting options

Deploying Kentico to Microsoft Azure – Know your database options