Google Cloud Platform

Spring Cloud GCP プロジェクトを発表 ―― 定番の Java フレームワークと Google Cloud を緊密に連携

Spring Framework は長きにわたって Java エコシステムにおけるイノベーションを支えてきました。Spring とそのエコシステムは広く定着し、今では最も人気のある Java フレームワークの 1 つとなっています。

そうした Spring を利用する開発者コミュニティへのサポートを強化し、より多くの開発者に Google Cloud Platform(GCP)を活用していただけるよう、Google はこのほど Spring Cloud GCP プロジェクトを発表しました。Pivotal と共同で進めているこのプロジェクトは、Spring と GCP の緊密な連携を図り、GCP 上での Spring コードの実行をできるだけ容易にすることを目指しています。

Spring プラットフォームとサードパーティ ライブラリの “頑固なやり方” を取り入れた Spring モジュールである Spring Boot は、本番グレードの Spring アプリケーションの開発を容易にします。最小限の構成でアプリケーションにフル構成の Java オブジェクトを提供し、高機能のアプリケーションを数分で作成できるようにします。

Spring Boot のサポートに力を入れている Spring Cloud GCP を使用することで、ボイラープレート コード(冗長な定型コード)を大幅に削減し、Spring のイディオムに従って GCP サービスを利用できます。ほとんどの場合、GCP サービスを利用するにあたって Spring コードを変更する必要はありません。

Spring Cloud GCP プロジェクトの一環として、私たちは一般的な Spring ライブラリと GCP サービスについて次のような連携を図っています。

Google Cloud Platform Spring Framework 説明
Cloud SQL Spring JDBC Spring Cloud GCP SQL が JDBC URL とドライバのクラス名を自動的に設定し、クライアント証明書を用いて安全な SSL 接続の確立を支援します。
Cloud Pub/Sub Spring Integration Spring Integration の考え方(チャネルやゲートウェイなどのような)に沿って、Cloud Pub/Sub からのメッセージを送受信します。
Cloud Storage Spring Resource Spring Resource オブジェクトを使用して Cloud Storage バケット内のファイルにアクセスしたり、バケットにファイルを保存したりします。
Stackdriver Trace Spring Cloud Sleuth Spring Cloud Sleuth とそのアノテーションを用いてマイクロサービスを追跡し、追跡データを Stackdriver Trace に送信します。データは保存され、分析可能になります。
Runtime Configuration API Spring Cloud Config 独自の構成サーバを実行することなく、マネージド サービスである Runtime Configuration に構成値を保存したり、Runtime Configuration 内の構成値にアクセスしたりします。

上述の連携機能は、最新のSpring Framework 5 および Spring Boot 2 と互換性があります(Spring Cloud GCP の Milestone 2 以降)。

Spring Cloud GCP のライブラリは現在ベータの段階にあり、Pivotal の Milestones Maven Repository から入手できます。

Spring Cloud GCP を試すには、コード サンプルリファレンス ドキュメントプロジェクト ページコード ラボをチェックしてください。GCP の Spring Framework サポート関連のドキュメントにはさらに多くの情報が掲載されています。また、フィードバックがありましたら、ぜひ GitHub イシュー トラッカーにご登録ください。

私たちは他にもエキサイティングな機能を開発しており、近いうちに正式リリースする予定です。お楽しみに!

* この投稿は米国時間 2 月 7 日、Software Engineer である João André Martins によって投稿されたもの(投稿はこちら)の抄訳です。

- By João André Martins, Software Engineer