じゃあ、おうちで学べる

本能を呼び覚ますこのコードに、君は抗えるか

ChatGPTで障害対応 RPG v0.0.1を遊ぶには?

こちらを参考にしました。

note.com

目次

ゲームプロンプト

大きな声では言えないですけど皆さん実は障害のこと好きですよね?

https://www.irasutoya.com/2016/08/it.html より引用

というわけで以下をChatGPTに貼れば、今日から無料で障害対応ができます(あるいはおそらく本番の障害対応は有料なことが多いので)。ちなみにGPT-4を利用しております。

あなたはシステム障害体験のゲームマスター専用チャットボットです。
チャットを通じて、ユーザーに楽しい本格システム障害RPG体験を提供します。

制約条件
* チャットボットはゲームマスター(以下GM)です。
* 人間のユーザーは、プレイヤーをロールプレイします。
* GMは、ゲーム内に登場するNPCのロールプレイも担当します。
* 各NPCはそれぞれの利害や目的を持ち、ユーザーに協力的とは限りません。
* GMは、ユーザーの行動に難易度を示し、アクションを実行する場合には、2D6ダイスロールによる目標判定を行なってください。
* GMは、ユーザーが楽しめるよう、適度な難関を提供してください(不条理なものは禁止です)。
* GMは、ユーザーが無理な展開を要求した場合、その行為を拒否したり、失敗させることができます。
* GMは内部パラメーターとして「盛り上がり度」を持ちます。GMはゲーム展開が退屈だと判断した場合、盛り上がる展開を起こしてください。
* ゲームのスタート地点は、「障害発生」です。
* ゲームの障害内容は「自動設定」です。
* 担当しているシステムは指定がなければOSはLinux ベースで動作させてください。
* 担当しているシステムにデーターベースを利用してください。
* ユーザー名は指定がなければuser01で動作させてください。
* GMはスタート地点の前に担当するシステムの詳細をプレイヤーに共有して下さい。
* ゲームのゴールはシステムの障害は原因解決と復旧です。
* GMはシステムでコマンドを実行した場合には必ず実行した実行したコマンドと結果を記載してください。
* GMは何かを確認及び判断した際には可能な限り詳細に記載して下さい。
* GMはスタート後の最初のアクションを監視ダッシュボードの確認を推奨して下さい。
* 障害により、システムが復旧不可能になったら、ゲームオーバーです。

まずはじめに、ユーザーと一緒に担当システムの設定を行いましょう。
ユーザー名、サービス名、システムの特徴、利用しているソフトウェア、利用しているプログラミング言語、利用しているクラウドプロバイダーと利用しているサービス をユーザーに聞いてください。

プレイヤーモチベーション

ソフトウェア開発・運用のエンジニアにとって、システム障害への対応は避けて通れない課題の一つです。たとえテストや監視を強化し、単一障害点を排除し、自動復旧機能を実装しても、予期しない障害は突如発生します。

多くの場合、想定外の障害に対処するのは困難です。一般的には経験豊富なエンジニアが対応します。このような状況が続くと、次のような問題が発生することがあります。

  • 経験豊富なエンジニアへの負担が集中する
  • 特定のエンジニアが不在の場合、対処が難しくなる
  • これらの問題が原因で、復旧が遅れたり、サービスの信頼性が損なわれる可能性がある

想定外の障害に対処することは避けられませんが、上記の問題には対策が可能です。

負担の偏りを軽減し、特定のエンジニアが不在でもチーム全体で安定的に対応できる体制を構築するために、今回はゲームを活用したいと考えています。このゲームを通じて、チームメンバーがシステム障害に対するスキルを向上させ、効果的な対応ができるようになることを目指します。

障害対応を学ぶのにRPG? と思ったあなたへ、SREの探求の20章「アクティブなティーチングとラーニング」では、インシデント管理を効果的に学ぶ方法として、ゲームを通じたアクティブラーニングが紹介されています。"Wheel of Misfortune"というゲームを例に、現実のインシデントに基づくシナリオを用意し、参加者がリスク管理や問題解決スキルを身につけられる環境を提供することで、プレッシャーを軽減しながら学びの効果を高め、フィードバックや経験の共有を通じて実践的なスキルも向上させることができると説明されています。つまり、インシデント対応の能力はゲームで身につきます。 (確信)。

ゲーム紹介

GPT-4 にゲームの紹介文を作ってもらいました。本当は室見立華さんモードとか作りたかったです。

タイトル:システム障害体験RPG - テクニカルトラブルを楽しみながら解決しよう!

  • システム障害体験RPGは、あなたがシステムエンジニアとなり、様々なシステム障害に対処しながらサービスを復旧させる目的で遊べるオンラインチャットボットゲームです。このゲームでは、現実のシステム管理や開発の知識が役立ちますが、初心者でも楽しむことができます。
  • ゲームの開始時には、プレイヤー名、サービス名、サービスの特徴、プログラミング言語を設定し、独自のシナリオを作成します。そして、ゲームマスタ(GM)チャットボットが、シナリオに基づいたシステム障害を発生させ、プレイヤーは問題解決のためのアクションを実行していきます。
  • プレイヤーは、コマンドを入力したり、問題解決に関する質問をしたりすることで、ゲームを進行させます。GMは、プレイヤーが取るべきアクションに適切なフィードバックを提供し、必要に応じて2D6ダイスロールによる目標判定を行います。
  • システム障害体験RPGは、プレイヤーが楽しめるよう、適度な難関を提供しますが、不条理な展開は避けられます。また、ゲーム展開が退屈だと判断された場合、GMは盛り上がる展開を起こしてゲームをさらに面白くします。
  • システム障害体験RPGをプレイすることで、システム管理や開発の知識を身につけるだけでなく、チームワークや問題解決のスキルも向上させることができます。ぜひ、友人や同僚と一緒に、このユニークで楽しいゲームを体験してください!

それではテストプレイをしていきます。

架空のシステムを作る

システムのメイキング機能。自分でも作れるし、自動にも作ってくれます。よく障害が発生する箇所や癖のある開発者の存在を入力すると色々と面白い展開があるかもしれません。

今回は「サービス名『どこにでもある掲示板』でGo言語を利用した一般的な掲示板です。それ以外はそちらで作成して下さい。」と入力しました

障害発生

障害が発生しました。システムの復旧のために次々とアクションを取る必要があります。

障害対応は進むよ どこまでも

どんどん、アクションを繰り返して原因を探していきます。

分からない時は素直に同僚に頼る

分からない時は素直にエスカレーションしましょう。現実でも同じです。

最後は力技で対応完了

PMが判断してくれ... と思いつつも実装にも特に問題なく単純にサービスが人気が出てアクセスができないなら素直にスケールアップしてしまう判断です。

無能っぷりを存分に晒していきましたが無事にゲーム終了しました。システムの平和はこれで守られました。

最後に

ゲームのスクリプトを編集して恒久対応まで設定するモードや実装を実際に変更をするモードなど様々なモードで遊ぶことが皆様ならできると思います(いろんなゲームで遊びたい)。 GPT-3.5 だとスピード感はあるがシステム設定や障害のシナリオを詳細には出ないのであまりゲームとして楽しくない。 オススメの設定などがあればSystemFailureRPG というリポジトリを作成したのでPRをお待ちしております(迫真)。

github.com

システム障害は起きないにこしたことはありませんが、発生をゼロにすることはできません。障害が起こった時の為にあなたは何ができますか? ゲームでそれを体験してみませんか?もしくはSREのプロフェッショナルパートナーを雇いませんか?