Episerver licensing has become an increasingly difficult topic to understand. With more websites being hosted in the cloud compared to the traditional on-prem server-based license model, what used to be a pretty simple conversation has become a lot more complex. When I've dealt with Episerver licensing, I've encountered huge confusion even from the Episerver account managers about the definition of 'what counts as a server'. Getting your licensing wrong can cause unexpected costs later on, delayed site launches and unhappy clients, so getting this right is essential!
To help ensure that you do not also fall into this trap, I've written this unofficial guide. This is an unofficial guide and is written by someone who implements Episerver on a regular basis, compared to an employee of Episerver. I recommend you read this article before purchasing an Episerver license. Read on to learn how to be a licensing 👑👑👑!
Traditional On-Prem Hosting
Back in the good 'ole days, Episerver licensing was pretty easy. You would host your Episerver CMS-powered website on a web server and you paid a license for it. Simple. If you wanted a load-balanced solution, you paid for a license for each node within the cluster. Two servers = 2 licenses 🖥️🖥️.
On top of normal licenses, Episerver also provides developer licenses, which are free. As long as you do not host the website in production, you can generate a 30-day license yourself that will get rid of the annoying license error Episerver will throw otherwise. If you are new to Episerver and want to know how to create a developer license, then I suggest you read, Episerver license, what is it and how do I get one?.
On-perm licensing was easy to wrap your head around. If you required a staging server, a QA server or an additional server, you purchased an additional license per server. This licensing model is still available for Episerver, although your account manager might tell you something different!
With the growing popularity of cloud hosting, the licensing conversation starts to become a lot more tricky. There are three main types of cloud hosting:
Sass (software as a service) You get access to an application only. You do not need to host SASS applications yourself, everything is managed for you. Some examples of SAAS products are Gmail and Facebookok. Episerver does not currently provide a SASS only version of the CMS, so this is the last I'll mention of it.
PASS (platform as a service) - In platform as a service, a provider like Azure or AWS provides a means to host your application within the Cloud. One type of platform that Azure provides to host applications is a web app. A web app, as the name applies is an application that runs in the cloud. In a web app, you don't have access to the underlining physical infrastructure, you do not have direct access to the machine itself, IIS or Windows. This complexity is abstracted away from you. Instead, in PASS you can create a web app by clicking a button in the Azure portal, you copy your Episerver website code into the app, via FTP, web publishes or a Ci/Cd pipeline and that's it. Everything on top, like Windows, IIS etc.. is all taken care of for you, including server patches, OS upgrades etc... PASS is nice as it allows you to focus on your application development, rather than your hosting.
IAAS (Infrastructure as a service). IAAS is basically the same as a traditional hosting environment, you still have a dedicated server, the difference is that it is a virtual server hosted in the cloud. You can RDP onto the servers, you can access the system event logs, you can install software on them as you see fit.
PASS and IAAS are the two approaches you will need to decide upon between when thinking about cloud hosting Episerver websites. When you host your site using Azure yourself, using a web app and using PASS will be cheaper. This is because you only pay for the resource that you consume. When you use IAAS you will pay for the server 24/7. If you have a virtual server, you will end up paying for resources and processing power that are time sitting around doing nothing 99% of the time. This is why IAAS is more expensive!
With a virtual server, you also have the added costs of having to manually patch servers, run Windows updates, run anti-virus scanners, as well as all the other maintenance tasks that come with server management. With PASS all of this is managed for you. In a PASS environment, if your website suddenly gets loads of traffic, scaling becomes simple. It is much easier to scale a web app compared to cloning a new server. Historically, if you failed to plan your load correctly and your website got too much traffic you were stuffed. After the incident, you would have to buy a new server, buy a new Episerver license, configure it, deploy your code onto and then hope that next time a spike occurs things will be better 🤞. Introducing a new server like this was not ideal. The process could take days or weeks, leaving your site slow, sluggish and potentially unusable for a significant period of time. Not to mention the amount of potential revenue loss. PASS makes our lives as application developers a lot easier, your web app can be scaled to include more RAM, processor speed, data storage virtually and within a few seconds 😍😍.
Episerver Cloud Licensing
We have different ways of hosting an application, we also have different Episerver license types. Episerver has three main licensing models:
- On-prem: ➡ Self-host yourself on a server, virtual or physical
- Cloud: ➡ Self-host yourself within a web application yourself
- DXP: ➡ Episerver host your website in a web app for you
The main cause of confusion between these different models is the definition of what is a 'server'. The term 'server' means two different things depending on what license you are buying. This is a very annoying and frustrating thing about Episerver licensing AND you need to be aware of this.
👉 'Server' in terms of the on-prem license, means as the name suggest a SERVER.
👉 'Server' in terms of cloud, means AN APPLICATION POOL instance.
The terms that are in bold can make a massive difference between the number of licenses that you need. Get it wrong and it can completely screw a clients budget. You may want to buy an Episerver cloud license with an IAAS setup. If you run multiple sites on the same server, with a cloud license, if each site runs within its own application pool, this counts as multiple SERVERS and not one. Even though they are all hosted on the same server, cloud licensing is targeted towards web apps. In web apps terms, each application pool is a server. Confusing? AGREED!
If you are running two websites, in two different application pools, on the same server in the cloud and you think that means you'd only need to buy 1 cloud server license, this assumption is wrong. You need two licenses according to our account manager! A cloud license maps on a per web apps basis. A web app is effectively a website with its own application pool. If you use a web app and a cloud license you don't need to worry. If you try and run multiple websites on the same server with a cloud license, double-check with your account managers how many licenses you need. This nuance definitely caused headaches for one client that I worked with, so be aware!
Why Use A Cloud License In IAAS?
You may be wondering why you would use a cloud license on a virtual server? Say, one day, you have a sudden burst of traffic and you need to create a new VM to handle the extra load. You quickly create a new server and deploy your code onto it to solve the lack of server capacity. You now hit an error as this new server won't have a valid Episerver license. Without a valid license, an error will display on the frontend website when someone tries to view the site. The only way to deal with this load is capacity planning. To save money you will not want to run the servers when traffic is low. You only want to create new instances during busy periods. Each time you create a new server the IP will be different as well as the machine key. Using a cloud license means you can have some licenses up your sleeve when you need them. An on-prem license will require you to bind the license against an IP or MAC address, you will not know this ahead of time. This is the IAAS cloud license use case. The main downside of this approach is that you need to give your best guess as to what your maximum license requirement will be ahead of time. This isn't ideal as you will need to pay for those idle licenses until that fateful day comes when you need them. This is why IAAS is not ideal for cloud hosting Episerver. You can't scale easily and you have more server maintenance to deal with.
PASS is impossible to run with a traditional license mainly because the hardware is abstracted from you. With PASS you always need a cloud license. A cloud license is based on consumption, rather than a fixed number of servers. In the past, you might have had 10 servers to deal with the load. Now with web apps, you could have one powerful web app that scales rather than needing 10 different virtual servers! This is why Episerver changed the license model to be determined by usage, rather than the number of servers. In theory, using a cloud allows would allow you to use a single license, meaning Episerver would lose money! As you can see picking which type of license to purchase has become really confusing. This is why it needs to be a factor when you start designing your network infrastructure and planning the budget!
One way Episerver combats this complexity is through a new service it provides called, DXC (now renamed to DXP). DXC is a people service Episerver provides. They will manage everything for you and you pay them a yearly fee. The DXC services come with three environments with all the required licenses. With DXC you get three Azure environments for live, pre-production and staging. You get unlimited autoscaling of apps (this is the only real way in Episerver to get proper auto-scaling ATM), you get unlimited sub-domains so you can host as many micro-sites as you need, you also get unlimited Episerver Find usage. I won't get into the pro's and con's of DXC here, I'm just going to focus on terms of licensing benefits. If you need to host multiple sites within a single Episerver instance it might be worth a discussion with an account manager.
In terms of true Episerver cloud autoscaling, DXC is your only real option. If you decide the DXC service isn't the solution for you, the current IAAS licensing model means you can't be fully elastic with Episerver. In this situation, you have to rule out autoscaling within a web app which is the best way to auto-scale. Aas mentioned with IAAS, you need to buy a predetermined number of licenses based on your assumed max license requirement for the year. This means that sadly you're paying for licenses that won't use most of the time if you run a site that sits quietly most of the time and then has a big summer sale, or, a Brexit day type of spike.
To try and make the model more financially beneficial, if you run a test / QA environment, you could buy a cloud license for 6 machines, use 3 for live and 3 for staging. If you need to burst the live site for a few days, you can then manually deactivate your staging licenses and re-apply them to use in your live environment. This ability to activate and deactivate licensing is the main difference between an Episerver cloud license and a normal Episerver license. A traditional license is bound to an IP or MAC address, cloud licenses aren't. Also, it's worth noting that a cloud license comes with an additional 10% price tag compared to a normal license.
As I'm hoping you can see, Episerver licensing has definitely become a lot more complex. If you host more than one Episerver website on a server and use a cloud license, be aware of hidden costs!!! Be aware the on-prem license and the cloud license is not like-for-like. They are very different and the way a server is defined is different. I'm hoping that in the future, regardless if you choose PAAS, IAAS or DXC then you have an option for a fully elastic system. It would be good to be able to pick a hosting model that best suit your business and know you had a corresponding Episerver license, but at the minute, it is what it is. If you want a fully elastic Episerver website, DXC is your only option. I fully admit I wouldn't know where to start if I had to design a single model for web apps and IAAS hosted applications, so I can completely understand why licensing is complex, however, that's why I implement websites and not build CMS applications. Happy Coding 🤘