IBM Cloud Blog

サポート延長だけでは済まないJava 8の移行検討 【Javaアプリケーションを超軽量にしてマイクロサービス化する方法】

記事をシェアする:

Javaアプリケーションを超軽量にしてマイクロサービス化する方法

Java 8業務アプリ利用の猶予はいつまでか。流動的な状況に多くの企業が混乱するが、オンプレかクラウドかの2択ではなく実態に即した支援を打ち出すベンダーがある。

 

Java 8サポートは2019年1月に終了、Oracle JDKは有償サポートに

2018年9月25日、Javaの最新版「Java 11」と開発環境「Java Development Kit(JDK) 11」の提供が開始された。だが、企業ユーザーの中にはJavaの将来に暗い影が落ちていると感じる人も少なくないはずだ。

2017年9月以降、Javaのリリースサイクルやサポートポリシーが大きく変更され、企業向けのJava Enterprise Edition(EE)についても、開発元のOracleが2018年2月、Eclipse Foundationに移管することを発表。その上で、Oracleが無償で提供していた「Oracle JDK」のサポートは、Java 11以降、有償化されることになった。

Java 11は、Java 8以来4年半ぶりに長期サポート(LTS:Long Term Support)対象になったバージョンだ。LTSリリースに伴い、現在多くのJavaユーザーが利用するバージョンであるJava 8のサポートが2019年1月に終了し、Java 8に対するバグフィクスやセキュリティパッチなどの提供は行われなくなる。追加サポートで2025年3月まで延長できるが、有償になるため企業の負担は少なくない。

 

負担増も、数ある有償サポートはどこを頼るべきか

Java 8の無償サポート終了時点での移行先は2018年9月にLTS版と共にリリースされたJava 11しかなくなる。だが、Java 11ではOracle JDKの無償サポートの提供が予定されておらず、現在、無償版のOracle JDKを使う企業はライセンス切れになる前に何らかの環境に切り替える必要がある。

なお、Oracleでは無償版として「OpenJDK」をバイナリーで提供するが、リリースサイクルが半年と短く、LTS版を提供する計画もないため、企業ユーザーがOpenJDKビルドを利用し続けるのは現実的ではないだろう。加えて直近のOracleのJavaへの関与状況が積極的とは言い切れない点も少なからず利用者の不安に拍車を掛けている。

こうした状況を受け、周辺ベンダーが独自のJava 8ユーザー支援策を積極的に打ち出している。「AdoptOpenJDK」で提供されているコミュニティー版のOpenJDKバイナリーをベースに各社が独自のサポートを表明しているが、いずれも利用には条件があり、企業ユーザーが移行するには難しいものも少なくない。

例えばレッドハットは自社OSにバンドルしているOpenJDK 8を2023年6月までサポートするが、同社製品ユーザーであることが前提だ。

また、Azul Systemsの「Zulu Enterprise」も有償サポート契約を結べばLTSでのバグフィックスやセキュリティパッチを提供するとしており、こちらはJava 8を2026年3月までサポートする予定だ。マイクロソフトでは「Microsoft Azure」でZulu EnterpriseのJDKを提供すると発表したが、あくまでもAzureの利用を前提としたサポートになる。またZulu Enterprise自体が日本でまだ認知されていないことから、企業ITシステムで利用するにはハードルが高い。

 

少なくとも2025年までは確実にJava 8ユーザーをサポートする

Javaをとりまく混乱を受け、既存資産保護や運用環境の現代を積極的に支援する姿勢を見せるのがIBMだ。

IBMはコミュニティー版と自社製品バンドル版の2種類のJDKを提供する。コミュニティー版は「Open J9+OpenJDK」としてAdoptOpenJDKプロジェクトやDocker Hub経由で提供する実装。もう1つがこれに自社製品向けに暗号化ライブラリなど独自機能を追加した「IBM SDK for Java Technology」だ。IBM SDK for Java TechnologyはJava 8環境が利用でき、Java 11 LTS版にも対応される予定だ。

IBM独自のJavaサポート計画

IBM独自のJavaサポート計画《クリックで拡大》

Open J9+OpenJDKでのJava 8サポートは2022年までだが、IBM SDK for Java Technologyでは「少なくとも2025年までは確実にサポートする」という。既存Javaユーザーは、まずは「Open J9+OpenJDK」か「IBM SDK for Java Technology」に移行することで、アプリケーションを安全に運用しながらリプレースや再設計の計画を立てる猶予を持てる。

万一の障害に際しても、製品障害に対する調査やダンプの解析などの障害サポートが標準で付属し、さらに有償サポート「IBM Support for Runtimes」も受けられるので移行期間中のリスク低減が期待できる。

 

