Javaを採用したシステムを使い続けている企業は、Oracleによるライセンス体系の変更に伴うライセンスコストの増加やシステムライフサイクル管理の複雑さに頭を悩ませている。「Oracle JDKからOpenJDKへの移行」は、これまでの課題をどう解決するのか。
Javaは、今日のエンタープライズシステムの主役といっても過言ではない。事業を支えるミッションクリティカルシステムや基幹システムでの採用が多く、2014年3月にリリースされた「Java 8」や、2018年9月にリリースされた「Java 11」を長期にわたって利用している企業は珍しくない。
だが昨今、Java 8やJava 11を安定的にどう継続して利用するか、頭を悩ませる企業が増えてきているという。Java関連製品の提供を通じて企業の声を数多く集めてきたSB C&Sに、問題の背景や解決のヒントを聞いた。
SB C&Sの河上珠枝氏(ICT事業本部 技術本部 技術企画室 技術企画課)によると、課題の一つがライセンス変更に伴うコストの増加だ。
「2018年9月にJava 11がリリースされ、Oracleによるライセンス体系が変更されました。この変更で特にインパクトが大きかったのが、『Oracle JDK』(Java Development Kit)を商用利用する際のサポートが有償化したことです。Javaはさまざまな企業システムに幅広く用いられており、安定したバージョンを使い続けるにはLTS(Long-term Support)版での長期サポートが必須です。2019年1月にはLTS版Java 8のサポートが終了し、最終アップデート(Java SE 8 u202)以降にセキュリティパッチなどのアップデートを受ける場合、Oracleとの有償のサポート契約が必要になりました」(河上氏)
コスト増と並ぶもう一つの課題は、システムライフサイクル管理の複雑化だ。SB C&Sの佐藤梨花氏(ICT事業本部 技術本部 技術企画室 技術企画課)は、こう説明する。
「2021年9月にはLTS版のJava 17がリリースされました。Java 8やJava11から17へのアップデートは変更点が多く、一足飛びに最新版にアップデートするのは現実的ではありません。加えて、ライセンス体系にも大きな変更がありました。『Oracle No-Fee Terms and Conditions』(NFTC)ライセンスに変わり、Oracle JDKを商用利用する際のサポートと四半期ごとのセキュリティアップデートが無償になりました。ただ、無償でのサポートやアップデート提供は『次のLTS版がリリースされてから1年間』という条件があります。どのタイミングでどのバージョンに移行すればよいか、企業にとっては計画立案や実施が難しい状況です」(佐藤氏)
2023年9月に最新のLTS版であるJava 21がリリースされ、2031年9月まで無償でOracle JDKを商用利用できるようになったものの、ライフサイクルの複雑化を受けて、Java 8 / 11からJava 17 / 21への移行はほとんど進んでいないという。
環境変化のスピードが速まり、サイバー攻撃がますます高度化、巧妙化している今、企業システムを常に最新の状態にアップデートすることが理想だ。だが極めて高い安定性と堅牢(けんろう)性が求められるシステムで、そうした変化への対応は容易ではない。河上氏は、企業が置かれた厳しい現実をこう説明する。
「Java 8くらいまでは、定期的なバージョンアップに合わせて予算を確保し、移行計画を実行することがほとんどでした。しかしJavaのバージョンアップ頻度が速くなり、ライセンス体系やサポート体制が頻繁に変わる中で、現状の把握や将来の見通しが難しくなりました。ほとんどの企業は、Javaの最新バージョンは何か、自分たちが利用しているバージョンは何か、いつサポートが切れるのか、などを正しく把握できていません。かつては5〜10年置きだったバージョンアップが、今は2〜3年というサイクルに短くなっているケースも増えています。バージョンアップを諦め、現行バージョンをいかに維持するか、という『守りの意識』が定着してしまった企業も少なくありません。しかしその場合でも、システム運用やセキュリティ対策、人材確保などの課題に対処していかなければなりません」(河上氏)
守りの意識が定着する背景には、Java 8の完成度の高さもあるという。佐藤氏はエンジニア目線でこう説明する。
「『JavaはJava 8で完成した』と評価されるほど革新的なプロダクトでした。ライブラリや使い勝手、非機能要件への対応など多くの優位点があり、多くの企業がこぞって採用しました。あまりに完成度が高いため、多くのユーザー企業がそこでシステムを作り込み過ぎてしまったのです。最新版のJavaに登場する新しい機能を取り入れたいと思っても、Java 8や11では対応できない。具体例を挙げるなら、JUnitテスト(JUnit 4)をサポートするJavaライブラリであり、軽量の使い捨てインスタンスである『Testcontainers』や、より少ないリソースを消費しながらJavaアプリケーションのパフォーマンスを高速化するように設計されたJDKである『GraalVM』などは、Java 8や11だと使えません。そこでJava 17や21にバージョンアップするという機運が高まるものの、移行するのは現実的に難しい。段階的に上げていこうとしても、その投資に見合うだけの効果をどう出すかが課題になります。仕方がないので塩漬けに。そんな袋小路に入ってしまっています」(佐藤氏)
こうした「守りの意識」「袋小路」という厳しい現実に対処するために、SB C&Sが提案しているのが、Oracle JDKからOpenJDKへの移行だ。そうすることで、Javaシステムを安定的に継続利用しながら、環境変化に対応するための道筋をつけていくことにつながるという。
JavaのJDKは、2006年にオープンソースソフトウェア(OSS)化され、OpenJDKとしてコミュニティーベースで開発、提供されている。Oracleだけでなく、さまざまなベンダーがOpenJDKの開発に携わっており、OpenJDKのビルド(OpenJDKベースのJavaアプリケーション開発・実行環境)も各社が提供している。それを採用することで、Oracleのライセンス体系の制約を受けずにJavaを利用できるようになる。
Oracle JDKからOpenJDKへ移行するメリットは大きく分けて3つある。
1つ目は、コスト増への対応だ。Oracle JDKは、Javaライセンスの規約変更が重なり、開発作業か商用利用か、必要なJavaバージョンはどれか、課金方法や調達経路を精査して理解する必要がある。Java商用利用はほとんど有償と考える必要があり、今まで想定していなかったコスト負担が生じることになる。OpenJDKはOSSライセンスでの利用となり、Oracleのライセンスに伴うコスト増の影響を受けなくなる。
2つ目は、セキュリティ対策への対応だ。Oracle JDKはサポート終了後(Sustainingサポート移行後)、新しいセキュリティアップデートが提供されなくなる。セキュリティパッチがないまま「塩漬け」したシステムを維持する場合、大きなセキュリティリスクを背負うことになる。特に近年は、JavaだけでなくJava関連ライブラリやフレームワークの脆弱(ぜいじゃく)性を悪用したサイバー攻撃が確認されている。2021年には「Apache Log4j 2」のリモートコード実行の脆弱性が世界的な問題になったことも記憶に新しい。
OSSライセンスのOpenJDKを活用することで、度重なるコスト増やライフサイクルの複雑化といった影響を受けることなく、セキュリティパッチを適用し、適切な対策を続けられるようになる。
3つ目は、パフォーマンスの向上だ。OpenJDKの中には、パフォーマンス低下につながるガベージコレクション(GC)への対応を独自に実施するなど、パフォーマンスを高める機能を提供しているケースがある。Oracle JDKでは利用できない独自機能を活用することで、新たな環境変化にも対応しやすくなる。
そこでSB C&Sは、OpenJDKの選択肢の一つとして、Azul Systemsの「Azul Platform Core」を提案している。
Azul Systemsは、2002年に米国シリコンバレーで創業したJava専門企業だ。Oracleに次ぐ規模のJavaエンジニアリングチームを組織しており、Java Championが多数在籍する。OpenJDKのビルドも「Java 6」から取り組んでおり、米国、オーストラリア、シンガポールなどの拠点から世界中の企業へのサポートを「Follow the Sun形式」で提供している。Follow the Sunとは時差のある複数地域の拠点が連携して24時間365日のサポートを提供することで、Javaを開発したSun Microsystemsにちなんで同社はこの呼称を使っているそうだ。
Azul Platform Coreは、OpenJDKベースのJavaアプリケーション開発・実行環境だ。Java TCK(Technology Compatibility Kit)テストによるJava SE準拠の認定ビルドであり、Azulのエンジニアらによる充実したサポートが提供される。河上氏が挙げるAzul Platform Coreの特徴は次の4つだ。
「近年は、基幹システムを一定のセキュリティレベルで保護することがますます難しくなっています。API公開などで外部サイトと接続するシーンも増えています。Azul Platform Coreを利用することで、システムを安定的に稼働させ、日本語の手厚いサポートを受けながら、システムを新しい取り組みに適した形にアップデートできるようになります」(河上氏)
Azulは、Oracle JDKからの移行に向けたアセスメント作業テンプレートや、移行後のバージョンアップへのアドバイス、システムのパフォーマンス向上などへのサポートも提供している。Azul Platform Coreへ移行することでコストを3割削減できた事例もあるという。佐藤氏はこう話す。
「OpenJDKと100%同一のバイナリであるため、既存のOracle JDKや他のOpen JDKから移行する場合、問題が生じることはほとんどありません。コードの再コンパイルも不要で、まるで乾電池を取り換えるようにドロップインで交換できます。移行やバージョンアップについては、Azulのエンジニアによるアドバイスを受けられます。その際には、ユーザー企業の事業構想や将来展望に沿って、Javaをどのバージョンまで上げていくべきか、ロードマップに関するアドバイスを受けることもできます。よりパフォーマンスが求められるシステムに刷新したい場合は、Azul Platform Coreから『Azul Platform Prime』に移行することをお勧めしています」(佐藤氏)
Azul Platform PrimeもOpenJDKベースのJavaアプリケーション開発・実行環境であり、Azulが開発したガベージコレクター「C4」やJITコンパイラ「Azul Falcon」、安定運用を可能にするクラウドネイティブコンパイラ、ウォームアップ時間を短縮する「ReadyNow」など、さまざまな独自機能を備えている。大規模ヒープメモリや低遅延、高スループットなアプリケーションが必要な場合に有望な選択肢となる。
SB C&SはAzul Systemsのディストリビューターとして、ユーザー企業の課題に寄り添い、幅広い解決策を提供したい、と意気込みを見せる。「製品に関する情報提供や、販売パートナー企業のサポート、関連製品・サービスの提供など、ユーザー企業の課題解決を多角的に支援します。既存Javaシステムに悩みをお持ちでしたら、まずはご相談ください」(佐藤氏)
河上氏は、Javaシステムのモダナイズを経営課題として取り組むことが望ましい、と強調する。「クラウド移行やAPI公開、セキュリティ対応、運用コスト削減、人材確保など、Javaシステムを取り巻く課題は技術の問題だけではなく、事業継続性に関わる経営課題にまで及びます。SB C&Sは、グローバルで高い評価を得ているAzul製品を日本のお客さまへお届けし、企業の課題解決に貢献してまいります」(河上氏)
本記事に関連してアンケートを実施しています。回答された方から抽選で10名様にAmazonギフトカード3000円分をプレゼントいたします。ぜひ下記アンケートフォームよりご回答ください。当選発表は発送をもって代えさせていただきます。
ログイン または 会員登録(無料)いただくとアンケートフォームが表示されます。オレンジ色の「アンケートに回答する」ボタンからアンケート回答をお願いいたします。
Copyright © ITmedia, Inc. All Rights Reserved.
提供:SB C&S株式会社、Azul Systems Inc.
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2025年3月18日