セッション「Spring Data RESTを利用したAPIの設計と、作り直しまでの道のり」
楽天株式会社の高橋さんによるセッションでは、Spring Data RESTの活用事例が紹介されました。
Spring Data RESTは、データベースに対するCRUD処理に対応するRestfulなアクセスAPIを「いい感じに」簡単に作ることのできるフレームワークです。高橋さんは実際にその場で0からRestful APIをさらさらと作成、データの追加や更新のデモを見せ、「話しながらでなければ5分でもできる」とその簡単さを示していました。
これを利用すれば、うまくデータアクセスAPIとビジネスロジックAPIが分離できるかもしれないとの仮説のもと、楽天トラベル向けのシステムに適用した事例を紹介されました。簡単にAPIができる大きなメリットがある一方で、データの階層構造をうまく利用できない、複数のフィールドに対する操作が不便などといった課題が見つかり、最終的にはそのプロジェクトへの適用は断念したといいます。とはいえ、これは単なる失敗談にはとどまらず、試行錯誤の経験からSpring Data RESTが活用できる範囲が明確化され、エンティティやデータ操作がシンプルな他の楽天トラベルのプロジェクトでは適用できるようになったとのことです。
質疑では、データAPIとビジネスロジックAPIの切れ目はどう考えるか等、データアクセスに関する盛んな議論が交わされました。
セッション「Quick start Spring Boot on OpenShift」
Spring Bootのアプリケーションは、さまざまなプラットフォーム上で動作させることが可能であり、OpenShiftもその有力な選択肢の1つです。
このセッションでは、Red HatのKamesh Sampathさんが、OpenShiftについての基礎知識や、OpenShift上でSpring Bootベースのマイクロサービスを動かす際のTipsなどについて、デモを交えながら解説されました。
OpenShiftとは、Red Hat社が提供するコンテナプラットフォームで、「KubernetesのEnterprise版」と説明がされることが多いソフトウェアです。ちなみにKubernetesとは、OSSのコンテナオーケストレータであり、Red Hat社のメンバーもコントリビュータとして活躍し、発表から3年以上がたった現在でも盛んに開発が進められています。
講演の中では、OpenShift上であってもコンテナランタイム上でJARファイルが実行されることに変わりはないと説明され、実際にその場でSpring BootアプリケーションをOpenShift上にデプロイする様子をデモとして見せていただきました。デモに使ったソースコードなどはGitHub上に公開されているため、エンジニアの方は一度ご覧になってみると面白いと思います。
さらにセッションでは、Spring Bootベースのマイクロサービスを動かすために、OpenShiftが遂げている進化について紹介がされました。2016年の時点では、Kubernetesベースのサービスディスカバリやコンフィグサーバといった、マイクロサービスの開発運用にうれしい機能が、プラットフォーム側から提供されているとのことです。
さらに2017~18年にかけて、分散トレーシング、APIゲートウェイ、サーキットブレーカなどの機能が順次提供されていくとのことで、マイクロサービスのプラットフォームにOpenShiftを使っている、またはこれから使おうとしている開発者の方にとっては、ぜひ押さえておきたいポイントになるでしょう。
おわりに
本稿では、Spring Fest 2017の様子と一部のセッションの内容をレポートしました。全体としてはSpringの最新ネタ、エンタープライズでの苦労話、初心者に向けた入門的な内容などがほどよくちりばめられ、多くの参加者がそれぞれ学びを得ることができる良いイベントだったと感じます。セッション終了後に行われた懇親会では、イベントTシャツの争奪戦や恒例のライトニングトーク大会が行われ、最後まで活況を呈していました。
JSUG会長の長谷川さんからは、「JSUGはこれからも講演者とその他の参加者の垣根なく運営をしていきたい」とのお言葉もあったので、JSUGイベントで登壇してみたい方はスタッフにコンタクトしてみてはいかがでしょうか。
なお、本記事のレポーターを務めたNTTソフトウェアイノベーションセンタのメンバーもSpring Security 5.0解剖速報と題したセッションで講演させていたきました。Spring Security 5.0での新要素について解説した内容となっております。ご興味があればご覧ください。