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

大量の Cloud (Run) Functions からなるサービスのこれまでとこれから/Th...

大量の Cloud (Run) Functions からなるサービスのこれまでとこれから/The past and future of the service with lots of Cloud (Run) functions

登壇者名:Naoki Ikeguchi
登壇したイベントタイトル:事業成長を加速する技術基盤 5社が語るリプレイス・リアーキテクチャの最前線
登壇したイベントのURL:https://timeedev.connpass.com/event/344976/

More Decks by 株式会社ビットキー / Bitkey Inc.

Transcript

  1. 2 © Bitkey Inc. Ikeguchi Naoki    siketyan 池口 直希 2024.04

    株式会社ビットキーへ入社 技術的負債の解消や古い仕組みからの移行などを 担当するチームに所属 $ whoami
  2. 3 3 © Bitkey Inc. $ ls -al • ビットキーと

    GCF のこれまで • 大量の GCF とこれから
  3. 6 6 © Bitkey Inc. ビットキーの事業発展 賃貸 分譲 内見 予約

    受付 従業員 管理 認証 認可 デバイス 権限
  4. 13 13 © Bitkey Inc. なぜ GCF をやめるのか • Cloud

    Build でのビルドが強制されるので 柔軟なビルド・デプロイフローの構成が難しい • 関数の数に比例してデプロイに時間がかかる • リビジョン機能がないため素早くロールバックできない • タグ付きリビジョンやカナリアリリースも使えない • そもそも第 2 世代はベースが Cloud Run
  5. 17 17 © Bitkey Inc. どのように移行したか • Cloud Load Balancing

    で重み付きバックエンドを作成 ◦ 重み付きバックエンドは classic な URL map では利用不可 ◦ classic からの移行は DNS 権威サーバのラウンドロビンで行った • 様子を見ながらトラヒックを Cloud Run 側に移動 • アクセスがなくなったら GCF 側を削除
  6. 22 22 © Bitkey Inc. 課題: Firestore / Storage トリガ

    • Cloud Run functions では隠蔽されているが Cloud Run では Eventarc + Pub/Sub の構成が必要 • 移行時に並行運用期間が発生するため冪等な処理が必要 ◦ そもそも GCF のトリガは at least once なのだが…… Events are delivered at least once, but a single event may result in multiple function invocations. Avoid depending on exactly-once mechanics, and write idempotent functions. https://firebase.google.com/docs/functions/firestore-events?gen=1st#limitations_2