1 of 17

Cloud Support

完全に理解した

2022/01/27 Easy!Easy! (#完全に理解したTalk)

@ttyfky

CTO at Belong Inc.

2 of 17

About Speaker

Profile

Tatsuya Fukui (@ttyfky)

  • CTO @ Belong Inc. (2020/06~Present)
  • TSE of GCP @ Google (2018/07~2020/05)
  • SWE @ Goldman Sachs (2013/04~2018/06)

Favorites

  • Fishing
  • Eating/Drinking (鮨/お酒)
  • Baseball/Golf

2

3 of 17

どう Cloud Support を理解したのか

@Google

  • TSE としてサーバーレス、データ系のプロダクトを担当

@Belong Inc.

  • GCP を用いてサービス開発

=> ベンダー目線、ユーザー目線両方でクラウドサポートと関わる

  • GAE
  • Cloud Run
  • CloudSQL
  • GCS
  • Bigquery
  • Cloud Scheduler
  • Cloud Workflow
  • Cloud Monitoring
  • Cloud Logging
  • e.t.c…

Backend

  • Go
  • Python

Frontend

  • JavaScript/TypeScript
  • React、Next.js

Tools

  • Terraform
  • CircleCI
  • e.t.c…

3

4 of 17

プレゼンテーションで触れる内容

  1. Cloud について
  2. Cloud Support とは何か
    1. 役割
    2. 働き方
    3. なり方
  3. Cloud Support との関わり方
    • 期待値
    • コミュニケーションの Tips
  4. まとめ

4

5 of 17

Cloud とは

今回話すのはベンダーが HW 等インフラを用意し、ユーザーがその一部を利用するパブリッククラウドプラットフォームについて

5

6 of 17

Cloud 特有の問題

「何もしてないのに壊れた」が起こる

  • 動かない
    • クラウドベンダーが変更を行いバグが入った
    • バージョン変更による仕様変更に対応していない
  • 遅い
    • クラウドベンダーが変更を行い問題が起こる
    • うるさい隣人問題 (Noisy neighbor)

-> Cloud Support に連絡

6

7 of 17

Cloud Support とは

自社のクラウドプラットフォーム上で起きた問題を解決する人

  • 技術的な知識・スキルとコミュニケーション能力が求められる
  • 専門性を持っている
    • Serverless, Data, Computing, Network 等
  • クラウドベンダーごとに名前は異なる
  • 対応が期待できること
    • ○ 変更をしていないのに突然動かなくなった
    • ○ プロダクトを利用するときに期待しない挙動をする
    • △(☓) 使い方を教えて欲しい、これから作るのでベストプラクティスを教えて欲しい

7

注:サポートのあり方は組織や時期によって異なるのでその時点での公式情報の参照を推奨

8 of 17

Cloud Support の立ち位置

User と直接やり取りをしたうえで問題解決に責任がある

  • User とやり取りを行い必要な情報を引き出す
  • トラブルシューティング
    • ログを見る
    • 内部的なメトリクスを見る
    • リリースや実装を追う
    • 作った人とやり取りする
  • User に説明をする

クラウド利用で問題発生

  • サービスダウン
  • 反応が遅い
  • 通知が飛ばない
  • e.t.c.

プロダクトの可用性に責任がある

  • サービスが動いていない、遅いといった場合の問い合わせ先
  • User とはやり取りしない
  • トラブルシューティング
    • ログを見る
    • 内部的なメトリクスを見る
    • 最近のリリース詳細を確認する

プロダクトの機能に責任がある

  • 機能の振る舞いが期待どおりでないでない場合の問い合わせ先
  • User とはやり取りしない
  • トラブルシューティング
    • ログを見る
    • 最近のリリース詳細を確認する
    • ソースコードの深堀り

8

Support Team

Product Team

User

Cloud Support

SWE

SRE

9 of 17

Cloud Support の働き方

ユーザーとの関わり方

  • チケットで文字ベースのやり取り
  • 緊急度によってはチャットやリモート会議を行う

トラブルシューティング

  • 独自のモニタリングツールやログ解析を用いる
  • コードを読んだりリリース履歴を追う

チーム

  • グローバルにチームがあり24時間体制でサポート
  • 複数言語対応

9

10 of 17

Cloud Support として働くために必要なこと

専門領域毎に異なる求められる知識

  • Serverless
    • Web サービスのプラクティス、HTTP, 認証・認可、RDB、NoSQL、Cache、DNS など
  • Data
    • DWH 基盤のプラクティス、Hadoop、Spark、ML、ブロックチェーン、分析手法など
  • Infrastructure
    • サーバ運用のプラクティス、k8s、セキュリティ、DevOps、IAM、Linux、Windows など
  • Network
    • TCP/IP、BGP、AS、ルーティングなど

折れない心

  • 問題解決まで諦めない
  • フラストレーションを溜めるユーザーに共感を示しつつ対応する

10

11 of 17

Cloud におけるトラブルシューティング

○ プログラムや設定の全体像

○ 使われているデータ

○ クラウドコンソール

○ クラウドコンソール上で出力されるユーザーのアプリケーションログ

✕ クラウドプロダクト自体のログ

✕ クラウドプロダクトのソースコード

○ クラウドコンソール

○ クラウドコンソール上で出力されるユーザーのアプリケーションログ

○ クラウドプロダクト自体のログ

○ クラウドプロダクトのソースコード

✕ ユーザーのプログラム

✕ 使われているデータ

ユーザーとサポートで見える情報は違う

クラウドにおけるトラブルシューティングはユーザーとベンダー側の共同作業

11

Support Team

User

12 of 17

Cloud Support とのやり取りのコツ - 共有する情報

サポートケースでは以下の情報を含めるとスムーズに調査が進む

  • 時刻
    • 問題が発生した具体的なタイムスタンプ
    • タイムゾーンを含めるべき
  • プロダクト
    • 問題に関連するプロダクトと機能
  • 場所
    • 問題が発生しているリージョン・ゾーン
  • 識別子
    • プロジェクト / アプリケーション ID と、問題の調査に役立つ具体的な識別子
  • 有用な資料
    • 問題の診断に役立つ詳細情報
    • 今まで試したことや具体的な反応・エラー
  • 問題のタイプ
    • 問題が断続的なものか、一時的なものか、あるいは定型的なものか

参照: Best practices for working with Customer Care | Support Documentation | Google Cloud

12

13 of 17

Cloud Support とのやり取りのコツ - 優先度・緊急度

サポートチケットにおける優先度・緊急度設定の考え方優先度・緊急度

  • P1: 本番環境が落ちている
    • 素早い対応が期待出来る
    • 24/7 の対応となり、チケットは別の対応者に引き継がれる
      • 担当者が変わるのが懸念
      • 自らも張り付くレベルの問題の場合には有用
  • P2: 本番環境でのシステム障害
    • ある程度素早い対応が期待出来る
    • 担当者のビジネス時間の対応となる
      • 担当者が基本的には変わらない
  • P3: 障害はあるがオペレーション可能
  • P4: 開発環境でのトラブル

13

14 of 17

Cloud Support とのやり取りのコツ - コミュニケーション

自身の変更の有無を伝える

  • サポートはベンダー側の問題かユーザーアクションの問題か知りたがる
  • 以前と変えていないのに問題が再現すると説明するとベンダー側の問題の前提でプロダクトチームとも連携しやすい

再現できるコードを提供すると解決が早まる

  • ビジネスロジックを省き、問題が再現する部分だけを提供できると調査分析が素早く進む

14

15 of 17

Cloud Support とのやり取りのコツ - その他

問題の原因を知ろうとしても意味がない

  • ベンダー内部の問題の場合ユーザー側に出来ることはない
  • 「この問題が再発しないためにこちらで出来ることはありますか」という質問なら建設的なやり取りが出来る

サポートに優しく (Don't shoot the messenger!)

  • 自分で作っていないプロダクトの問題に対応するプレッシャーがあるなかで頑張っている
  • 日本人は厳しい!?

15

16 of 17

まとめ

  • クラウドは自身は何もしていないのにサービスが不調になる事がある
  • 不調が見つかったら Cloud Support に連絡する
  • クラウド環境でのトラブルシューティングはユーザーとサポートの共同作業であるということを理解する
    • ユーザーとサポートで見える情報は異なる
    • ユーザーが必要な情報を自ら提供するとサポートは素早い対応が可能
    • サポートは問題解決のパートナー

16

17 of 17

おまけ Belong の勉強会

17