クラウドネイティブ時代のアプリケーションサーバ「Liberty」

IBMのJavaサポートでは、前述のようなJava 8ユーザーの安全なリプレース支援と同時に、他ベンダーの問題に影響される懸念を払拭できる点も有利だ。

日本IBM 田中孝清

日本IBM 田中孝清

「IBM J9 VMの実装そのものがそもそもIBM独自の実装。Oracleのライセンスを気にせずに利用できる点も安心の1つと考えていただきたい」と日本アイ・ビー・エム IBMクラウド事業本部 クラウドSW テクニカルセールスの田中孝清氏は説明する。

ではアプリケーションサーバ環境はどうだろうか。IBMには20年にわたりバージョンアップを続けている「WebSphere Application Server」(WAS)があるが、リッチな機能を持つ半面、起動時間や構成変更の手間などで難点もあった。WASの懸念を解消する新しい実装として提供されている「WebSphere Liberty」だ。

「Libertyは、WASの簡易版と誤解されやすいのですが実はエンタープライズJavaの仕様をフルに実装し、高可用性の機能も提供するもう一つの実装です。軽量で高速起動するだけでなく、動的変更やランタイムのモジュール化、構成ファイルの可搬性といった特徴を備えています」(田中)

Libertyは数十MBほどのメモリ消費で高速起動できる。構成変更も即時反映できる上、個々の機能はモジュール化してあるため必要な機能を選択的に導入できる。リリースサイクルは半年だが従来の機能モジュールも継続して提供する「ゼロマイグレーションポリシー」を採用する点も企業ユーザーには使い勝手が良い。

 

Javaアプリのマイクロサービス化、クラウドネイティブ化への道筋を描く

Libertyが真価を発揮するのは、Javaアプリケーションのモダナイズだろう。モジュール化や可搬性といった技術的特性は、運用の自動化や自立化を目指すマイクロサービス化やクラウドネイティブ化に大きく貢献する。

そもそもIBMはCloud Native Computing Foundation(CNCF)メンバーであり、コンテナ技術を中心に運用の効率化に向けたオープンソースソフトウェア開発を支援している。もちろん、Libertyをはじめ、Db2などのIBMのミドルウェア製品はほとんどがDockerイメージでも提供されている。

「例えば伝統的なWASと異なりLibertyでは構成ファイルの設定情報をバージョン管理ツール『Git』と連携したり、継続的インテグレーションツール『Jenkins』、アプリケーションデプロイ自動化ツール『IBM UrbanCode Deploy』などの開発ツールとも連携したりして利用できるため、ソフトウェアとしてインフラの管理を行うImmutable InfrastructureあるいはInfrastructure as Code型の運用スタイル実現できます」(田中)

既存Java資産についてはMicroProfileプロジェクトを介してマイクロサービス化を推進、Libertyでも対応を進めている。MicroProfileは、Javaでマイクロサービスを実装するためのベンダー非依存のプログラミングモデルだ。Java EE(Jakarta EE)に先行してAPIや仕様を策定しており、Libertyでは2018年9月の段階でMicroProfile 1.4/2.0に対応する。

田中は「IBMはこれからもエンタープライズJavaでのニーズに対応します。同時に、クラウドネイティブコンピューティングを積極的に推進し、企業のデジタル変革を支援します」と訴える。

Java 8サポート終了にまつわる混乱に「対策」するだけではなく、同時にモダナイズするための環境が一式そろうのが、IBMが提供するJavaアプリケーション実行環境の特長の1つだ。

アプリのパッケージ

アプリのパッケージ化(上)とパッケージ配布の自動化(下)《クリックで拡大》

Java 無償サポート終了でお悩みのお客様向けWeb セミナーはこちら
WebSphere製品詳細はこちら

 

本記事はTechTarget Japanに掲載された記事を転載したものです。
コンテンツに関する著作権その他知的財産権は、アイティメディア(株)または同社に権利を許諾する権利者に帰属します。

More IBM Cloud Blog stories

Watson APIを使ってみよう!

IBM Cloud Blog

著者:西戸京子, Developer Advocate, 日本IBM デベロッパーアドボカシー事業部 IBMの ...続きを読む


マルチクラウドとは何か

IBM Cloud Blog, クラウドサービス

マルチクラウドとは、一時点で複数のクラウド環境を利用するクラウド活用法です。主に複数のクラウド・ベンダーから提 ...続きを読む


IBM Cloudカタログの通貨別料金変更のお知らせ

IBM Cloud Blog, IBM Cloud News, IBM Cloud アップデート情報...

IBM Cloudカタログの通貨別料金変更のお知らせ   米ドル以外の各国通貨利用時の価格差の軽減の ...続きを読む