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 set your application as Kentico Azure project (or convert a web application project to Azure project) prior to deployment. 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.
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 for smart search must be configured and running||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)
|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.|
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.