Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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. 8 Github からビルドして Cloud Run を実行 • ローカルでビルド&実行できるソースコードとDockerfile を用意する ◦

    actix/actix-web (Rust) ◦ Dockerfile • Github のリポジトリにソースコードと Dockerfile を Push する https://github.com/kongmingstrap/cloud-run-sampler
  2. 9 Github からビルドして Cloud Run を実行 • Cloud Build のトリガーの設定

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

    ◦ Build した コンテナイメージを指定 ◦ その他の設定は必要に応じて
  4. 11 Github からビルドして Cloud Run を実行 • Cloud Run の起動が成功

    ◦ 指定のURLでアクセスできるようになります ◦ 以前のビルドしたバージョンに戻す場合も、リビジョンの切り 替えで可能
  5. 14 Cloud Run が有効なケース • 同時に実行しているアプリの複数のインスタンスを処理 するようにビルドされている • インスタンスごとに 8

    個の CPU と 32 GiB のメモリを上限と し、それ以上を必要としない • コンテナ化されていること https://cloud.google.com/run/docs/fit-for-run?hl=ja
  6. 16 Cloud Run でコードを実行する2つの方法 • サービス ◦ Webリクエスト、イベントに応答するコードの実行に 使用 •

    ジョブ (Preview) ◦ 作業(ジョブ)を実行し、作業の完了後に終了するコードの実 行に使用
  7. 18 サービス • 用途 ◦ Webサイト・Webアプリケーション ◦ API とマイクロサービス ◦

    ストリーミングデータ処理 https://cloud.google.com/run/docs/overview/what-is-cloud-run?hl=ja#services
  8. 20 ジョブ (Preview) • 用途 ◦ スクリプトやツール ◦ 配列ジョブ ◦

    スケジュールされたジョブ • 第2世代の実行環境が必要 https://cloud.google.com/run/docs/overview/what-is-cloud-run?hl=ja#jobs
  9. 22 Cloud Run 第2世代 (Preview) • 第1世代の実行環境はコールドスタート時間が高速でエ ミュレーションを行う ◦ 全てのOSのシステムコールが実行できるわけではなかった

    • 第2世代の実行環境では、Linuxの完全な互換性が実現 ◦ CPUパフォーマンスの高速化 ◦ ネットワークパフォーマンスの高速化 ◦ 全てのシステムコール、名前空間、cgroupのサポートを含 む、Linuxとの互換性
  10. 23 Cloud Run 第2世代 (Preview) • ネットワークファイルシステムのサポート ◦ コンテナ内のディレクトリにマウントできる ◦

    ホストシステムとコンテナ インスタンスの間でリソースを共有 し、コンテナ インスタンスがガベージ コレクションされた後も リソースを保持できる https://cloud.google.com/run/docs/tutorials/network-filesystems-filestore?hl=ja
  11. 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