「GameDay 開発記」シナリオ&スコアリング設計編
クラウドネイティブ会議 実行委員の @kikulabo です。
前回のブログ(GameDay 開催告知)で GameDay の開催をお伝えしましたが、今回は「GameDay ができるまで」の裏側を少しだけお見せしたいと思います。
プロローグ — 「こんな企画やりたい」の一言から
クラウドネイティブ会議は、CloudNative Days・Platform Engineering Kaigi・SRE Kaigi という3つのコミュニティが合体したスペシャルなイベントです。せっかく3つの力が集まるなら、これまでの延長線上ではなく、まだチャレンジしたことのない新しいことをやってみたい。そんな想いがありました。
カンファレンスで「手を動かす」体験といえばハンズオンがありますが、もう一歩踏み込んで、チームで障害に立ち向かう緊張感と達成感を味わえる場を作れないか?そこで浮かんだのが「GameDay」でした。
私の知る限りではカンファレンス内で1から GameDay を自作して開催している事例はあまり多くなさそうです。だからこそ、挑戦する意義は大きいはずと思い企画が本格的に動き出しました。
シナリオ設計 — 何を壊すか
今回の GameDay の舞台は Kubernetes です。参加者が実際に Kubernetes 環境で障害に向き合い、チームで解決していく。そのためのシナリオを設計しています。
シナリオで大事にしているのは、できるだけ「実際の現場で遭遇しそうなリアルな障害」であること。机上の空論ではなく、明日の仕事に活きるような問題にしたいと思っています。
一番悩んでいるのが難易度設計です。なんせ初めての開催なので、参加者のレベル感が読めません。そこで、問題をいくつかのグループに分ける設計を予定しています。時間内にどのチームも完答できそうな問題、少し余裕があるチームなら解けそうな問題、そしてとっっっても難しい問題(!?)を数問用意し、幅広いレベルの方に楽しんでもらえるようにしたいと考えています。
面白かったのは AI の扱いに関する議論です。SRE Kaigi の懇親会で「AI を使うとサクッと問題解けちゃうかもしれないね」という話題が出ていました。ただ、今回の GameDay は厳密な競技性を求めているわけではなく、学びが主目的です。AI の利用についてはあまり神経質にならなくてもよさそう、というのがチームの結論です。
スコアリング — どう競うか
私がこれまで参加した GameDay では、大きく2つのスコアリング方式がありました。ひとつは、運営が用意したサーバーから常に負荷がかかり、正常に捌けたリクエスト数に応じてスコアを獲得する方式。もうひとつは、障害ごとにクエストが用意されていて、クリアするたびに得点を獲得する方式です。
現段階の予定では「クエスト形式」を採用する方向です。リクエスト数ベースのスコアリングだと、レスポンスを偽造されたケースなどへの考慮が必要になり、仕組みが複雑になりそうでした。初開催ということもあり、シンプルで分かりやすいクエスト形式からスタートしようと考えています。
今回の GameDay で大事にしていること
チームで何度も話し合ってきた中で、いくつか大事にしたいポイントが固まってきました。
まず、当日できるだけ皆がつまずかずに Kubernetes を操作できる環境を用意したいということ。ブラウザから直接ターミナルを叩けるWebアプリを使うのが良さそうという話になりました。環境構築で時間を取られて肝心の障害対応に集中できない、なんてことは避けたいですからね。
次に、チーム内でコミュニケーションやディスカッションが自然に生まれる形にしたいということ。一人で黙々と解くのではなく、「ここ怪しくない?」「あ、それ試してみて!」というやりとりが飛び交う。そんな体験を提供したいと思っています。
そして、現場にも活きるような学びのある問題を出題したいということ。GameDay が終わった後に「あの時の経験が役に立った!」と思ってもらえるようにしたいです。
これらを満たした上で、競技性もある程度は担保したい。学びと競争のバランスは難しいですが、チーム一丸となって試行錯誤しています。
エピローグ — 5月14日、名古屋で会いましょう
現在、GameDay はプロトタイプ版の作成を進めてます!これからシナリオを実際の環境にのせて、検証とブラッシュアップを重ねていきます。
募集ページも近日公開予定です。
「競い合いながら学び、遊びながら強くなる」
GameDay チーム一同、5月14日に名古屋で皆さんをお迎えする準備を着々と進めています。
続報をお楽しみに!
クラウドネイティブ会議では引き続き参加登録を受付中です!