Modern applications require flexibility to accommodate unpredictable and often spiky workloads. This means that the license for the software that powers your application must be able to fit requirements of your deployment, not the other way around when you have to work with limited license options dictated by a vendor. In this post I will discuss licensing options for popular Java Application Servers, namely IBM WebSphere, Oracle WebLogic, Red Hat JBoss and Pivotal tc Server. This table below represents a summary of various license types available for each of the products:
* – Free production for WAS Liberty up to 2 GB of RAM
** – Annual subscription is available by purchasing 12 months worth of monthly subscription
As you can see in this table, there are three broad categories of licenses. Lets discuss them one by one and compare vendors across these categories.
Perpetual license means that the customer can purchase software once and use it forever with no time limits. Purchase of support for the software is optional, but majority of customers do buy support for their perpetual licenses since it not only provides vendor help with problems resolution, but also gives entitlement to newer versions of software. Besides, support is usually charged as % of the initial license cost and the longer the time period, the better perpetual license looks compared to the term license where you pay flat fee every year.
IBM, Oracle and Pivotal provide perpetual licenses for their application servers. Red Hat is the only vendor that does not have this license type, that is unless you use free and Open Source WildFly server and support it yourself. Support costs are 20% for IBM, 22% for Oracle, 25% for Pivotal. Unlike Oracle and Pivotal, first year of support for IBM license is free.
For all three vendors perpetual licenses can be used in the cloud environment – that is you can buy compute capacity on any IaaS vendor (AWS, Azure, SoftLayer, etc.) and bring your software to run on it. In this case you pay for compute resource by the hour, or minute, or whatever the terms your IaaS vendor provides, but your license must cover your peak workload and it does not scale up or down with your IaaS cloud. In other words, in most cases this is not cost efficient.
All four vendors provide free development licenses for their application servers.
IBM and Oracle are the only two vendors that provide socket based licenses for WAS Base and WLS Standard respectively. This means that those licenses are sold on the basis of physical sockets, regardless of the number of cores on those sockets. This makes it cost effective on latest generation processors where the number of cores per socket reaches 22 (I want a laptop with that thing!).
Likewise, IBM and Oracle are the only two vendors that sell licenses based on the number of registered users. No, you do not want to use it for your internet scale application, but this is just perfect for a small branch office. These user based licenses are dirt cheap. I mean, really, really cheap. With IBM this is only available for Liberty Core, while Oracle sells all versions of WLS with user based licenses.
IBM is the only vendor that allows free production use of its WebSphere Liberty for up to 2 GB of RAM, which can be split across multiple JVMs. You can read details in my earlier post here. No other vendor allows this kind of free use of their server in production, unless you consider using purely Open Source WildFly or Apache Tomcat, as opposed to commercially packaged JBoss EAP or tc Server.
Yet another exclusive feature provided by IBM is the ability for ISVs to ship free licenses of WAS Liberty Core where customers can use it at any scale (even million JVMs is ok) and optionally can purchase support if they so desire. Read my earlier post about it.
Term license simply means that customer buys the right to use the product for a certain limited period of time with support included as part of the deal. Some vendors call this subscription model, others call it term license, but no matter the name it is the same concept. Generally speaking, term licenses are cheaper than perpetual licenses when calculated for short terms (e.g. few years). The thing with term licenses is that you pay flat fee every year, whereas for the perpetual license you pay more upfront and only small support fee after that. Secondly, with term license you lose the right to use the product as soon as you stop paying for the license. Not so with the perpetual license where the support fee is optional. Think of it as buying a car, vs. renting or leasing it.
There are different time periods for term licenses from various vendors. Oracle, Red Hat and Pivotal only sell annual term license. IBM used to do that too, up until one month ago, but on July 12, 2016 IBM introduced new license type for monthly term called Virtual Processor Core (VPC). Read the official announcement letter for full details. This new VPC license is awesome in a few ways:
- First, it is monthly based, as opposed to annual, and allows for much better control of spending and scaling needs to account for seasonal workloads. You can not do that with annual licenses from other vendors;
- Second, it is much cheaper than the old IBM annual term license even if you buy the same # of licenses for 12 months (which, see point one above, you do not have to do);
- Third, VPC does not discriminate against different types of processors. Unlike IBM PVU model where you have all kinds of core multipliers (such as 50, 70, 100, 120 – depending on the type of core you are using), VPC is always 1:1 with your virtual or physical core (whichever is less). This makes it simpler to plan, account for, and use in cloud environments;
- Forth, and this is a little known secret – with VPCs, you are almost always better off compared to the PVU perpetual license with the break even point being about 25 years (wow!). The only caveat is that VPCs, being term licenses that they are, do not count for Passport Advantage points and thus by definition have somewhat lower discount levels compared to the perpetual PVU license.
If you are using WAS Base, you can purchase monthly socket based license (or still go with WAS Base VPC license if you like). Just decide whichever is cheaper for you. My updated cost calculator does it for you automatically (I accept cash donations on the basis of 1% savings from those calculations, just sayin’).
Red Hat sells JBoss EAP and EWS subscription on the annual basis and only in increments of 16 cores. In other words, if you want to buy 17 cores, you are stuck with 32 cores subscription (16 cores twice). With IBM, Oracle and Pivotal you buy in increments of a single core.
Can you take your term license and bring it into the cloud – just like with perpetual license? You absolutely can! Just buy whatever compute capacity on your favorite IaaS cloud and bring those licenses over. The only trouble is that with the term being one year for Red Hat, Oracle and Pivotal, you have to license for the peak. With IBM, the term is one month, so you can account for seasonal workloads and only pay for what you use that month. This has a potential to save you a lot of money. But more on the cloud licensing follows.
Cloud licensing is a bit more complicated than two options above. The reason is that there are different kinds of cloud use scenarios. Important thing to keep in mind is that per my description above, you are allowed to BYOSL (Bring Your Own Software License) to the cloud – be that Perpetual or Term license. But as I described above, those are too coarse grained and do not allow you to take advantage of the cloud hourly billing. So lets dive into this. I separated cloud licensing into two categories: (1) Vendor managed PaaS and (2) VM hosting on various IaaS clouds.
Vendor managed PaaS cloud
This category is for the true managed PaaS environment where the vendor maintains the PaaS environment along with the Java Application Server runtime and all the customer needs to do is provide his WAR or EAR file to the PaaS software controller, which will automatically create and auto scale instances of app server, establish networking, security, etc. In PaaS environment customer does not usually have direct SSH access to the instance, nor is it desired. The benefit of the PaaS is automation, which not only includes automatic instance creation, but automatic provisioning of patches, updates, and other policies.
The PaaS environment has three different flavors (marked as S, D, and L in the table above):
- Shared – instances are hosted by the cloud provider and are running side by side and not separated by physical boundaries;
- Dedicated – instances are still hosted by the cloud provider, but are separated from each other so that one customer does not run on the same hardware or network as another customer. Obviously this makes it more expensive, but has its benefits for regulatory and other reasons;
- Local – where PaaS is run on the customer own data center hardware and vendor only provides the software. In case of IBM you also get full remote management for your local PaaS environment.
IBM runs its Shared (S) and Dedicated (D) Bluemix PaaS on its SoftLayer datacenters spread across the world.
Red Hat runs its Shared (S) OpenShift Online and Dedicated (D) OpenShift Enterprise on Amazon AWS also in different regions across the world.
Pivotal runs its CloudFoundry based Shared (S) Pivotal Web Services on Amazon AWS in different regions across the world. Dedicated (D) PWS is not available at this time.
At this point Oracle is the only vendor that does not provide a true PaaS environment. Their Java Service on the Oracle Public Cloud is merely a VM with extremely cumbersome process of provisioning, which often takes hours, requires Database and Block Storage as prerequisites and has all kinds of other usability issues. So I listed it in its own VM category.
There are three different payment terms for PaaS as follows:
this is where customer pays for a “bundle” = “compute capacity + software” by the hour and this provides very fine level of usage control and big potential for optimization and significant savings. IBM, Red Hat and Pivotal all provide hourly billing for its Shared PaaS offerings. The only caveat is that Pivotal does not seem to recommend it for production use and positions it as a development and test platform, while IBM provides production level SLA for its Bluemix public.
IBM offers monthly PaaS charge for Liberty Buildpack running in its Bluemix Dedicated (D) as well as Bluemix Local (L). Red Hat offers monthly charge for JBoss EAP running in OpenShift Dedicated (D). Pivotal does not have a monthly charge model.
IBM does not provide yearly charge model as it believes monthly charge provides a more cost efficient option. With Red Hat and Pivotal it appears that annual charge is the only way to get OpenShift and Pivotal Web Services (CloudFoundry based) in a Local (L) environment. Red Hat also has yearly charge for its OpenShift Dedicated (D) offering. I believe annual charge really does limit your control over the spending and variable workloads.
Cloud hosted VM
Cloud hosted VM is different from PaaS in that one can have almost complete control over said VM running a cloud in much the same way as if it ran on a local server in customer own data center. Once can login into the VM using SSH or with a full GUI, install, update any part of that VM, including OS and the Application Server as well as other components, monitoring agents, mount persistent storage, etc. In some cases the Application Server may be provided as part of the VM template itself (which is the case for IBM provided VMs and Oracle provided VMs), in other cases one needs to install Application Server on his own (this is the case with Red Hat JBoss and Pivotal tc Server). One can also install PaaS on these VMs and treat it as Local PaaS from the perspective of the PaaS vendor since this runs on a customer chosen hardware and not in a Cloud PaaS provided by the vendor. In this case the responsibility for maintaining VMs, PaaS components and App Server components will rest on the customer. Bottom line – cloud hosted VM gives a lot more control over the environment, but this control comes with significant cost of added administration burden and setup complexity.
Interestingly enough, only IBM provides hourly pricing model for WebSphere Application Server hosted on various IaaS providers, including Amazon AWS, Microsoft Azure and IBM’s own Bluemix on SoftLayer. You can get pre-configured VM with WebSphere pre-installed and pay for it by the hour in a Shared or Dedicated environment. Just login into AWS, Azure or Bluemix portal and search for WebSphere Application Server to start creating and running those VMs and paying by the hour.
No other vendor provides hourly pricing model for their Application Server on AWS, Azure or SoftLayer. The only option with Oracle, Red Hat and Pivotal for IaaS hosted VM is to bring your own license into the cloud, but remember – those licenses are sold for the term of the year or worse – perpetual. So you pay for hardware on an hourly basis, yet your software is prepaid for the full year for full capacity. How is that for a cloud friendliness? Every vendor says they are super cloud friendly, yet actions speak louder than words. And I see no action, except from IBM in this space.
Oracle does provide hourly charge model for its Shared IaaS and monthly charge model for the Dedicated (and presumably Local?) IaaS VMs running WebLogic. But in my experience, you need to evaluate the viability of using Oracle WebLogic on Oracle Cloud first hand and only after that decide if you are ready to use it. Having done this myself, this is exactly the kind of situation where I shall say “Buyer beware”. Not to mention the astronomical cost of running WebLogic on Oracle Cloud, but that is a subject for another article.
I hope this article helps you with making the right choice among various Application Servers. I did my best researching all of this information, but if I misrepresented anything – please let me know and I will be happy to correct my mistakes. Please let me know what you think in comments below.
One last thing – I updated my App Server cost calculator to reflect the latest pricing for WebSphere, WebLogic and JBoss for perpetual and term licenses.
Categories: Cost & Licensing