Comparing on-premise, IaaS, and PaaS for Managed Cloud

Abstract

Compare and contrast the differences between on-premise, IaaS, and PaaS to find the best solution for your Managed Cloud.

Sitecore software has different infrastructure hosting options, for example, you can host on-premise with a cloud provider, have a fully managed solution in the Cloud, or have a mixture of both. For a high-level view of these options, understand the considerations for on-premise, IaaS, and PaaS, the hosting options that Sitecore supports, your hosting choices, and the hybrids of IaaS and PaaS.

The right solution for you depends on your requirements. Compare the following:

  • On-premise

    You can build the exact type of machine that you want, it is dedicated, and you can specify exactly the type of setup that you need. There are, however, a lot of up-front costs, plus you are responsible for maintenance and uptime.

  • Infrastructure as a service (IaaS), aka Virtual machines (VMs)

    This is similar to running an on-premise solution, but your up-front costs are less. With VMs you can tailor servers to meet your exact requirements. You are still responsible for updates, security, uptime, and maintenance, but you can upgrade or downgrade if your needs change.

  • Platform as a service (PaaS)

    There are minimal up-front costs and you do not need to be concerned about the maintenance of the underlying machine. The downside is that you only have a limited choice of computing options and functionality compared to the other solutions, which means you cannot tailor your machine to specifically meet your needs.

To compare and contrast the specific differences, and understand who is responsible for management, refer to the following table:

On-premise

(Use your own server)

IaaS

(Use a VM)

PaaS

(Use the Azure App service)

Applications

User

User

User

Data

User

User

User

Runtime

User

User

CSP

Middleware

User

User

CSP

Operating system

User

User

CSP

Virtualization

User

CSP

CSP

Servers

User

CSP

CSP

Storage

User

CSP

CSP

Networking

User

CSP

CSP

Sitecore supports on-premise, IaaS (VMs), and PaaS. To install on physical servers or VMs (including VMs on Azure), use the installation guides and the Sitecore installation framework (SIF). If you want to install on Azure PaaS, refer to the Sitecore Azure Toolkit, Getting started with the Sitecore Azure Toolkit, and ARM templates.

When deciding on a hosting option, there are many different factors to consider. The following table outlines some of the decision points that can help you choose the solution that is right for you. The following table is not a finite list of considerations, but it can help disqualify one solution over another.

Use on-premise if:

Use IaaS if:

Use PaaS if:

You have specific requirements for computing and functionality.

You need more computing power than PaaS can offer

Your computing and functionality requirements are met by PaaS.

You must build a bespoke solution with clear-cut specifications.

You must install applications on your machines.

You do not need to access the underlying PaaS machines.

You have the budget to build an entirely bespoke solution.

Your budget does not extend to a PaaS solution.

Your budget allows for the extra expense of some of the PaaS services.

You have the in-house skill-set to manage VMs, updates, security, uptime and maintenance.

You already have the skill-set in-house to manage VMs.

You do not have the in-house skill-set to manage VMs, updates, security, uptime and maintenance.

You do not anticipate having to scale.

You do not anticipate having to scale horizontally and vertically very often, or quickly.

You anticipate having to scale vertically and horizontally, often and quickly.

Most Sitecore customers have an environment that is a mix of IaaS and PaaS, using PaaS services such as Azure SQL, Application Insights, and Azure Redis. This is because the services have a wide feature set and are complicated to manage in IaaS.

Azure App Services versus VMs

It is common to use some of the Sitecore roles in Azure App Services and in VMs. The two most common roles that customers move into VMs, due to the need for high computing power and throughput, are the Content Delivery and xConnect Collection roles.

Note

If you are thinking of using VMs, be aware that Sitecore does not provide any out-of-the-box setup for a VM infrastructure. VM usage and setup within an infrastructure is unique to every organization. Sitecore therefore cannot provide an automated way to assist your setup.

To build a typical hybrid of IaaS and PaaS you must:

  • First, set up your VM environment.

  • Fully set up Solr (if you are using it in the VMs). You do not need to fully set up Sitecore software.

  • Use the Sitecore ARM templates to fully set up all of the required PaaS services.

  • Before you use any of the PaaS roles that you moved to VMs, you must delete them from the ARM templates. Alternatively, you can let the ARM templates set everything up, then delete the roles after they are created.

  • Set up Sitecore roles on the VMs using SIF (required).