Spring Boot 3 support in Open Liberty 23.0.0.8-beta

如果你不了解 Open Liberty/WebSphere Liberty,可能會覺得這個標題很怪,且待我細說從頭。

資料來源:https://openliberty.io/blog/2023/08/03/23.0.0.8-beta.html

如果你不了解 Open Liberty/WebSphere Liberty,可能會覺得這個標題很怪,且待我細說從頭。

我從 2000 開始玩 Java middleware,到 2023 年也過了 23 個年頭了;接觸過的 Java middleware 一開始當然是 Apache Tomcat,後來就是用 IBM WebSphere Application Server,創業那幾年則是用 Eclipse Jetty。

創業時會選擇 Eclipse Jetty,其實也是個意外,純粹是因為 Eclipse Jetty 在包成 container 的資料比較好找,而那時候剛好在學習 GKE(Google Kubernetes Engine),所以從 AWS 移轉到 GCP 的時候,就把 Apache Tomcat 全部都換成了 Eclipse Jetty(在 AWS 上面會用 Apache Tomcat,是因為一開始用了成本最低的 Elastic Beanstalk);也還好後來用了 Eclipse Jetty,所以就幸運地躲過 Log4Shell 事件,而至於 Spring4Shell 事件有沒有躲過呢?我也不清楚,因為那時候我已經閃人了。

回到 IBM WebSphere Application Server。從 2000 開始玩是 3.5 的版本,然後就一路 4.0、5.0、5.1、6.0、7.0、8.0、8.5、9.0,在兩岸三地以有多了解這套 Java middleware 來說,小弟應該算排名在很前面的;雖然創業那幾年沒機會用到這個商用版的軟體,但自己還是有一直在注意這個 Java middleware 的發展,所以當 WebSphere Liberty 開始出現在 8.5 的時候就有注意到這個新的產品線,持續的用零星時間了解這個產品。

後來還在 2020 年的雲端大會上,用了一個 Lab 的 session 來介紹如何將 WebSphere Liberty 部署到 GKE 上面:

隨著自己再度回到 enterprise 這塊,自然要更去了解這套同時適合部署在實體機、虛擬機、以及 container 環境的 Java middleware;順著前一篇提到 Spring Framework 5.x 即將 EOS 的議題,就順便談一下 Open Liberty/WebSphere Liberty 支援執行 Spring Boot “JAR” 應用程式這個特性:https://openliberty.io/guides/spring-boot.html

這個特性可以讓 Open Liberty/WebSphere Liberty 在不用改動 Spring Boot 應用程式的情況底下,將 Spring Boot “JAR” 應用程式放到 Open Liberty/WebSphere Liberty 上面執行,如此一來本來包在 Spring Boot 裡面的 Apache Tomcat 就不會被使用到,可以讓使用者免除未來對於 Log4Shell 的陰影,而且又不需要修改其本來已經包好的 Spring Boot “JAR” 應用程式。

隨著 Spring Framework 5.x 即將 EOS,本來 Open Liberty/WebSphere Liberty 支援的 Spring Boot 2.0 也不夠用了,畢竟 Spring Boot 3 是使用 Spring Framework 6 做為底層的;還好社群在今年初敲碗成功,這個需求有被排進實作當中,目前在 Open Liberty/WebSphere Liberty 23.0.0.8 的 beta 版,開始支援 Spring Boot 3 “JAR” 應用程式部署了!期待在第四季會 GA!

很多人常問我為什麼不討論 Spring Boot 的 “WAR” 應用程式,坦白說我覺得都用 Spring Boot 了,你就應該要打包成 “JAR” 應用程式,讓 Web 應用程式像一個 Java 應用程式一樣簡單;如果用了 Spring Boot 然後還把它打包成 WAR,這樣為何不乾脆用 Spring WebMVC 來打包還單純些呢?

支援 Spring Boot 3 “JAR” 應用程式,可以在不用改動原本應用程式的情況下,將原有的 Apache Tomcat middleware 換成企業級的 Open Liberty/WebSphere Liberty,還不趕快來試看看!

markkwsu

markkwsu

Add comment