$30 off During Our Annual Pro Sale. View Details »

Cloud Run が作る世界 #devio2022

Cloud Run が作る世界 #devio2022

DevelopersIO 2022のビデオセッションにて、「Cloud Run が作る世界」というテーマでお話しました。

Takaaki Tanaka

July 21, 2022
Tweet

More Decks by Takaaki Tanaka

Other Decks in Technology

Transcript

  1. Cloud Run が作る世界

    2022/7/22

    CX事業本部MAD事業部 田中孝明 


    View Slide

  2. 田中孝明 (Takaaki TANAKA)
    ● CX事業本部 MAD事業部所属

    ● 福岡オフィス所属

    ● 好きな言語: C++ / Swift

    ● サウナ・スパ プロフェッショナル

    2

    View Slide

  3. 3
    MAD事業部と Google Cloud との関わり
    https://classmethod.jp/services/mad/

    View Slide

  4. 4
    Cloud Run

    View Slide

  5. 5
    Cloud Run
    ● コンテナを直接実行できるマネージドコンピューティング
    プラットフォーム
    ● コンテナイメージをビルドできるものであれば、任意のプ
    ログラミング言語で記述されたコードをデプロイできる

    View Slide

  6. 6
    Cloud Run
    ● Google Cloud 上の他のサービスと連携できる
    ○ Pub/Sub
    ○ Cloud Scheduler
    ○ Cloud Tasks
    ○ Eventarc

    View Slide

  7. 7
    Cloud Run のデプロイ その1

    View Slide

  8. 8
    Github からビルドして Cloud Run を実行
    ● ローカルでビルド&実行できるソースコードとDockerfile
    を用意する
    ○ actix/actix-web (Rust)
    ○ Dockerfile
    ● Github のリポジトリにソースコードと Dockerfile を Push
    する
    https://github.com/kongmingstrap/cloud-run-sampler

    View Slide

  9. 9
    Github からビルドして Cloud Run を実行
    ● Cloud Build のトリガーの設定
    ○ 自分のリポジトリをソースに設定
    ○ Github の指定したブランチに Push
    すると、Artifact を作成するビルドが
    走る
    ○ タイムアウトがデフォルトだと10分な
    ので注意

    View Slide

  10. 10
    Github からビルドして Cloud Run を実行
    ● Cloud Run のサービス作成
    ○ Build した コンテナイメージを指定
    ○ その他の設定は必要に応じて

    View Slide

  11. 11
    Github からビルドして Cloud Run を実行
    ● Cloud Run の起動が成功
    ○ 指定のURLでアクセスできるようになります
    ○ 以前のビルドしたバージョンに戻す場合も、リビジョンの切り
    替えで可能

    View Slide

  12. 12
    Cloud Run のデプロイ その2

    View Slide

  13. 13
    Cloud Run が有効なケース
    ● HTTP、HTTP/2、WebSocket、gRPC 経由で配信されるリク
    エスト、ストリーム、イベントのいずれかを提供されている
    こと
    ● ローカル永続ファイル システムを必要としない
    https://cloud.google.com/run/docs/fit-for-run?hl=ja

    View Slide

  14. 14
    Cloud Run が有効なケース
    ● 同時に実行しているアプリの複数のインスタンスを処理
    するようにビルドされている
    ● インスタンスごとに 8 個の CPU と 32 GiB のメモリを上限と
    し、それ以上を必要としない
    ● コンテナ化されていること
    https://cloud.google.com/run/docs/fit-for-run?hl=ja

    View Slide

  15. 15
    Cloud Run を実行する2つの方法

    View Slide

  16. 16
    Cloud Run でコードを実行する2つの方法
    ● サービス
    ○ Webリクエスト、イベントに応答するコードの実行に
    使用
    ● ジョブ (Preview)
    ○ 作業(ジョブ)を実行し、作業の完了後に終了するコードの実
    行に使用

    View Slide

  17. 17
    サービス
    ● 高速なリクエストベースの自動スケーリング
    ● 使い捨てのコンテナファイルシステム
    ● 従量課金制
    ○ リクエストベース
    ○ インスタンスベース
    https://cloud.google.com/run/docs/overview/what-is-cloud-run?hl=ja#services

    View Slide

  18. 18
    サービス
    ● 用途
    ○ Webサイト・Webアプリケーション
    ○ API とマイクロサービス
    ○ ストリーミングデータ処理
    https://cloud.google.com/run/docs/overview/what-is-cloud-run?hl=ja#services

    View Slide

  19. 19
    ジョブ (Preview)
    ● 一つのコンテナインスタンスで実行
    ● 独立した同一のコンテナインスタンスを実行することも可
    能(配列ジョブ)
    https://cloud.google.com/run/docs/overview/what-is-cloud-run?hl=ja#jobs

    View Slide

  20. 20
    ジョブ (Preview)
    ● 用途
    ○ スクリプトやツール
    ○ 配列ジョブ
    ○ スケジュールされたジョブ
    ● 第2世代の実行環境が必要
    https://cloud.google.com/run/docs/overview/what-is-cloud-run?hl=ja#jobs

    View Slide

  21. 21
    第2世代

    View Slide

  22. 22
    Cloud Run 第2世代 (Preview)
    ● 第1世代の実行環境はコールドスタート時間が高速でエ
    ミュレーションを行う
    ○ 全てのOSのシステムコールが実行できるわけではなかった
    ● 第2世代の実行環境では、Linuxの完全な互換性が実現
    ○ CPUパフォーマンスの高速化
    ○ ネットワークパフォーマンスの高速化
    ○ 全てのシステムコール、名前空間、cgroupのサポートを含
    む、Linuxとの互換性

    View Slide

  23. 23
    Cloud Run 第2世代 (Preview)
    ● ネットワークファイルシステムのサポート
    ○ コンテナ内のディレクトリにマウントできる
    ○ ホストシステムとコンテナ インスタンスの間でリソースを共有
    し、コンテナ インスタンスがガベージ コレクションされた後も
    リソースを保持できる
    https://cloud.google.com/run/docs/tutorials/network-filesystems-filestore?hl=ja

    View Slide

  24. 24
    Cloud Functions 第二世代 (Preview)
    ● Cloud Run + Eventarc を利用したインフラストラクチャ
    ○ HTTP関数に対して、最大60分の実行時間
    ○ 最大 16GB の RAMと4つの vCPU を利用可能
    ○ 異なるリビジョンへのトラフィック分割
    https://cloud.google.com/blog/ja/products/serverless/introducing-the-next-generation
    -of-cloud-functions

    View Slide

  25. 25
    まとめ
    ● ローカルで動かせる環境をそのままコードとして実行でき
    るので、開発者のマシンに依存しない開発が可能
    ● 第二世代の登場で、今までサーバーレスで実現できな
    かった処理も今後は選択肢になりうる
    ● Cloud Run は Google Cloud の別のサービス影響を及ぼ
    しているので、最新情報を追うと他のサービスのアップ
    デートもキャッチアップできる

    View Slide

  26. View Slide