Skip to content

Commit

Permalink
ID edits
Browse files Browse the repository at this point in the history
  • Loading branch information
dmuelle committed Dec 16, 2022
1 parent fd9bce9 commit c3dc643
Showing 1 changed file with 14 additions and 15 deletions.
29 changes: 14 additions & 15 deletions posts/2022-12-20-2022-year-in-review.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -18,54 +18,53 @@ Laura Cowen <https://github.com/lauracowen>
//Blank line here is necessary before starting the body of the post.


Open Liberty, a modern, secure, cloud-native Java runtime, link:{url-prefix}/blog/2022/09/21/history-maker-projects.html[celebrated its 5th birthday] in October. As many people are aware, though, Liberty's roots are longer established: in 2017, IBM open-sourced its WebSphere Liberty Java runtime as the Open Liberty project. WebSphere Liberty, which in turn celebrated its 10th birthday in June this year, continues to be built from the open source Open Liberty codebase and you can pay for link:https://www.ibm.com/products/websphere-liberty[production support from IBM] (in addition to link:https://stackoverflow.com/questions/tagged/open-liberty[free community support]), whether you're running Open Liberty or WebSphere Liberty.
Open Liberty, a modern, secure, cloud-native Java runtime, link:{url-prefix}/blog/2022/09/21/history-maker-projects.html[celebrated its 5th birthday] in October. As many people are aware, though, Liberty's roots are longer established: in 2017, IBM open-sourced its WebSphere Liberty Java runtime as the Open Liberty project. WebSphere Liberty, which in turn celebrated its 10th birthday in June this year, is still built from the open source Open Liberty codebase. And whether you're running Open Liberty or WebSphere Liberty, you can pay for link:https://www.ibm.com/products/websphere-liberty[production support from IBM] (in addition to link:https://stackoverflow.com/questions/tagged/open-liberty[free community support]).

The Open Liberty developers are significant contributors to the Java community, in particular to the MicroProfile and Jakarta EE projects. Open Liberty itself is a link:{url-prefix}/blog/2022/12/07/relicense-eplv2-proposal.html[compatible implementation of the MicroProfile and Jakarta EE specifications] and is used by those projects to finalise the specifications.
Open Liberty developers are significant contributors to the Java community, in particular to the MicroProfile and Jakarta EE projects. Open Liberty itself is a link:{url-prefix}/blog/2022/12/07/relicense-eplv2-proposal.html[compatible implementation of the MicroProfile and Jakarta EE specifications] and is used by those projects to finalise the specifications.

As you can see, Open Liberty has a long history and is still going strong, so we'll take a look back at what's been happening this year to see how 2022 sets up Liberty as a cloud-native Java runtime for 2023 and beyond.

== Fast startup, without compromise, for cloud-native Java applications

A clutch of related releases throughout 2022 coalesced into the beta of Liberty InstantOn in September. Liberty InstantOn enables Java applications in the cloud to start quickly while still running on the JVM, which is not otherwise known for its fast startup but generally recognised as performing well in production because of its Just-In-Time (JIT) compiler.
A clutch of related releases throughout 2022 coalesced into the beta of Liberty InstantOn in September. Liberty InstantOn enables Java applications in the cloud to start quickly while still running on the JVM. The JVM is not otherwise known for its fast startup, though it's generally recognised as performing well in production because of its Just-In-Time (JIT) compiler.

