[yuuk1 on Twitter: "ChatGPTでインシデント対応(障害対応)のシナリオ創作を試してみた。サービスの簡単な性質だけを指示して、システム構成を提案してもらって、そのシステムのインシデントのシナリオを作ってもらい、さらに対応中のチャットログも再現してもらった。 https://t.co/Mouxrr65yJ https://t.co/7v2BumszbC" / Twitter](https://twitter.com/yuuk1t/status/1637005046121664512)
あなたはマイクロサービスアプリケーションSock ShopのSREです。
Sock Shopはcarts,catalogue,front-end,orders,user,payment,shippingの7個のマイクロサービスにより構成されています。
以下は、Sock Shopのネットワーク通信の依存関係をmarmaid記法で表現したものです。
flowchart LR
front[front-end]
front --> orders[orders]
subgraph Orders
orders --> ordersdb[orders-db]
end
front --> carts[carts]
subgraph Carts
carts --> cartsdb[carts-db]
end
front --> user[user]
subgraph User
user[user] --> userdb[user-db]
end
front --> cata[catalogue]
subgraph Catalogue
cata --> catadb[catalogue-db]
end
orders --> carts
orders --> user
orders --> pay[payment]
orders --> ship[shipping]
---
SRE(Site Reliability Engineering)のエキスパートになりきってください。
あなたは、Twitterのような架空の短文メッセージ投稿サービスを開発・運用するエンジニアです。このサービスには、メッセージの投稿、ユーザー同士のフォロー、フォローしたユーザーのメッセージタイムラインの閲覧、といった機能が含まれています。
1. このサービスに名前をつけてください。
2. 以下の要件を満たす、架空のWebアプリケーションの具体的なシステム構成をなるべく詳細に思い浮かべてください。システム内の各ロールに名前をつけた上で、システム構成を説明してください。
- PostgreSQL、Redis Cluster、Elasticsearch、Go言語によるWebサーバを最低限含むものとします。
- アプリケーションはKubernetes上で動作しているものとします。
- 秒間1000個以上のメッセージが投稿され、メッセージのタイムラインの読み込み数は投稿数の10倍の規模感とします。
さらに、その架空のシステムにおいて、現実に発生しそうなシステム障害に対するインシデント対応のシナリオとその調査と対策過程をなるべく詳細に創作してください。
- 日付と時刻、それ以外に必要な数値も含めるものとします。
- あなたが調査時に注目したシステムログの文字列とメトリクス名、メトリクス名の変動を、あなたが注目した理由も含めるものとします。
- 対策のために使用したコマンドの文字列を含めるものとします。
- ログとコマンドの文字列、メトリクス名には、このシステム固有の名詞を含めることにより、実際に存在しそうな対応過程に近づけるものとします。
- 対応過程の各ステップにおける時刻、それ以外に必要な数値も具体的に含めるものとします。
- 対応開始からインシデントの収束までには30分要したものとします。
このインシデントに3人のエンジニアで対応していると仮定して、3人のエンジニアによる対応中のSlackのチャットログ(エンジニアの名前と時刻を含む)を以下の条件に沿って再現してください。登場人物にそれぞれ小文字のアルファベットと数字を含む架空のハンドルネームをつけてください。
- 1人はシニアエンジニア、2人はジュニアエンジニアです。
- チャットにはアラートbotによるアラートメッセージも含むものとします。アラートは状況の悪化と回復を示すものとします。アラートメッセージのみ英語で、それ以外は日本語です。
- 一人のプロダクトマネージャーからの質問や、一人のカスタマーサポートからの対応状況の問い合わせに対応する様子も含めてください。
- エンジニア同士はジョークや悪態を交えて、くだけた様子で話すものとします。
- このインシデント対応では、途中過程で誤った調査や対策を行いました。