BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Amazon Releases Corretto 8 GA: A Downstream Distribution of OpenJDK

Amazon Releases Corretto 8 GA: A Downstream Distribution of OpenJDK

This item in japanese

Lire ce contenu en français

Amazon recently released Corretto 8 GA, a "no-cost, multiplatform, production-ready distribution" of OpenJDK.

Corretto was introduced as a preview release last November at Devoxx Belgium by Arun Gupta, principal open source technologist at Amazon Web Services, and Yishai Galatzer, senior engineering manager at Amazon Web Services. Also at Devoxx was a surprise appearance by James Gosling, father of Java and distinguished engineer at Amazon Web Services, who delivered a special keynote address introducing Corretto. The timeline, shown below, for the GA releases of Corretto 8 and Corretto 11 was presented at Devoxx Belgium.

Amazon joins vendors, such as Oracle, Azul, Red Hat and BellSoft, that provide a range of free and commercially-supported downstream distributions of OpenJDK, along with a community led effort from the AdoptOpenJDK team, who have also launched an open build farm for creating free prebuilt OpenJDK binaries.

Due to the growing concern in the Java community that long-term support would no longer be free, Amazon developed Corretto to further its commitment to keep Java free.

When InfoQ reported on the preview release of Corretto, Martijn Verburg, co-founder and CEO at jClarity, co-founder of AdoptOpenJDK, and leader of the London Java Community, was asked about his thoughts on Amazon joining the list of vendors supporting OpenJDK:

Having Amazon announce Corretto is great extra recognition for OpenJDK as a viable runtime to use in Production! I think a lot of conservative organizations will see this and say "If Amazon is using OpenJDK as well as IBM, Red Hat et al, then my last doubts are now gone!"

Amazon has seen growing interest in Corretto since its debut last November. For example, based upon initial feedback from the Java community, Amazon has implemented a number of improvements and security patches in the GA release, as documented in the changelog and patches.

Released on a quarterly basis, or as needed, Amazon's long-term support (LTS) of Corretto includes "security fixes, performance enhancements (e.g., speeding up frequently used functions), garbage collection scheduling, and preventing out-of-memory situations, as well as improved monitoring, reporting, and thread management."

During a recent Java Champions teleconference discussing the upcoming RC and GA releases of Corretto 8 and Corretto 11, InfoQ learned that the Java community can expect the following from Coretto: the latest security patches; tools to recognize Corretto; installation of Corretto via SDKMAN!; and an official Docker image. The Q&A session of the teleconference featured a question regarding Coretto supporting feature releases of OpenJDK. The answer was:

We do not plan to support JDK 9 or JDK 10. Right now, when it comes to JDK 12, JDK 13 and JDK 14, we do not plan to support them because providing long-term support is the main reason why Corretto exists, and secondarily to add features and improvements.

Although we do build [feature releases] and release them internally at Amazon, the gap to release them to the public may not be huge. In terms of how much we can achieve, we want to keep our quality bar high. So right now, we are focusing on 8 and 11. We will listen to feedback and, if we find enough customers interested in feature releases, we will support them as well. So far, almost all of our customers don't want to see feature releases in production, and the few that have brought it up are only interested in it as a way to keep testing and be ready for next release, but not actually run in production. So the answer is "maybe."

Corretto 8 is aligned with OpenJDK build 8u202 and Corretto 11, still in preview release, is scheduled to be released as GA in the first half of this year.

Gupta spoke to InfoQ about this latest Corretto GA release.

InfoQ: What are your current responsibilities, that is, what do you do on a day-to-day basis?

Arun Gupta: I am a Principal Open Source Technologist at Amazon. I work with different teams at Amazon to help define their open source strategy. With over two decades of Java experience, I am also a Java Champion and actively work with the Corretto team to define their community engagement efforts.

InfoQ: What was the inspiration for Amazon to create a distribution of OpenJDK?

Gupta: At Amazon, we always start with the customer. Amazon uses Java heavily and in 2016 we realized that we cannot rely on a binary distribution. We have thousands of Java applications running in production. Quarterly security releases of the JDK often introduced subtle breaking changes with potential widespread impact. At the same time there is urgency to put these releases into production as soon as they come out to address security. But a binary distribution precluded making fixes in the JVM or the libraries. So, we decided to build Java from source to address constraints and requirements for our use.

