WebSphere LibertyとOSS版Open Libertyは、クラウドネイティブなJavaランタイムとして高い柔軟性とモダンな設計を備えていますが、運用においてはセキュリティや機能追加のため、定期的なバージョンアップが欠かせません。
IBM公式のサポートポリシーでは、障害対応や技術支援を受けるために「5年以内のFixpack適用」が必須とされており、少なくとも5年に一度はFixpackを適用する必要があります。
また、iFixの対応期間についても
「バージョン番号の末尾が3, 6, 9, 12のバージョンでは2年間、それ以外のバージョンでは24週間」
と定められており、急な障害時にも対応できるよう、2年に一度のFixpack適用が推奨されています。
こうした背景から、Libertyの運用では計画的なバージョンアップが必要になる点を理解しておくことが重要です。
とはいえ、Libertyにはゼロマイグレーション・ポリシー機能があり、新しいバージョンでAPI仕様が追加されても、既存のFeatureを置き換えずに新しいFeatureを追加する仕組みを備えています。そのため、Fixpack適用時の影響は最小限に抑えられています。
従来型のWebSphere Application Serverに比べ、設定やアプリケーションの互換性を維持しながらアップデートできるため、バージョンアップの負荷は大幅に軽減されています。
さらに、LibertyではIBM Installation Manager(IIM)を使った従来型の更新に加え、より容易なアップデート方法も用意されており、運用の自動化・効率化が進めやすくなっています。
こうした背景を踏まえ、本記事ではLibertyのバージョンアップ方法を2つご紹介します。
公式配布のランタイムを直接利用するケース
製品版WebSphere Libertyでのみ可能な方法です。
IBM公式サポートサイトから対象バージョンを選択し、ランタイムをインストールします。
インストール後は、既存のLibertyサーバーからユーザー管理対象ディレクトリをコピーするだけでバージョンアップが完了します。
ユーザー管理対象ディレクトリとは、wlpディレクトリ内のサーバー構成情報のファイルを含む「usr」を指します。
デフォルトでは存在しませんが、全サーバー共通設定のディレクトリを作成している場合は、そちらも新しいLibertyサーバーにコピーしてください。
wlp
├── bin
├── CHANGES.TXT
├── clients
├── Copyright.txt
├── dev
├── lafiles
├── lib
├── README.TXT
├── templates
└── usr
プラグインを利用してMavenでランタイムを管理するケース
LibertyはMaven/Gradleにプラグインを提供しており、ソースコード・サーバー構成・ランタイム情報をコードとして管理可能です。
今回はMavenを例として、ご紹介します。
バージョンアップはpom.xmlの<version>を更新し、再ビルドすれば完了します。
Open Libertyの場合
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
</plugin>
<plugin>
<groupId>io.openliberty.tools</groupId>
<artifactId>liberty-maven-plugin</artifactId>
<version>3.11.5</version>
<configuration>
<runtimeArtifact>
<groupId>io.openliberty</groupId>
<artifactId>openliberty-kernel</artifactId>
<version>25.0.0.12</version>
<type>zip</type>
</runtimeArtifact>
</configuration>
</plugin>
</plugins>
</pluginManagement>
WebSphere Libertyの場合
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
</plugin>
<plugin>
<groupId>io.openliberty.tools</groupId>
<artifactId>liberty-maven-plugin</artifactId>
<version>3.11.5</version>
<configuration>
<runtimeArtifact>
<groupId>com.ibm.websphere.appserver.runtime</groupId>
<artifactId>wlp-kernel</artifactId>
<version>25.0.0.12</version>
<type>zip</type>
</runtimeArtifact>
</configuration>
</plugin>
</plugins>
</pluginManagement>
Libertyランタイムには複数のアーティファクトが用意されており、用途に応じて最適なものを選択することができます。
以下のリンクから、利用可能なアーティファクト一覧を確認できます:
Open Libertyのアーティファクト一覧
WebSphere Libertyのアーティファクト一覧
Libertyのバージョンアップは、サポートポリシー遵守だけでなく、最新機能やセキュリティ更新を反映し、安定した運用を続けるために欠かせない取り組みです。
ゼロマイグレーション・ポリシーやMaven管理を活用すれば、負荷を最小限に抑えつつ効率的に更新できます。
ぜひ、運用方針に合わせた最適な方法をご検討ください。