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

コロプラのゲームサーバー運用における SREチームの取り組み/ColoplTech-01-01

COLOPL Inc.
January 27, 2022

コロプラのゲームサーバー運用における SREチームの取り組み/ColoplTech-01-01

※資料内の参照リンクを選択し閲覧する場合は、ダウンロードをお願いいたします

\積極的に技術発信を行なっております/
▽ Twitter/COLOPL_Tech
https://twitter.com/colopl_tech

▽ connpassページ
http://colopl.connpass.com

▽ COLOPL Tech Blog
http://blog.colopl.dev

COLOPL Inc.

January 27, 2022
Tweet

More Decks by COLOPL Inc.

Other Decks in Technology

Transcript

  1. COLOPL, Inc. All Rights Reserved
    コロプラのゲームサーバー運用における

    SREチームの取り組み


    View Slide

  2. COLOPL, Inc. All Rights Reserved
    2
    ● COLOPLのSREチーム

    ● SLI/SLO活動

    ● まとめ

    Table of Contents


    View Slide

  3. COLOPL, Inc. All Rights Reserved
    3
    ● 松野 岳記 (Takeki Matsuno)

    ● 株式会社コロプラ (2018.10-)

    ● サーバー基盤グループMGR 兼 SREチームエンジニア

    ● サーバーサイドの運用・開発をタイトル横断的に活動

    About me


    View Slide

  4. COLOPL, Inc. All Rights Reserved
    4
    COLOPLのSREチーム


    View Slide

  5. COLOPL, Inc. All Rights Reserved
    5
    COLOPL Engineer organization

    Smartphone internet GCP, AWS, etc.
    k8s, etc.
    Server Framework
    Client
    Framework
    Game Server
    Game Client
    インフラ

    サーバー基盤

    クライアント基
    盤

    ゲームプロジェクト

    プラットフォーム

    クライアントサイド
 サーバーサイド


    View Slide

  6. COLOPL, Inc. All Rights Reserved
    6
    SREってなんでしょうかね?

    ● 一般には?

    ➭ Site Reliability Engineering

    ➭ SLI/SLO(*)を定めて信頼性のために活動する

    ● SLO?

    ➭ SLAとの違い

    ➜ SLAは達成できなかった時の保証の話

    ≒ ユーザー様が不満を持った時のもの

    ➜ SLOはサービスがどうあるべきかの基準

    ≒ ユーザー様が満足している状態を表現するもの


    *) Service Level Indicators / Service Level Objectives

    SRE


    View Slide

  7. COLOPL, Inc. All Rights Reserved
    7
    SREってなんでしょうかね?

    ● 具体的には?

    ➭ SREというワードは有名なのに

    SLI/SLOの例は見かけない...

    ➭ SLI/SLOというワードを中心に

    コロプラSREチームの話をしたいと思います


    ● ちなみに

    ➭ 最近Seeking SREの日本語版が出ています

    ➭ みんな割りと色んなことやっている

    SRE


    View Slide

  8. COLOPL, Inc. All Rights Reserved
    8
    コロプラSREの起源

    ● いくつかのタイトルで運用実績が伸びてきた

    ● ユーザー様に継続的に楽しんでもらいたい

    ➭ コンスタントなイベント開発は外せない

    ➭ 性能面はインフラリソース追加で対応するものの

    アプリケーションのチューニングが不足がちに

    ➭ サーバーダウン

    ● このままの運用品質では上を目指せない

    COLOPL SRE


    View Slide

  9. COLOPL, Inc. All Rights Reserved
    9
    ゲームサーバーの運用の困りごと

    ● アクセスの波

    ● ゲームイベント等のロジックの物量

    ● データの物量


    COLOPL SRE


    View Slide

  10. COLOPL, Inc. All Rights Reserved
    10
    アクセスの波 - 日次ユーザー数


    COLOPL SRE

    とある約1ヶ月間

    イベントなどで
    簡単に2倍以上変わる

    View Slide

  11. COLOPL, Inc. All Rights Reserved
    11
    アクセスの波 - 日中アクセス量


    COLOPL SRE

    とある半日

    ログインボーナス、
    アプリ通知などで
    簡単に何倍も変わる

    View Slide

  12. COLOPL, Inc. All Rights Reserved
    12
    ゲームイベント等のロジックの物量

    ● 新しい体験を常に提供したい

    ● イベント再開催


    COLOPL SRE


    View Slide

  13. COLOPL, Inc. All Rights Reserved
    13
    データの物量

    ● イベントデータ

    ● ユーザーデータ


    今回は触れないが

    Spannerのような分散DBに移行した話も今後できるかも

    COLOPL SRE


    View Slide

  14. COLOPL, Inc. All Rights Reserved
    14
    インフラ指標だけでは長期的に品質を維持できる気がしない

    ● ゲームの特性

    ● イベントの特性

    ● 運用の特性

    運用と共にアプリケーションからインフラまで通した品質活動をしたい


    ちょうど世間でSREというワードが流行っていた

    ● これがやりたいイメージに近いのではないか?

    ● アプリケーション寄りから発足

    COLOPL SRE


    View Slide

  15. COLOPL, Inc. All Rights Reserved
    15
    具体的に何をしよう?

    ● 世間的にはインフラスタートのイメージが強い?

    ● Googleの教えを素直に受け止めてみる

    ➭ SREへの正しい道 その1. 

    状況に応じたユーザー重視のSLOを定義する (*)

    ➭ Google CREとも相談

    信頼性とはユーザー様がどう思うか

    SLI/SLOをどうするか自分たちのサービス次第



    *) 参考記事
    COLOPL SRE


    View Slide

  16. COLOPL, Inc. All Rights Reserved
    16
    ユーザー様のゲーム体験を意識したSLI/SLOを考える活動をしよう

    COLOPL SRE


    View Slide

  17. COLOPL, Inc. All Rights Reserved
    17
    SLI/SLO活動


    View Slide

  18. COLOPL, Inc. All Rights Reserved
    18
    Client side
    COLOPL SRE SLI/SLO

    Server side
    Game server/Asset server
    User journey action
    boot
    login
    setup
    screen draw
    Journey 1:
    e.g.) Login
    Journey 2:
    xxx
    login API
    user data API
    asset download
    ここはよく見る

    View Slide

  19. COLOPL, Inc. All Rights Reserved
    19
    Client side
    COLOPL SRE SLI/SLO

    Server side
    Game server/Asset server
    User journey action
    boot
    login
    setup
    screen draw
    Journey 1:
    e.g.) Login
    Journey 2:
    xxx
    login API
    user data API
    asset download
    こっちのかたまりを
    観察できるようにして
    判断基準にしたい
    ここはよく見る

    View Slide

  20. COLOPL, Inc. All Rights Reserved
    20
    活動の流れ

    ● ゲームをやる

    ● ジャーニーをピックアップする

    ● データの収集機構を立てる

    ● 定期的にフィードバックする

    COLOPL SRE SLI/SLO


    View Slide

  21. COLOPL, Inc. All Rights Reserved
    21
    ゲームをやる

    ● やります

    COLOPL SRE SLI/SLO


    View Slide

  22. COLOPL, Inc. All Rights Reserved
    22
    ジャーニーをピックアップする

    ● ゲームのメインループを理解する

    ➭ e.g.) ログイン〜[キャラ編集>クエスト受ける>バトル]xN

    ● メインループ内のジャーニーと指標(SLI)を選び出す

    ➭ e.g.)「バトル開始」の「レイテンシ」, etc.

    ➭ SLO対象は15個くらいを推奨

    ● プランナーさんの考えを聞いてみる

    ● ステークホルダーと合意取る

    ➭ PM、CE、SE

    ➭ SLI/SLOが悪化したら必ずアクション考える

    COLOPL SRE SLI/SLO


    View Slide

  23. COLOPL, Inc. All Rights Reserved
    23
    データの収集機構を立てる

    COLOPL SRE SLI/SLO

    Cloud
    Logging
    Game
    Server
    Cloud
    Pub/Sub
    Cloud
    Dataflow
    BigQuery
    Structured
    Data
    ETL
    SLI
    Aggregate
    SLO
    Summary
    DB
    Summary Data
    ...
    Grafana

    View Slide

  24. COLOPL, Inc. All Rights Reserved
    24
    定期的にフィードバックする

    ● 一旦モニタリング当初のSLIでSLOを決める

    ● 月毎で状況報告

    ➭ SLIの状態や傾向

    ➭ 気になるところはSRE側で

    ゲームソースコードの調査等の深掘りも

    ● 四半期毎でアクションの話し合い

    ➭ 数字で出たものに対してノーアクションはしない

    ➭ アプリケーション対応しないならSLOを変える

    COLOPL SRE SLI/SLO


    View Slide

  25. COLOPL, Inc. All Rights Reserved
    25
    定期的にフィードバックする

    COLOPL SRE SLI/SLO

    xxxxx
    xxxxx
    xxx
    xxx xxx
    xxx xxx
    xxx
    xxx
    xxx

    View Slide

  26. COLOPL, Inc. All Rights Reserved
    26
    定期的にフィードバックする

    COLOPL SRE SLI/SLO

    xxxxx
    xxxxx

    View Slide

  27. COLOPL, Inc. All Rights Reserved
    27
    ジャーニー単位SLI/SLOでやっての感想・良かったこと

    ● リトライ素敵ってことがよく分かった

    ● 良い状態からモニタリング開始しておいた方がいい

    ● 例

    ➭ 一部のジャーニーでリトライが足りていなかったケース

    ➭ 乱高下しつつ徐々に劣化するケース

    COLOPL SRE SLI/SLO


    View Slide

  28. COLOPL, Inc. All Rights Reserved
    28
    一部のジャーニーでAPIリトライが足りていなかったケース

    ● シーンの性質上、他より手厚くリトライが必要なケースが判明

    COLOPL SRE SLI/SLO


    View Slide

  29. COLOPL, Inc. All Rights Reserved
    29
    一部のジャーニーでAPIリトライが足りていなかったケース


    COLOPL SRE SLI/SLO

    リトライの足りていなかった某ジャーニーのAvailability
    その他のジャーニー

    View Slide

  30. COLOPL, Inc. All Rights Reserved
    30
    一部のジャーニーでAPIリトライが足りていなかったケース


    COLOPL SRE SLI/SLO

    リトライ込みエラー数

    View Slide

  31. COLOPL, Inc. All Rights Reserved
    31
    乱高下しつつ徐々に劣化するケース

    ● 先に説明したようにイベントの特性などで変わるものが多い


    COLOPL SRE SLI/SLO


    View Slide

  32. COLOPL, Inc. All Rights Reserved
    32
    乱高下しつつ徐々に劣化するケース


    COLOPL SRE SLI/SLO

    イベント要因
    イベント要因 イベント要因
    !?
    SLO
    某ジャーニーのレイテンシ

    View Slide

  33. COLOPL, Inc. All Rights Reserved
    33
    ジャーニーとか関係なく見れるもの

    ● 全タイトルではジャーニーモニタリングできない

    ● APIのモニタリング

    ➭ シンプルにLatency, Availability, Response size

    ➭ 追加でUU vs Pod num vs リクエスト数

    COLOPL SRE Other


    View Slide

  34. COLOPL, Inc. All Rights Reserved
    34
    UUvsPod

    (コスト効率)


    リクエスト数vsPod

    (処理効率)


    リクエスト数vsUU

    (熱量とゲーム特性)


    COLOPL SRE Other


    View Slide

  35. COLOPL, Inc. All Rights Reserved
    35
    今後

    ● データから合理的に運用判断し続ける事のレベルアップ

    ➭ SLO/エラーバジェットの改善と布教

    ● SLI/SLOをユーザー側へ寄せられないか

    ➭ 指標がユーザーにとってどういう意味を持っているのかを

    高めていきたい

    COLOPL SRE Other


    View Slide

  36. COLOPL, Inc. All Rights Reserved
    36
    まとめ

    ● ユーザー様にとってのサービス信頼性という軸を持って活動をしたい

    ● 変化の激しい中で長期的にゲームサービスの品質を表現して

    維持できるようにしたい

    ● 横断的組織に居るがプロジェクトチームへのフィードバックまできちんと
    やっていきたい


    View Slide

  37. COLOPL, Inc. All Rights Reserved
    37
    ありがとうございました


    View Slide