Java Brick
Univ. of Hawaii - ITS Technical Architecture - Brick
Java Brick
Primary Architects: Cameron Ahana & Michael Hodges
Description
OpenJDK is becoming a popular alternative to the commercial version of OracleJDK. Oracle will not charge companies if they are on the current version of OracleJDK but their release cadence (sometimes as quick as 6 months) makes it difficult for companies to keep pace. Oracle argues that the releases are not "major" releases so the migration is not as daunting a task as many perceive it to be [1]. Many Java applications currently running in the ITC data center are on OracleJDK 8; Banner for example.
Table of Long Term Release versions. We have no plans to install developer versions in production.
Release | Oracle GA Date | Oracle Premier Support Until | Oracle Extended Support Until | Oracle Sustaining Support | Red Hat OpenJDK | Amazon Corretto | Eclipse Adoptium fka AdoptOpenJDK |
---|---|---|---|---|---|---|---|
8** (LTS) | March 2014 | March 2022 | December 2030 | Indefinite | Nov 2026 | Jun 2023 or later | May 2026 |
11 (LTS) | September 2018 | September 2023 | September 2026 | Indefinite | Oct 2024 | Aug 2024 or later | Oct 2024 |
17 (LTS) | September 2021 | September 2026 | September 2026 | Indefinite | Oct 2027 | ||
21 (LTS) | September 2023 | September 2030 | September 2033 | Indefinite | Dec 2029 | ||
25 (LTS) | September 2025 | September 2025 | September 2030 |
** Source: https://www.oracle.com/java/technologies/java-se-support-roadmap.html
Note that the above URL states: The Extended Support uplift fee will be waived for the period March 2022 - December 2030 for Java SE 8. During this period, you will receive Extended Support as described in the Oracle Technical Support Level sections of the Technical Support Policies.
Deployment Strategy
Experimental |
Strategic (3-5 Years) |
|
Tactical (1-2 Years) |
Containment |
|
Retirement |
|
Emerging Trends
- JDK implementations in containers may not need to fall within the guidelines of this brick.
- More vendors are transitioning to an OpenJDK implementation.
- OpenJDK implementation matrix [2] and overview of JDK vendors [3]
- Difference between OracleJDK and OpenJDK [4]
- Opinions from okta [5]
Notes
- Warning, OpenJDK 17 introduces potentially breaking changes.
- <https://docs.oracle.com/en/java/javase/17/migrate/migrating-jdk-8-later-jdk-releases.html#GUID-7744EF96-5899-4FB2-B34E-86D49B2E89B6>
- Good to also be aware that Tomcat 10 does too such that Spring Boot 3.x is the first version to support Tomcat 10 with OpenJDK 17
- 2022 Java Developer Productivity Report
- ITS already pays for Red Hat OpenJDK support since it is bundled into our RHEL licensing.
- Red Hat OpenJDK distributions are included in the OS repository, which is updated monthly. While the repository is updated monthly, most JDK patches likely are updated quarterly since that's Oracle's patch cadence. This cadence should be kept in mind given that updates to test and prod environments might be harder to control than previously.
- Banner 9 requires Oracle or OpenJDK 8 for RHEL and Corretto for Windows. This is a fairly recent development. Other schools, Oakland for example, utilize OpenJDK.
- Ellucian support documentation states that Banner 9 on RHEL 7 with OpenJDK 1.8 is supported with most services except the following, for obvious reasons:
- Oracle Database
- Oracle Fusion Middleware
- Red Hat OpenJDK runs on RHEL, Windows, and Mac OS, which is needed for developers.
- OpenJDK has different builds
- AdoptOpenJDK for public usage
- Amazon Corretto for public and customer usage
- Oracle Java SE for Oracle paying customers
- Oracle OpenJDK for Oracle nonpaying customers
- Red Hat OpenJDK
- AdoptOpenJDK is readily available through docker, has a large community to support it (no need to get commercial support), and runs under the Hotspot JVM, which is Oracle's JVM, so we know the performance will be comparable if not identical.
- It can also run under OpenJ9, which is the Eclipse Foundations version of the JVM.
- It is supposed to have a low memory footprint and run more efficiently compared to Hotspot but EA has not explored that option yet.
- The InCommon Trusted Access Platform (TAP) is containerizing its components using Amazon's Corretto JDK.
- The IAM team is deploying TAP components, starting with Grouper.
- For the Oracle JDk. Critical Patch Updates are collections of security fixes for Oracle products, including the Oracle JDK. These updates are available to customers with valid support contracts. They are released on the Tuesday closest to the 17th day of January, April, July and October. We are assuming that the Open JDK projects have a matching schedule.
Change History
- August 2022, informally promoted to approved
April 2020, draft in progress
Footnotes
[1] May 2018 https://blogs.oracle.com/java-platform-group/update-and-faq-on-the-java-se-release-cadence
[2] https://www.azul.com/products/zulu-enterprise/jdk-comparison-matrix/ written by Azul Systems and appears biased towards Azul Zulu JDK
[3] May 2019 https://dzone.com/articles/an-overview-on-jdk-vendors
[4] Oct 2019 https://ww w.baeldung.com/oracle-jdk-vs-openjdk
[5] Jan 2019 https://developer.okta.com/blog/2019/01/16/which-java-sdk
[6] Amazon's contributions to OpenJDK security patching, <https://aws.amazon.com/blogs/opensource/amazon-joins-the-java-community-process-jcp/?nc1=b_rp>.
References
- https://openjdk.java.net/projects/jdk/
- https://www.azul.com/products/azul-support-roadmap
- Red Hat OpenJDK Life Cycle and Support Policy
Definitions
Experimental | Someone in ITS is currently investigating or experimenting with this technology. |
Strategic | ITS will be investing in this technology for 3-5 years. |
Tactical | ITS will be investing in this technology for 1-2 years. |
Containment | ITS will continue to use this technology for existing systems, but will no longer invest in this technology and/or grow its use. |
Retirement | ITS has a firm plan (and timeline) to retire this technology. |