CodeZine(コードジン)

特集ページ一覧

Spring I/O 2018 参加レポート~Spring 5のロードマップとSpring Boot 2.0の紹介、サーバレス関連動向など

  • LINEで送る
  • このエントリーをはてなブックマークに追加

目次

Spring 5のロードマップが語られた基調講演

 カンファレンス初日の朝に行われた基調講演の内容は、次に示す三本立てでした。

  • Springのロードマップ
  • Spring Boot 2.0
  • FunctionとPlatform

 まず初めにSpringのロードマップについて、Spring Frameworkの開発リーダであるJuergen Hollerさんが語ってくれました。

 Springの今後について語る上で、やはり今Javaコミュニティで起きている変化について触れずにはいられないようで、Hollerさんは何よりも先にJDKのリリーススケジュールについて言及しました。

 すでに多くの方がご存知のとおりJDK 9以降はリリースサイクルが変更され、半年ごとに新しいバージョンのJDKがリリースされます。本稿執筆時点ではすでにJDK 10がリリースされており、JDK 9についてはサポートが終了しているという状況です。JDK 8の次の長期サポート版となるJDK 11は2018年9月にリリースが予定されています。

 Spring Framework 5.0はすでにJDK 10に対応済みであり、JDK 11に対応したSpring Framework 5.1は2018年3Qにリリースを予定しているそうです。

Spring Framework 5.1は2018年3Qリリース予定
Spring Framework 5.1は2018年3Qリリース予定

 Javaに関するもう一つの大きな変化である、OracleからEclipse Foundationへと移管されたJakarta EE(Java EE)についても取り上げました。これまでJava EEの仕様策定に関わってきたJCP(Java Community Process)の役割は、Jakarta EE Working Groupが担うことになります。Springの開発を推進するPivotal社もJakarta EE Working Groupのメンバーの一員になっています。

 2019年の2Qにリリースする予定のSpring Framework 5.2では、JDK 12への対応に加えてJakarta EEへの追従が計画されているようです。具体的にはServlet 4.1やJPA 2.3といったキーワードが挙げられていました。まだ少し先の話になるので未確定な部分が多く、2019年以降の計画については周辺の動向に合わせて更新されていくことが予想されます。

 現時点では一連の急激な変化に対して各種ライブラリやツールを含めたJavaのエコシステム全体が十分に追いついているとは言えない状況にあります。そのような状況を鑑みて、JDKをアップグレードする場合でも当面はモジュールではなくクラスパスを使用することや、バイトコードレベルではJava 8を指定してビルドすることを検討した方がよいだろうという提言もありました。

 続いてSpring Bootの開発者であるMadhura BhaveさんとBrian ClozelさんからSpring Boot 2.0について紹介がありました。

 Spring Boot 2.0は2018年3月に初のメジャーバージョンアップとしてリリースされ、すでに利用可能な状態となっています。開発期間は17か月、取り込まれたコミットは6800件以上というお話があり、大掛かりなアップデートとなったことがうかがえます。

2018年3月ついにSpring Boot 2.0がリリース
2018年3月ついにSpring Boot 2.0がリリース

 基調講演の中ではバージョン1からの主な変更点についても紹介がありました。Spring Framework 5の目玉であるリアクティブに対応したことや、メトリクス計測のためのMicrometer対応、Actuatorの改善など、さまざまな機能改善が含まれていることが説明されました。これらの詳細についてはSpring Boot 2.0に関連したセッションの内容とともに後述します。

 最後に、さまざまなSpringプロダクトの開発に携わっているDave Syerさんが「サーバレス」について講演されました。

 サーバレスはクラウド上のアーキテクチャとして近年注目を集めており、Pivotal社としても現在注力している分野となっています。例えば、サーバレスアーキテクチャ上でビジネスロジックを実行する単位となる「ファンクション」を実装するための「Spring Cloud Function」というプロダクトの開発や、Kubernetes上でサーバレス環境を実現するOSS「riff」の開発がPivotal社によって進められています。

 Daveさんはクラウドにおける抽象レベルを「仮想マシン」「コンテナ」「アプリケーション」「ファンクション」の4つに分類し、「ファンクション」をもっとも抽象度の高いものと位置づけました。抽象レベルが高ければ高いほどインフラ周りの設定など価値に直結しない作業から解放され、ビジネスロジックの実装に集中することができます。一方で、抽象レベルが高くなると開発者がコントロールできる領域は減っていくため、状況によっては柔軟な対応が難しくなる場合が出てきます。

 このようなトレードオフの関係が存在するため、すべてがサーバレスになっていくのではなく、自分が必要とする抽象レベルがどこなのかを考え、適切な抽象レベルを選択することが必要であると述べました。

クラウドにおける4つの抽象レベル
クラウドにおける4つの抽象レベル

 また、それぞれの抽象レベルをサポートするプラットフォームも必要になります。Pivotal社は2017年12月にPivotal Cloud Foundry 2.0を発表し、PFS(Pivotal Function Service)、PAS(Pivotal Application Service)、PKS(Pivotal Container Service)という3つの機能をサポートしていくことを明らかにしました。これらは、クラウドの抽象レベルにおける「ファンクション」「アプリケーション」「コンテナ」のそれぞれに対応したものであり、開発者が必要に応じた抽象レベルを選択可能なプラットフォームだと言えます。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:イベントレポート

もっと読む

著者プロフィール

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5