In June, IBM Semeru Runtimes (link:https://adoptium.net/marketplace/[a free Java distribution of Eclipse OpenJ9 JVM with OpenJDK] that is a good match for link:{url-prefix}/blog/2022/08/19/open-liberty-semeru-performance.html[using with Open Liberty]) released the Semeru Cloud Compiler. The Semeru Cloud Compiler link:https://developer.ibm.com/articles/jitserver-optimize-your-java-cloud-native-applications/[decouples the JIT compiler from the JVM] to prevent your Java application suffering possible negative effects due to CPU and memory consumption caused by JIT compilation in the JVM. The JIT compiler is one of the culprits causing the JVM to be slow to start, so decoupling the two to run in separate threads enabled the JVM to run more efficiently.
In June, IBM Semeru Runtimes, link:https://adoptium.net/marketplace/[a free Java distribution of Eclipse OpenJ9 JVM with OpenJDK] that is a good match for link:{url-prefix}/blog/2022/08/19/open-liberty-semeru-performance.html[using with Open Liberty], released the Semeru Cloud Compiler. The Semeru Cloud Compiler link:https://developer.ibm.com/articles/jitserver-optimize-your-java-cloud-native-applications/[decouples the JIT compiler from the JVM] to prevent your Java application from suffering possible negative effects due to CPU and memory consumption caused by JIT compilation in the JVM. The JIT compiler is one of the culprits causing the JVM to be slow to start, so decoupling the two to run in separate threads enabled the JVM to run more efficiently.

image::img/blog/JITdecoupling.png[Diagram showing the decoupling of JIT compilation from the JVM to run as an independent process.,width=70%,align="center"]


In September, Liberty beta'd its InstantOn technology, which was a collaboration between the OpenJ9 and Open Liberty development teams. With InstantOn, at build time, you can take a snapshot (a checkpoint) of your Java application after it has done the laborious parts of startup, then save that snapshot in your container image to deploy into production. When the containerized application is started, it skips the startup process that was completed before the snapshot was taken, making it much faster (up to 10x) to run the application. Inconsistencies between the checkpoint and restore environments, such as time, or saved data that could cause insecurities, such as security tokens, are handled by the JVM.
In September, Liberty beta'd its InstantOn technology, which was a collaboration between the OpenJ9 and Open Liberty development teams. With InstantOn, at build time, you can take a snapshot, or checkpoint, of your Java application after it does the laborious parts of startup, then save that snapshot in your container image to deploy into production. When the containerized application is started, it skips the startup process that was completed before the snapshot was taken, making it much faster (up to 10x) to run the application. Inconsistencies between the checkpoint and restore environments, such as time, or saved data that could cause insecurities, such as security tokens, are handled by the JVM.

image::img/blog/instantonperf.png[Liberty InstantOn performance comparison chart.,width=70%,align="center"]


The best way to try out InstantOn is by using link:{url-prefix}/blog/2022/09/29/instant-on-beta.html[Liberty InstantOn] which shields the application developer from the complexities of how checkpoint/restore works in the JVM. If you have any feedback, link:https://groups.io/g/openliberty[let us know on our mailing list]. As usual, if you hit a problem, link:https://stackoverflow.com/questions/tagged/open-liberty[post a question on StackOverflow], or if you hit a bug, link:https://github.com/OpenLiberty/open-liberty/issues[please raise an issue].
The best way to try out InstantOn is by using link:{url-prefix}/blog/2022/09/29/instant-on-beta.html[Liberty InstantOn], which shields the application developer from the complexities of how checkpoint/restore works in the JVM. If you have any feedback, link:https://groups.io/g/openliberty[let us know on our mailing list]. As usual, if you hit a problem, link:https://stackoverflow.com/questions/tagged/open-liberty[post a question on StackOverflow], or if you hit a bug, link:https://github.com/OpenLiberty/open-liberty/issues[please raise an issue].

== Liberty Tools to enhance your developer experience in your preferred IDE
== Liberty Tools enhance your developer experience in your preferred IDE

In August, we link:{url-prefix}/blog/2022/08/01/liberty-tools-eclipse.html[introduced the new Liberty Tools for Eclipse IDE], which provide support for writing applications that use the MicroProfile EE APIs and for configuring the Liberty instance on which the application will run. The Liberty Tools also support running your application in dev mode (for easy iterative compilation and testing) and a dashboard for managing your projects. We then link:{url-prefix}/blog/2022/11/04/liberty-tools-eclipse-jakarta-ls.html[added Jakarta EE support] to that in November.

image::img/blog/liberty-tools-eclipse-jakarta-snippet.gif[Adding Jakarta EE code snippets to your code.,width=70%,align="center"]


The Liberty Tools are currently still in early release phases but the support in them is progressing well. This month, we have just released (NOT UNTIL END OF NEXT WEEK I THINK!) another early release refresh of the Liberty Tools but this time across all three main Java IDEs: link:https://github.com/OpenLiberty/liberty-tools-eclipse[Eclipse IDE], link:https://github.com/OpenLiberty/liberty-tools-vscode[Visual Studio Code], and link:https://github.com/OpenLiberty/liberty-tools-intellij[IntelliJ IDEA].
The Liberty Tools are currently still in early release phases but the support in them is progressing well. This month, we released another early release refresh of the Liberty Tools, but this time across all three main Java IDEs: link:https://github.com/OpenLiberty/liberty-tools-eclipse[Eclipse IDE], link:https://github.com/OpenLiberty/liberty-tools-vscode[Visual Studio Code], and link:https://github.com/OpenLiberty/liberty-tools-intellij[IntelliJ IDEA].

You might be wondering how the Liberty Tools relate to what you've used previously in those IDEs to write Java applications with Liberty. The Liberty Tools make use of Language Server technologies so that we can more easily support working with APIs such as link:https://github.com/eclipse/lsp4mp[MicroProfile] and link:https://github.com/eclipse/lsp4jakarta[Jakarta EE] and editing Liberty configuration files in standard ways across different IDEs. Our VS Code and IntelliJ IDEA tools already supported writing applications using Liberty dev mode, but not much else. We're now adding more, including support for configuring your Liberty instance, and for writing MicroProfile and Jakarta EE applications.
You might be wondering how the Liberty Tools relate to what you've used previously in those IDEs to write Java applications with Liberty. The Liberty Tools use Language Server technologies so that we can more easily support working with APIs such as link:https://github.com/eclipse/lsp4mp[MicroProfile] and link:https://github.com/eclipse/lsp4jakarta[Jakarta EE] and editing Liberty configuration files in standard ways across different IDEs. Our VS Code and IntelliJ IDEA tools already supported writing applications using Liberty dev mode, but not much else. We're now adding more capabilities, including support for configuring your Liberty instance, and for writing MicroProfile and Jakarta EE applications.

If you have previously used Eclipse IDE to write Liberty applications, you were probably using the open source link:{url-prefix}/start/#eclipse_developer_tools[Open Liberty Tools for Eclipse] (link:https://github.com/OpenLiberty/open-liberty-tools[an open source project] that we started in 2017 from the codebase of IBM's long-support WebSphere Developer Tools). The new Liberty Tools innovate on the capabilities that were in the existing Open Liberty Tools, enable fast iterative application development, and then add support for more, such as writing MicroProfile and Jakarta EE applications.
If you previously used Eclipse IDE to write Liberty applications, you were probably using the open source link:{url-prefix}/start/#eclipse_developer_tools[Open Liberty Tools for Eclipse], link:https://github.com/OpenLiberty/open-liberty-tools[an open source project] that we started in 2017 from the codebase of IBM's long-support WebSphere Developer Tools. The new Liberty Tools innovate on the capabilities that were in the existing Open Liberty Tools, enable fast iterative application development, and then add support for more, such as writing MicroProfile and Jakarta EE applications.

You can try out the link:{url-prefix}/blog/2022/12/19/2022-12-19-cloud-native-java-development-with-liberty-tools.adoc[early release Liberty Tools on all three IDEs]. **CHECK LINK BEFORE PUBLISHING**
You can try out the link:{url-prefix}/blog/2022/12/19/2022-12-20-cloud-native-java-development-with-liberty-tools.adoc[early release Liberty Tools on all three IDEs].

== Java standards support in the Liberty runtime

Liberty supports MicroProfile 5.0 and Jakarta EE 9.1. We are currently working hard to complete the link:{url-prefix}/blog/2022/12/06/22.0.0.13-beta.html[support for MicroProfile 6.0 and Jakarta EE 10]; you can see our progress on both in our link:{url-prefix}/blog/?search=beta&key=tag[4-weekly Open Liberty beta releases].
Liberty supports MicroProfile 5.0 and Jakarta EE 9.1. We are currently working hard to complete the link:{url-prefix}/blog/2022/12/06/22.0.0.13-beta.html[support for MicroProfile 6.0 and Jakarta EE 10]; you can see our progress on both in our link:{url-prefix}/blog/?search=beta&key=tag[4-weekly Open Liberty beta releases]. You can try out Liberty's MicroProfile 5.0 and Jakarta EE 9.1 support without installing anything by using our link:{url-prefix}/blog/2022/04/12/guides-updated-mp5-jakartaee9.html[cloud-hosted guides].

In 2022, we also released support in Liberty for link:{url-prefix}/blog/2022/04/12/java18-22004.html[Java SE 18 (in April)] and support for link:{url-prefix}/blog/2022/10/25/22.0.0.11.html[Java SE 19 (in October)].

You can try out Liberty's MicroProfile 5.0 and Jakarta EE 9.1 support without installing anything by using our link:{url-prefix}/blog/2022/04/12/guides-updated-mp5-jakartaee9.html[cloud-hosted guides].

== Japanese and Chinese blog posts on openliberty.io

In the last three months, we've published our first link:{url-prefix}/ja/blog/[blog posts in Japanese] on the Open Liberty blog, translations of some of our recent blog posts. Then in December, we published our first link:{url-prefix}/zh-Hans/blog/[Chinese language blog post], a translation of an article by Emily Jiang that was originally published in English on the Eclipse Newsletter.
In the last three months, we published our first link:{url-prefix}/ja/blog/[blog posts in Japanese] on the Open Liberty blog, which were translations of some of our recent blog posts. Then in December, we published our first link:{url-prefix}/zh-Hans/blog/[Chinese language blog post], a translation of an article by link:https://github.com/Emily-Jiang[Emily Jiang] that was originally published in English on the Eclipse Newsletter.

image::img/blog/MultiLanguageBlogs.png[Open Liberty blog posts in Japanese and Chinese,width=70%,align="center"]

Expand All @@ -91,5 +90,5 @@ image::img/blog/crafters-spacerover-gameboard-v2.png[Space Rover game board,widt

== Looking ahead: what’s happening in 2023?

While nothing in an Open Liberty beta is ever guaranteed to make it to GA release status (not least because your feedback could cause us to revise our plans), our betas are usually a good indicator of where we're currently intending to go in the near-ish future. So link:{url-prefix}/blog/?search=beta&key=tag[keep an eye on our beta releases], including Liberty InstantOn, MicroProfile 6.0 support, and Jakarta EE 10 support; let us know if you try them and what you think. Also have a go with the link:{url-prefix}/blog/2022/12/19/2022-12-19-cloud-native-java-development-with-liberty-tools.adoc[early releases of Liberty Tools in your preferred IDE]. **CHECK LINK BEFORE PUBLISHING** and send us your thoughts. Then watch for link:{url-prefix}/blog/?search=release&search!=beta[our GA releases], which are typically every 4 weeks.
While nothing in an Open Liberty beta is ever guaranteed to make it to GA release status (not least because your feedback could help revise our plans), our betas are usually a good indicator of where we currently intend to go in the near-ish future. So link:{url-prefix}/blog/?search=beta&key=tag[keep an eye on our beta releases], including Liberty InstantOn, MicroProfile 6.0 support, and Jakarta EE 10 support; let us know if you try them and what you think. Also have a go with the link:{url-prefix}/blog/2022/12/19/2022-12-20-cloud-native-java-development-with-liberty-tools.adoc[early releases of Liberty Tools in your preferred IDE] and send us your thoughts. Then watch for link:{url-prefix}/blog/?search=release&search!=beta[our GA releases], which are typically every 4 weeks.

0 comments on commit c3dc643

Please sign in to comment.