Session

Spring Boot vs MicroProfile - クラウドネイティブにおけるフレームワークの比較と選択

ページ生成をサーバーサイドで行う従来型のWebアプリケーションをJavaで作る場合、現実的なフレームワークの選択はSpring Boot(+Thymeleaf)の一択ですが、それがRESTを中心としたクラウドネイティブなアプリケーションである場合はどうでしょうか?Spring Bootも依然として有力な選択肢ですが、もう一つの有力な選択肢として現在ではMicroProfileがあります。

スピーカーはここ数年、主にJakarta EE+MicroProfileを使った開発を行っていましたが、近年はSpring Bootを使った共通機能の開発も行っています。その日々の開発を通してコレはMicroProfileの方がいいな、よくできているなと思ったり、反対にSpringでよかったなと思うところは結構あったりします。

今回のセッションでは、そんなSpring BootとMircoProfileの両方の開発者の視点から、まずは土台となるDIとAOPに対する双方の違いを簡単に説明した後、RESTリソース(@RestController vs JAX-RS)、RESTクライアント(RestClient+HttpInterface vs MicroProfile Rest Client)、コンフィグ(Environment & @ConfigurationProperties vs MicroProfile Config)といったクラウドネイティブでは必須かつ重要となる機能を中心に双方の違いを見ていくことで、それぞれに向くアプリや開発組織を筆者なりに考察したいと思います。

なお、説明はSpring Bootを使っている人には、MicroProfileにもそんな機能があるのねと思っていただけるレベルを、反対にMicroProfileを使っている人にはSpring Bootも同じ感じなのねと思っていただけるレベル感を目指します。

また、今回のセッションはテーマが発散しないよう以下の前提で説明を行います。
・AWSやAzure、Google Cloudなどクラウドサービスそのものや固有なテーマは扱いません
・MicroProfileの実装はQuarkusやHelidonなどアプリケーションサーバが不要なものを前提にしています
・Micronautも選択肢になるんじゃないの?というご意見はごもっともで、そのとおりかと思いますが、スミマセン、今回は割愛させてください
・そもそもJavaでクラウドネイティブってどうよ?という話はある気はしますが、怖いのでそういうことは言いません

荻原 利雄

株式会社 豆蔵 主幹ソフトウェアエンジニア

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top