[Next 2019聴講メモ] Cloud Run ~Knativeを使った新しいサーバーレス


※※2019/08/14 追記 YouTubeに投稿されたセッションのリンクを追加しました。※※

Cloud Run ~Knativeを使った新しいサーバーレス

  • 篠原一徳
    • Google Cloud
    • Anthos
    • serverless
    • k8s
  • YouTube

そもそもserverlessって?(Googleの定義)

  • no infra management
    • インフラの管理はユーザーでは行わない
  • fully managed security
    • Google側でセキュリティ問題が完結している
  • pay only for usage
    • 従量課金制

googleのサーバーレスコンピュート

  • Functions
  • App engine
  • Cloud Run

why Cloud Run?

  • Cloud Run以外で起こる問題点
    • 使用できる言語、ライブラリに制約
    • ベンダーロックイン
    • GPU/TPUなど特定のハードへのアクセスができない
  • 解決のために
    • Knative
    • k8sクラスタにFaaS/PaaS実行環境を構築
      • OSS(Google発祥)
      • コンテナをサーバーレスライクに使える
      • k8sクラスターのハードウェアリソースが使える(GPU/TPU)
    • building block
      • platform
        • k8s
        • istio
      • Primitives(use Knative)
        • build
        • serving
        • Events
      • Products
        • SAP
        • Cloud Run
        • Cloud Run on GKE
        • etc

特徴

  • 高速なデプロイ
    • ステートレスなコンテナ
    • 高速に0から無限にスケール
    • 数秒でデプロイ
  • サーバーレスネイティブ
    • コードに集中できる
      • ランタイムの制約がなくなる
  • 高いポータビリティ
    • コンテナベースのため
    • Knativeベースであれば他ベンダーでも使える

2つのCloud Run

  • Cloud Run
    • 完全にサーバーレス
    • 使った分だけ
    • Borgが使われている
    • VPCアクセスできない
  • Cloud Run on GKE
    • クラスターの費用に依存する
    • VPCアクセスできる

2つの対比としてはこちらがよくわかりやすい(らしい)

リソースモデル

  • Service
    • Cloud Runの主リソース
    • Service毎にエンドポイントを提供
  • Revision
    • デプロイする毎に生成される
    • デプロイされるとリクエストが割り振られる
  • Container Instance

ユースケース

  • 外部サービス公開
  • IAMをつかってプライベートにアクセス
    • エンドポイント自体はネットワークに公開される(ファイアウォールはない)
    • ソースに認証トークンを埋める
  • 非同期タスク
  • Cloud Schedulerを使って定期的に呼び出す
  • DB接続

なぜ高速にデプロイできるのか

  • gVisorを使っている
    • システムコールを阻害
  • concurrencyを使ったリソース消費とコストの最適化
    • 1つのコンテナインスタンスに投げられるリクエストの最大数
    • コンテナとかを適切に制御
    • チューニングポイントになる
      • レイテンシーとかに関わる
    • 時間課金の考え方
      • 完全にアクセスがなくなるまで
  • Stackdriverとの連携
    • Monitoring
    • logging
    • error reporting

どうサーバーレスを使い分ける?

  • Functions
    • ソースベース
    • イベントドリブン
  • App Engine
    • ソースベース
    • 1プロジェクトにつき1リージョンの制約
  • Cloud Run
    • コンテナベース
    • ランタイム制約・ロックインなし ​

まとめ

  • Cloud Runはコンテナをサーバーレスに使える
  • 様々な制約がない(言語、ランタイム)
  • YouTube

個人的に調べたいToDo

  • gVisor
  • Cloud RunとCloud Run on GKEの対比