サーバレスに最適化したJava実行基盤「GraalOS」、オラクルが発表。Javaをネイティブバイナリにコンパイルし瞬時に起動
オラクルはJavaをサーバレス環境で実行するのに最適化した技術「GraalOS」を発表しました。
同時に、Oracle Cloudのサーバレス実行基盤である「Oracle Cloud Functions」でGraalOSの機能を提供することも発表されました。
Javaをコンパイルし、ネイティブバイナリを実行
GraalOSは名称にOSと付いているものの、LinuxやWindowsのようなOSではなく、Javaをデプロイする新たな技術とその基盤を指します。
具体的には、同社が提供しているJava実行環境である「GraalVM」のコンパイラを用いてJavaをコンパイルしてネイティブバイナリを生成し、それをサーバレス基盤にデプロイし実行することで、サーバレスアプリケーションの瞬時の起動と高速な実行などを実現するというものです。
参考:Javaのネイティブバイナリ生成可能なGraalVMの全機能が無料に、最適化コンパイラやG1ガベージコレクションを含む。本番環境でも利用可能
コールドスタートの課題が本質的になくなる
ネイティブバイナリを実行することで、コンテナ技術を用いた従来のサーバレス実行基盤のコールドスタートで生じていたような、例えばJavaVMの起動待ち時間などが本質的になくなります。
これにより、ほとんどすべての場面で数十ミリ秒以内にアプリケーションが起動すると説明されています。
コンテナ環境では必要だったOSやJavaVMに必要なメモリも不要になるため、消費メモリも最小限に抑えられ、実行速度も高速になるなどのメリットが得られるようになります。
サーバレスにおけるJavaは、JavaVMの起動時間がかかることに加えて、JITコンパイラが最適なバイナリを生成するまでの時間がかかることなどが課題でした。
例えばAWSはこの課題を解決しようと、スナップショット技術を用いたAWS Lambda SnapStartを2022年に発表しています。
参考:[速報]AWS Lambdaのコールドスタートを劇的に速くする「AWS Lambda SnapStart」発表。AWS re:Invent 2022
GraalOSはそうしたサーバレスにおけるJavaの課題を本質的に解決しようとする新たな技術といえます。
下記はGraalOSを発表したブログ「Introducing GraalOS」からの引用です。
GraalOS is a high performance serverless Java-based application deployment technology. It uses Oracle GraalVM Native Image to run your application as a native machine executable—taking full advantage of the latest x64 and AArch64 processor features available on Oracle Cloud Infrastructure (OCI). >
GraalOSは、高性能なサーバレスのJavaアプリケーションを実現するデプロイテクノロジーです。Oracle GraalVM Native Imageを使用してアプリケーションをネイティブな実行ファイルとして実行し、Oracle Cloud Infrastructure(OCI)で利用可能な最新のx64およびAArch64プロセッサを最大限に活用します。
オラクルはこのGraalOSの技術をOracle Cloud Functionsの新しい「Graal Functionタイプ」として搭載し、利用可能にするとしています。
あわせて読みたい
グレープシティが「メシウス」に社名変更を発表。文化オリエント→グレープシティ→メシウスへ
≪前の記事
Cloudflare、CDNエッジのJavaScriptから生成AIを実行できる「Workers AI」を発表。GPUで高速処理を実現