本記事のレポーター
- 【NTT ソフトウェアイノベーションセンタ】小泉雄太、岩塚 卓弥、水野 諭孝
- 【NTTデータグループ】井上 大輔、高見 諭史、高橋 寛恒
- 【NTTコムウェア】田村 祐揮、黒澤 和矢
SpringOneとは
SpringOne at VMware Exploreは、VMware Inc.(以下VMware)が開発を牽引するOSSのアプリケーション・フレームワークであるSpring Framework、Spring Bootなどに関する最新情報、ユーザ事例を中心に、DevOpsやマイクロサービスといったソフトウェア開発のトレンドを扱うカンファレンスです。今回のSpringOneは同社が主催するVMware Exploreを構成する一部として開催されました。
SpringOne at VMware Exploreは米国ラスベガスで8月21日~24日の4日間開催されました。VMware Explore全体で900を超えるセッションが実施され、その内71のセッションがSpringOneのセッションでした。セッションには実際のSpring開発者やメンテナーが登壇し、セッション中や終了後に質問する参加者が多く見受けられました。さらに、開発者とのディスカッションを目的としたラウンドテーブル形式のセッションも設けられていました。多くのセッション動画が8月28日の時点で公開され、アカウント登録をすれば誰でも視聴できるようになっています。
今年はSpring誕生から20年、Spring Bootリリースから10年という節目の年です。端々で節目を祝いつつ、多くのキーワードが提示され、それに沿った多様なセッションが開かれました。
本レポートではSpringOneのKeynoteセッションの内容と、筆者らが興味深いと感じた個別セッションを紹介いたします。
SpringOne Keynote: Accelerating Innovation with Spring
Spring OneのKeynoteセッションでは、Springコミュニティーのこれまでの歩みや、Spring Framework 6.1、Spring Boot 3.1など最新動向についての紹介が行われました。
Welcome, Spring's 20 Years of Java Innovation
まずは、SpringコミュニティーのマーケティングチームのスポンサーであるPurnima Padmanabhan氏が登壇しました。Spring Framework 20周年、Spring Boot 10周年に対して謝辞を述べると共に、SpringがJavaアプリケーションビルドに変革をもたらしてきたことを強調しました。さらに、成長したSpringコミュニティやエコシステムの力が、動画配信サービスや健康管理サービスといった多種多様な業界に影響を与える存在となっていると説明がありました。
Springの今後の成長の方向性として、Zero Scale、Check Point Restore、Spring AIといったキーワードが提示されました。さらに、これらの新しい技術に対応するためのコンサルティングサービスの紹介や、Spring ランタイムの長期サポート、Springアカデミーなどサポートに関する取り組みも行っている点についても述べられました。
最後に、VMWare TanzuがSpring開発者にとって最適なプラットフォームを提供している点を挙げ、Tanzu Application Platformや、Microsoft Azureとの協業によるAzure Spring、Apps Enterpriseの提供についての紹介がありました。
続いて、Springコミュニティの共同創設者であるJuergen Hoeller氏が登場し、2003年から続くSpringプロジェクトの歩みについて次のように紹介しました。
「2000年代の携帯電話時代からのサーバーサイドJava、サーブレット、JSP、J2EEなどの技術の移り変わりの中で、Spring Frameworkは2003年にSourceForgeにオープンソースプロジェクトとして立ち上がりました。当時はWeb領域ではStrutsが強い時代でしたが、Spring MVC誕生後、徐々にSpringが世の中に広まっていきました。
その後、Spring Security、Spring Batch、Spring Integrationなどが公開され、2013年にはSpring Bootが登場しました。Spring BootはSpringアプリケーションのデプロイ方法を大きく変える転換点となりました」
また、Spring BootがSpringコミュニティの中でも特に活動が活発で多くの人から支持を得ていると述べました。
加えて、Springは優れたコミュニティ運営をしているとし、バグレポート、拡張提案などGitHubのプルリクエストを通して多くのユーザーからの貢献によって支えられている点についても言及しました。
そして現在、SpringエコシステムとJavaエコシステムが、Spring Framework 6とSpring Boot 3によって更に進化しているというメッセージを結びに、Spring Framework 20周年、Spring Boot 10周年に祝辞を述べました。
10 Years with Spring Boot
続けて、Spring Bootの10年間の歩みについて紹介がありました。登壇者のDave Syer氏とJosh Long氏が2013年当時を振り返りました。
2013年当時、Javaのアプリケーションサーバーで定義されるXMLは非常に量が多く複雑で迷路のようなもので XML地獄と呼ばれていたこと、その後Spring Bootの登場によりXML地獄から脱却し、さらに組み込みアプリケーションサーバーにより実行が簡単になったことが述べられました。また、Spring Initializrにより、Springのアプリケーションのベースとなるコードを容易に生成できるようになったことが紹介されました。そして、Spring Boot 2でSpring Cloud、WebFluxサポート、Reactorなどさまざまな機能に対応したことを述べられました。
ここで、Spring Boot 3.1の新機能についてMoritz Halbritter氏へバトンタッチされました。
Moritz Halbritter氏からは、Spring Boot 3.1の新機能として、開発時のコンテナ連携機能について紹介がありました。Spring Boot 3.1では、Docker ComposeのYAML定義ファイルを使い、Spring Bootアプリケーションをコンテナとして起動したり、テストフェーズで利用できるTestcontainersとして起動することができます。Spring Bootが指定したディレクトリ配下にあるYAML定義ファイルを探し、設定を自動構成できることを紹介しました。これにより、必要なDBのコンテナをSpring Bootと共に起動し、アプリケーションの実行やテストフェーズで簡単にテストを実行できるようになります。
Commerce Hub from Fiserv-product integration layer powered by Spring
続いて、Springを利用している企業からビデオメッセージが紹介されました。
OktaのMatt Raible氏らから、今回のイベントへの祝辞、Springに対する謝辞が述べられました。Springユーザを代表してFiservのJoachim Pasquali氏が登壇し、Springを活用したシステムの事例紹介がありました。
Fiservは大規模なソフトウェアプロバイダーで、クレジットカード取引や銀行向けのソフトウェアを提供し、毎年何十億もの取引を処理しています。Fiserv の成功の鍵は、ソフトウェア開発における協力と効率性だと述べ、Commerce Hubという統合ソリューションを開発し、商店が簡単に多くの製品を統合できるようにしたことが説明されました。
また、このプロジェクトでは、Spring BootとProject Reactorを基にしたマイクロサービスアーキテクチャが採用され、Springが優れたテストサポートを提供していると強調していました。そして、自動化されたデプロイメントパイプラインも導入され、セキュリティの最新情報やパフォーマンスを維持するのに役立っていることが紹介されました。さらに、Spring Boot Actuatorを使用して監視と自動修復が行われ、サーキットブレーカーパターンや自動フェイルオーバーも実装されています。Commerce HubはSpringとの協力により、信頼性の高いシステムを提供し、世界をより良い場所にすることを目指していると語られました。
Spring Framework 6.1
再びJuergen Hoeller氏が登場し、Spring Framework 6.1など最新のアップデートについて紹介がありました。
Spring Framework 6.1は、Java 21への対応やJavaの新機能である仮想スレッド、チェックポイントリストアなどが取り入れられており、高いスケーラビリティや効率性が提供されています。
続いて、Spring Framework 6.1で提供される各機能の紹介がありました。
Virtual Threads Demo
まずはCora Iberkleid氏から、仮想スレッドの解説とデモがありました。仮想スレッドについては、本稿後半の「Preparing Spring Web Applications for Loom」のセッションレポートで扱っていますので、そちらをご覧ください。
Scale Your @Controllerss to Zero with Serverless
Scale to Zero with JVM Checkpoint Restore
続いて、Oleg Zhurakousky氏とMark Sailes氏から、チェックポイントリストアに関連して、サーバーレスに関する話題が紹介されました。Spring Cloud FunctionやAWS Lambda Snapshotといった既存の取り組みが取り上げられ、AWS Lambda Snapshotを引き合いに、Javaのチェックポイントリストアへと話題が移っていき、登壇者がVioleta Georgieva氏に替わりました。
Javaは起動直後、JITコンパイルがされていない状態のため最高性能に到達するまで時間がかかってしまうという課題があります。サーバーレスのような短命なアプリケーションではこの課題は大きな影響を及ぼします。
チェックポイントリストアは、この問題の解決に役立つ機能です。Javaの途中状態をJVM Checkpoint Imageとして保存します。JVM Checkpoint Imageは復元時にJIT コンパイルが効いた状態で復元されるので、素早く最高性能に達します。デモでは具体的な利用方法が順を追って説明されました。アプリケーションが高速に起動する様子が紹介された際は会場から拍手が起こり、開発者からの関心の高さが伺えます。
Tech業界の格差について
次は技術的なトピックから離れて、Tech業界における賃金格差問題などについて取り組んでいるLeyla Seka氏から講演がありました。講演では、Salesforce勤務時代に推進した男女の賃金格差解消に向けた取り組みや、その後に取り組んでいる黒人向けのベンチャーキャピタリスト育成の取り組みが紹介されました。
日本では人種問題を感じる機会は少ないかもしれませんが、これらの問題がKeynoteで取り上げられる重要な問題であること、また問題に向き合い取り組もうとするVMwareの姿勢を感じるセッションでした。
Spring Unlocks the Power of Platforms
最後はSpringを実行するプラットフォームについて、Tanzuの技術者Adib Saikali氏と、Azureの技術者Asir Selvasingh氏から発表がありました。
まず、アプリケーションの特性に合わせて最適な設定を可能にするプラットフォームとして、Tanzu Application Service(TAS)、Tanzu Application Platform(TAP)、Azure Spring App Enterpriseが紹介されました。
続いて、オンラインショッピングサイトにチャットボットを追加するシナリオに沿ったデモが行われました。TAP を利用して詳細な設定などを気にせずに素早く開発したり、Azure Spring App Enterprise に簡単にデプロイする様子が紹介されました。
TASについては後述の個別セッション「You Don’t Need Kubernetes to Be Cloud Native」でも解説されていました。
以上がKeynoteセッションの紹介です。Springとしてはマイナーバージョンアップなこともあり、仮想スレッドやCRaCなどJava機能の取り込みを中心に紹介された印象です。