アプリケーション開発

Cloud Code で Cloud Run の開発を効率化

#gcp

※この投稿は米国時間 2020 年 9 月 15 日に、Google Cloud blog に投稿されたものの抄訳です。

編集者注: Google は、Google Cloud Next ‘20: OnAir で、アプリケーションの配信と開発のプロセスを迅速化するためのいくつかの新しい機能とサービスに加え、Cloud Application Modernization Platform(CAMP)を公開しました。今後数か月間にわたって、これらの発表について深く掘り下げ、デベロッパーの生産性、セキュリテイとコンプライアンス、運用上のベスト プラクティス、ハイブリッドとマルチクラウドについて解説します。公式発表をお待ちください。

Cloud Run は Google のフルマネージド コンテナのコンピューティング プラットフォームです。このプラットフォーム用のサービスを開発するときは、コードエディタ、ターミナル、Google Cloud Console を切り替えて使用するのが普通です。これらのコンテキスト切り替えに加えて、サービスをデプロイするたびに同じコマンドを繰り返し実行することになるでしょう。Cloud Code は、クラウドネイティブのアプリケーションの作成、デバッグ、デプロイを行うため必要なすべての機能を備えたツールセットです。Google Cloud でクラウドネイティブの開発をより生産的に行えるよう設計されており、VS Code や IntelliJ など一般的な IDE 用のプラグインが用意されています。そして Cloud Code に、お使いの IDE のユーザー インターフェースで一般的なワークフローを組み込むことで、Cloud Run による開発が簡単になりました。

具体的には、この Cloud Run と Cloud Code との新しい統合により、お使いの IDE で新しい Cloud Run サービスを簡単に作成できるようになります。作成したサービスをローカルマシンで実行し、短時間で繰り返し使用して、デバッグを行ってから Cloud Run にデプロイします。これらの Cloud Run サービスの実行を開始した後も、管理と更新のため役立ちます。詳しく見ていきましょう。

新しい Cloud Run サービスの作成

コンテナ化とサーバーレス サービスについて学ぶのは最初が大変です。Cloud Run を初めて使用する方のために、Cloud Code に組み込みのサンプルリストを更新し、Cloud Run サンプルも含めました。これらのサンプルは Java、NodeJS、Python、Go、.NET 言語で使用でき、構築作業を行うための基礎となり、ベスト プラクティスを示すことで習得を容易にするので、サービスのコーディングをすぐに開始できます。

すべてのサンプルには Dockerfile が含まれているので、コンテナの構成を調べるために時間を費やす必要はありません。既存のサービスを Cloud Run に移行しようとしている場合、Dockerfile についてはあまりご存じないかもしれませんが、ご心配は無用です。Cloud Code には Google Cloud Buildpacks のサポートが組み込まれており、コードからサービスを直接コンテナ化するので、Dockerfile は必要ありません。Cloud Code には、Cloud Run にサービスをデプロイするため必要なすべてが含まれています。

1 Getting started with Cloud Run templates.png

Cloud Run サービスをローカルで開発してデバッグする

サービスを Google Cloud にデプロイする前に、自分のマシンで動作をテストし、望ましい変更を加え、問題点のデバッグを行うのが普通です。Cloud Run サービスを開発するときは、サービスをビルドしてからクラウドにデプロイし、代表的な Cloud Run 環境で新しい変更をテストする作業をひっきりなしに行う必要があります。デバッガをアタッチすればコードをローカルでデバッグできますが、これは一般にコンテナ全体ではなく作成したコードだけが範囲になるため、ツールをローカルにインストールする必要があります。Docker でコンテナをローカルに実行できますが、コマンドが長くなり、しかもこれは実際の本番環境の典型というわけではありません。

新しい Cloud Code では Cloud Run エミュレータがセットアップされるようになったため、Cloud Run サービスをローカルで開発し、デバッグできます。DevOps Research and Assessment(DORA)により行われた調査によれば、ソフトウェア配信パフォーマンスで高い得点を得たチームは、得点の低いチームと比較して変更の障害率が 7 倍も低くなっています。コードを短時間でローカルに繰り返し実行でき、代表的な環境でデバッグできることにより、エラーを短時間で、かつ開発プロセスの早期で発見できるため、エラーが CI や、さらには本番環境で発見される事態を防止できます。

Cloud Run エミュレータでコードを実行するとき、ウォッチモードをオンにすることができます。ファイルを保存するたびにサービスがエミュレータに再デプロイされるので、継続的な開発が可能です。

cr-watch.gif
Cloud Run エミュレータでウォッチモードを使用した最初の実行時

Cloud Code で Cloud Run サービスをデバッグすると、普段お使いの IDE と同じ環境でデバッグを行えます。VS Code で [Debug on Cloud Run Emulator] コマンドを使用するとき(または IntelliJ を使用しているなら、[Cloud Run: Run Locally] 構成の [Debug] を選択するとき)、コードのマージンにブレークポイントを設定します。コンテナのブレークポイントをトリガーすると、ステートメントをステップ実行し、変数のプロパティにカーソルを合わせて、コンテナのログを確認できます。

3 cloud run debug.png
VS Code と IntelliJ での Cloud Code による Cloud Run サービスのデバッグ
4 cloud run debug.png
VS Code と IntelliJ での Cloud Code による Cloud Run サービスのデバッグ

サービスを Cloud Run にデプロイする

Cloud Run サービスのコードに加えた変更をローカルでテストしたら、コンテナをビルドして Cloud Run にサービスをデプロイします。

Cloud Run サービスの準備が整えば、お使いの IDE からごく簡単にサービスをデプロイできます。サービスをデプロイ用に構成するため必要なすべてのオプションは用意されています。[Deploy] をクリックすると、Cloud Code によってコンテナ イメージのビルドに必要なすべてのコマンドが実行され、そのイメージが Cloud Run にデプロイされてから、URL がサービスに返されます。

cr-deploy.gif

Cloud Run サービスの管理

Cloud Code では、VS Code をクリックするだけでリビジョンやサービスログにアクセスできるため、各リビジョンのログを簡単に参照できます。Cloud Console と、お使いの IDE とのコンテキスト切り替えを減らすため、この機能は IDE に移行されました。ログビューアは、Cloud Run エクスプローラで選択した Cloud Run サービスまたはリビジョンに特化しています。

6 logs viewer.png

Cloud Run エクスプローラでは、プロジェクトの Cloud Run フルマネージドおよび Cloud Run for Anthos のサービスすべての詳細をすばやく参照することもできます。また、Cloud Run エクスプローラではトラフィックのリダイレクトや CPU 割り振りの割合も調べることが可能です。

7 cloud run explorer.png

VS Code と IntelliJ での Cloud Run エクスプローラ

8 cloud run explorer.png
VS Code と IntelliJ での Cloud Run エクスプローラ

リビジョンを右クリックすると、サービスの URL にすばやくアクセスできます。または Cloud Console に移動してトラフィックを表示、またはサービス間のトラフィックのリダイレクトを調整することができます。

使ってみる

デプロイとロギングのワークフローを効率化するため、Cloud Code で Cloud Run をお試しください。詳しくは、Visual Studio CodeJetBrains IDE に関する Cloud Run のドキュメントをご覧ください。IDE での開発を新しく始める場合は、最初のステップとして Visual Studio CodeIntelliJ をインストールしてください。


-デベロッパー アドボケイト Abby Carey

-プロダクト マネージャー Russell Wolf