Licensing has become an increasingly difficult topic. With the growing departure of hosting web applications in a traditional server-based model, into the cloud, what used to be a pretty simple conversation about the number of licenses you need has become a lot more complex. As technology has progressed, having a solution that can autoscale in the most financial beneficial has to become a standard requirement rather than a dream. Creating a hosting environment that can auto-scale with a few button clicks and a credit card is easy with Azure or AWS, however, that leaves the question... when you need to burst how does your Episerver licensing works. In today's post, I'm going to cover the licensing options you have available to you with Episerver. I should add that this is an unofficial guide and is written by someone who implements Episerver on a regular basis, compared to an employee of Episerver.
Back in the good 'ole days, Episerver licensing was pretty easy. You'd run your application 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 in tour cluster. Two servers = 2 licenses. Developer licenses have always been free, for development use and you can generate themselves. 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?. Episerver defines a developer license as the one you use to build your project on, if you wanted a staging server, a QA server or Intranet then you need to purchase an additional license per server. This model still is still available for Episerver and many companies still host their environment on dedicated hardware and use this.
With the growing popularity of the cloud, the conversation around licensing starts to become a lot more tricky. In cloud terms, you have three main options, Sass (software as a service), Pass (platform as a service), or, Iass (Infrastructure as a service). For those of you new to cloud hosting. Sass is basically where you can use an application in the cloud, think in terms of Gmail or Umbraco cloud. In this scenario, most of the hardware and software implementation is taken away from you. Content editors can think of Episerver as a Sass, however, Episerver websites don't really fit into the simple Sass model in terms of hosting. Most Episervers clients are SME (small to medium businesses) and above. EPiserver builds are all custom and require a lot of thought and effort to produce, so Sass with Episerver is a not go. This leaves PASS and IAAS as the two remaining cloud hosting options.
IAAS is basically the same as a traditional hosting environment, you have some dedicated virtual servers 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, on the other hand, can be thought of as Episerver running within virtual cloud process rather than within IIS. 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 a full server, you do not have access to IIS or Windows. Instead, in Paas you create a web app by clicking a button in the Azure portal, you copy your Episerver code into Azure, via FTP, GIT or a Visual Studio publish and that's it. Everything on top, like Windows, IIS etc.. is all taken care for you. THe benefit of PAAS compared to IASS, is that in most traditional solutions, you pay for a full server 24/7 that spends most of its time sat around doing nothing. With a VM you still need to worry about patching servers, anti-virus, etc.. with Pass all of this is managed for you. In a Pass environment, if your website suddenly gets loads of traffic, scaling becomes simple. Historically, if you failed to plan your load correctly and your website got too much load, you would have to buy a new server, buy a new Episerver license, deploy your code to it and then add it to the load balancer. This process could take days or weeks, leaving your site low and sluggish and potenially, not to mention the amount of potenial revenue loss. Paas makes our lives as application develoeprs a lot easier, your web app can be scled to include more ramm, processor speed, data storage virtually and within a few seconds.
This is the part of the story where Episerver licensing gets tricky. If you choose IAAS, you need a license for each VM that you run Episerver on. Say, one day, you have a sudden burst of traffic and you need to create a new VM to handle the extra load, you deploy your code to it and add it to the cluster. You now hit an error as this new server won't have a valid Episerver and the license error will display for anyone who visits that site. The only way to deal with this load then is capactiy planning. You need to have a best guess as what your maximum license requirement ahead of time. This isn't ideal as you then need ot pay for those idle licenses until that fateful day comes when you need them. In Pass, it gets even harder to measure with the tradional license, as you don't know the number of processes running your application. So in the past you might have had 10 licenses, you now only need one web app, so your license costs need to be determined by usage, rather than the number of servers your Episerver is installed on. This is why the question of which type of license to purchase has become really confusing and also needs to be a factor when you start designing your network infrastructure. One way Episerver combats this complex is through it's Episerver managed hosting solution, called DXC. I won't get into the pro's and con's of DXC in here, I'm just going to talk in terms of licensing benefits. The DXC services comes with all the licenses you need, you get three Azure environments for live, pre-live and testing, you get unlimited autoscaling of apps (the only real way in EPiserver ATM), you get unlimited sub-domains so you can host as many micro-sites as you need, you get unlimited Epi Find usage. DXC is based o page views not number of servers, so as logn as your page views remaing within your quote you can easily budget your financial year. So in terms of true Episerver cloud autoscaling, DXC is your only real option. If you decide the DXC service isn't the solutions 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, instead, as mentioned above 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 compare to a normal license.
As I'm hoping you can see, licensing has definitely become a lot more complex in the next few years I would assume the current licensing model will change in the future. Personally, I've been in situations where an Iaas environment has mad more sense technical, e.g. the client had legacy applications that wouldn't work in a web apps, but because of the licensing model, the application couldn't be fully elastic. That's the point you need to decide which is more important to you.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 suited 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 pay by usgae license for a non-DXC web app, or, an Iaas hosted application.. so I can completely understand why licensing is the way it is.. but then hey, that's why I implement websites and not build CMS applications ;)
Software Architect, Programmer and Technologist Jon Jones is founder and CEO of London-based tech firm Digital Prompt. He has been working in the field for nearly a decade, specializing in new technologies and technical solution research in the web business. A passionate blogger by heart , speaker & consultant from England.. always on the hunt for the next challenge