Spring
Spring アプリケーションの起動時間"改善"と Cloud Native Buildpacks のすゝめ
Java は他の開発言語と比較しても、開発効率性とパフォーマンスのバランスに長けており、それを理由に採用しているプロジェクトも多いと多います。ところが、アプリケーションの起動時間においてネガティブな印象を与えることが多く、一例としてサーバレスに代表されるような Function as a Service (FaaS) 環境での利用を避けられているなどの実態があります。Spring とそのコミュニティは長らくこの点に着目しており、様々な機能改善を行っております。特に、ソースコードへ影響を全く与えず、あくまで基盤側の設定のみで起動時間の改善が実現できるかがひとつの関心ごとになっています。 このブログでは、Spring アプリケーションの起動時間"改善"について執筆時点での最新状況をお届けします。また、結論だけ先にかいてしまうと、その恩恵にあやかるには Cloud Native Buildpacks を利用することをお勧めします。一見関連がないように見受けられるこの二つがなぜ結びつくのか、気になる方は、ぜひ読み進んでいただければと思います。 なお、このブログでは、GraalVM Native Image と JVM Checkpoint Restore は取り上げません。これらの二つは、Spring の起動時間を"劇的に改善" する代わりに、ソースコード上も多くの考慮点を及ぼす内容です。これらの機能についてはまた別の機会に取り上げたいと思います。...