Dockerなどのコンテナ環境で動作させるプログラムは、通常OS上での動作とは違った考慮(例えば、CPUやメモリリソースの扱い)が必要となる場合があります。JavaVMやJavaコアライブラリでも、これまで長年にわたりコンテナ環境に対応するための修正が数十以上も行われてきました。しかし、コンテナ環境でJavaを使う際には、まだまだ注意が必要なことがあります。特に、コンテナ上のovelayfsなどのファイルシステムは今後も対応が必要な領域であり、通常OS上で動作するJavaアプリケーションがコンテナ上でそのままでは動作しない場合があります。本セッションでは、これまでのJavaVMやJavaコアライブラリにおけるコンテナ対応の内容を振り返るとともに、今後も継続して検討していく必要のある点、またJavaアプリケーション作成時・ビルド時・運用時の注意点について紹介します。
また、コンテナの特徴として軽量で起動時間の短いことから、コンテナ利用時の期待として、システム全体の起動高速化があります。最近では、OpenJDKコミュニティでも、Javaランタイムの起動性能向上を目指した「Leydenプロジェクト」が立ち上がろうとしており、Javaの起動高速化は今後の着目技術となっています。本セッションでは、Leydenの紹介をしつつ、一方でGraalVMなどのネイティブ化機能は使わずに、Java SE準拠のJavaランタイムでどこまで起動性能の向上が可能かCRIU(Checkpoint/Restore In Userspace)技術等についても紹介します。