Finishing the Java series of articles regarding Java licencing we will deep dive in the different kind of considerations in your company so you can get out of the nightmare of Java 11+ licensing. We wouldn’t call this a methodology but a series of steps to follow in your long term Java plans.
First step: your company needs 🔍
Is really Java worth it?
For us the answer was: there’s no question about it. We could not even think on replacing Java in the short term. Long, very long term it would be feasible, but it would be a game changing decision.
Some of you would argue that node.js is perfectly capable of replacing Java, it could be. But it required migration. Migration projects are not fast and cheap even in the world of cloud and agile projects. And let’s be serious: node.js is not build for parallelism, it relies of the platform capabilities so there are many cases were it cannot replace Java.
If you are just starting with your company or can easily switch to different technologies the question then is not the replacement but if you have the proper support.
Second step: are your Java based applications already supported? 🤔
What? We were talking about the problem of Java licensing. Am I already supported?
The real problem with Java is who is paying for the license. You may have a software, like IBM Websphere that comes with its own JVM so you do not have to pay to Oracle, you are already paying for Java to IBM. Or maybe your product is built on top of AMCE platform and that AMCE is already paying for the Java license so your applications doesn’t need to pay for it.
But being realistic, if you develop software either for internal or commercial use it is unlikely that your license is covered.
On the other hand it is very possible that the application server you are using simply doesn’t support non-Oracle JDK.
Third step: Select your version 🧐
We won’t spend much time here as we have already covered this step in our previous articles:
During the selection remember to count the advantages and disadvantages, at least:
👉 Security updates
👉 LTS versions
So, what uses I should count to pay the licenses? The fourth step 💸
Java is used in your server applications, that’s quite obvious. The metric is very important, as server licensing requires special counting, as some providers such as Oracle license server product not by number of servers but by Physical cores, Physical processors and some adjusting constant. Be careful, accounting this may require a lot of effort.
But it also run on your employee desktops and laptops, developers run free JDK but when they use corporate software it counts as payable.
Also, can you recall that originally Java was developed to run inside washing machines and other domestic appliances? So if you have integrated software in your devices that counts. In the word there are more IoT devices that computers so the number of possible Java licences is huge.
Fortunately Android and iOS use little or no Java, so you won’t need to pay licences for your software running on them 😜
Finally: What about the update? 💻
So you decided to keep Java running, selected the distribution and have we counted the required licenses. Now you have to account one extra thing. The part that Oracle loves.
Are you really going to update all your assets?
I do not write this to discourage you from switching from Oracle to OpenJDK or RedHat or Zulu or the one you selected from our previous articles. But you have to account all the hours needed to update and test all your servers. Even if you manage automatically most of your infrastructure, are you on the hundreds or the hundreds of thousand servers and components? This is, by far, this is the heaviest task in all the Java licensing problem and competes with the price component, be warned.
Long (term support) life and prosperity!