We started with experimentations with a few teams and expanded by building a tool that with a single click will switch teams over to Corretto. As we gained more confidence, we started doing automated mass migration. We migrated thousands of services over a period of a few months, the process was completely automated, but we still moved in increments to control the blast radius of unknown issues. The process went smoothly and we only found a single instance to fix out of these thousands of services migrated over.

So that's how Corretto came to be internally. We had initially only intended on building it for ourselves. But then Oracle announced the end of public updates for Oracle JDK 8 and the six months release cadence starting with Java SE 9. That's when the need for not just our Amazon developers but the Java community really came into focus.

We had all of these customers approaching us worried about support for their Java applications. These customers are also worried about testing against multiple different binary distributions. Each distribution coming with a different set of restrictions. They asked us to provide a distribution that can work across these workloads, and without restrictions.

Many of them were explicitly asking us for a solution. Our customers and the community are of course not exclusively running things on AWS. People need to run Java locally on their dev laptops, on premises, across a variety of operating systems and there was no solution for them that didn't come with a cost. That's when we started thinking about bringing Corretto to the whole Java community.

Amazon has been shipping OpenJDK on Amazon Linux for quite a long time. We looked at the customer needs, obsessed about it, and it became quite clear that there is no reason to limit it to just Amazon Linux, just AWS or put any additional restrictions on it. Today, Corretto is available on all major operating systems and it comes with no-cost long-term support for production. You can run it in the cloud of your choice, on premises, on desktop or bundle it with your software.

InfoQ: How was the name "Corretto" chosen?

Gupta: Corretto is a playful name that means "correct" in Italian. We also liked that Corretto can refer to an espresso with a shot of liquor.

InfoQ: What makes Corretto unique from vendors that provide their own distribution of OpenJDK?

Gupta: Our customers told us that all existing distributions come with some sort of limitation - either you have to pay for it, or it's limited to certain platforms, or it can be used for development purposes but not for production. This was hindering their process because many of them have a variety of different platforms to support. Customers would like to be able to save on development time, save on testing and save efforts on certification on different platforms. So, we decided that we will take what we have internally and work address all of those concerns. Then we'll provide it with no additional restrictions and contribute back to OpenJDK.

Additionally, we wanted to make it easy so Corretto is a drop-in replacement for Hotspot-based OpenJDK distributions. It will work unless you are using commercial features that are not available in open source. Of course, if an existing OpenJDK distribution works for you then we would probably encourage you to keep using it.

InfoQ: Does Amazon have plans to sponsor the AdoptOpenJDK initiative?

Gupta: Yes, we've been working with AdoptOpenJDK to host Corretto binaries, and provide them with computing resources. Amazon and AdoptOpenJDK collaboratively exchange build and test logic details for OpenJDK builds.

InfoQ: What are the long-term goals for Corretto?

Gupta: We have plans to both keep improving and supporting Corretto and to support the upstream project. Roughly 90-95% of our roadmap is driven by customers. Corretto 8, corresponding to OpenJDK 8, was made Generally Available earlier this year. Corretto 11, corresponding to OpenJDK 11, is a Release Candidate at the time of this writing. We are working towards GA of Corretto 11.

Many of our customers are using JDK 8 and they're not planning to move to JDK 11 anytime soon. They might even be using JDK 8 for many years to come. We want to make improvements to keep existing systems behaving consistently as well as improve their performance. Corretto 8 offers no-cost long-term support until at least July 2023, and Corretto 11 will do that until at least August 2024.

A prerequisite for Corretto is a successful and well-maintained upstream project. The Corretto team is investing in the maintenance of OpenJDK8u project under the leadership of Red Hat. This project is the upstream for the rest of the OpenJDK community distributions. That is the foundation for our quarterly releases. We are hiring in the Corretto team for leadership and individual contributor roles to grow our ability to deliver additional improvements and to support these projects.

We are also working with Oracle, Red Hat and other partners that are involved in security patches, fix issues, and back port them to OpenJDK Update project. We need to release them along with Oracle so there are no gaps in the security patches of all OpenJDK distributions.

Corretto is composed of two components. One of them is OpenJDK which is the source code at openjdk.java.net. The second component is patches, build instructions and systems, tests and documentation. If you have any feedback for Corretto, submit an issue or send a PR to github.com/corretto. If it's changes to the OpenJDK code itself, either the upstream or the patches, then we want that every single contribution to go in the upstream project, please start there. If it is related to the build system, documentation, or Corretto specific tests please submit them to the GitHub repo.

Resources

Rate this Article

Adoption
Style

BT