ミツモア Tech blog

「ミツモア」を運営する株式会社ミツモアの技術ブログです

ミツモアのインシデントフローを整備した話

※こちらはミツモアAdvent Calendar 2023の22日目の記事です。

こんにちはミツモアエンジニアの hana です。

今回は ミツモアのインシデントが発生した際のフローを整備した話をしようと思います。


😕インシデントフロー整備までの問題点

インシデント発見時の報告のルールが守られていなかった

毎回異なるSlackチャンネルで報告されたり、口頭で報告されることにより、一部の人のみがインシデントが発生していることを知っているという状態になっていました。

そのため、まずインシデントに関係する人を招集するのに時間がかかる場合がありました。

また、インシデントの分類がなかったので誰が緊急対応するかはインシデントが発生してから決まっていました。

過去のインシデントの情報が散らばっていて後で確認しづらかった

過去に発生したインシデントが一箇所にまとまっておらず、過去にどのようなインシデントが発生したのか確認したいときや新メンバーに共有したいときに確認しづらい状況にありました。

💡実際に行ったこと

社内で起こりうるインシデント全てに対応できるインシデント報告フォームを作成

サービス障害のインシデントはもちろん、紛失物の報告なども一つのフォームから報告できるようにしました。

こうすることでインシデントを発見した時に誰にどこで報告したらいいんだろうと悩む時間をなくして、初期報告までの時間を短縮することができるようになったと思います。

このフォームでインシデントの種類を選択し、いくつかの質問にyes/noで回答することによってインシデントレベルがレベル1~5で決定します。

インシデント報告フォーム

インシデント報告フォームが送信されてからすべきことを自動化した

自動化はZapierを使って行いました。フォームが投稿されたのをトリガーにしてその後の処理が実行されます。

zapier.com

ZapierではJavaScriptの実行もできるのでインシデントの種類などのフォームの入力内容を元にその後のフローを切り分けました。

// インシデントレベルを決定する
const getLevel = () => {
  for (const level of [5, 4, 3, 2]) {
    if (inputData.type.includes('紛失')) {
      return 2
    }
    if (inputData[inputData.product + level] == 'Yes') {
      return level
    }
    if (inputData[type + level] == 'Yes') {
      return level
    }
  }
  return 1
}

例えば、サービス障害だとインシデントレベルに合わせて以下のフローが自動化されています。

インシデントの種類やレベルに応じてSlackチャンネルを作成したり、インシデント対策リーダーに電話をしたり異なる対応をするように設定しました。

サービス障害発生時のフロー

インシデントチャンネルに投稿されるメッセージは以下のような内容です。

書いてある内容は全てインシデント報告フォームから取得しています。

設定した人にメンションが飛び、関係者がすぐに事故対応のチャンネルに集まって対応を始めることができます。

🔥インシデント発生後の取り組み

インシデントレポートを作成

インシデントの詳細、発生原因、応急対応策、再発防止策などをレポートにまとめ、週1回のミーティングでチーム内で共有しています。

インシデントは複数人の目を通り抜けて起きてしまうので、誰でも起こす可能性があります。その可能性を一つでも潰すためにはより多くの人が過去に起きたインシデントについて把握しておくことが大切だと考えます。

Jiraで対応状況を管理

再発防止策を話し合った結果今後対応が必要なことがある時はJiraで管理をし実施せずに終わることがないように徹底しています。そうすることで、抜け漏れなく再発防止まで対応することができています。

Jiraのステータスの変更が一定期間ないものにはリマインダーで通知する

各ステータスで一定期間何も動きがないようだったら以下のようなリマインダーを送信しています。日々の業務に追われて後回しになってしまっていたインシデント発生後の対応もこれで忘れずに対応することができます。

✍️まとめ

以上インシデントフローを整備した話についてでした。

もうすぐ運用を始めて一年になりますが、インシデントを発見したらインシデントフォームを送信するという流れは浸透し、以前より初期対応までの時間は短縮されたと思います。

まだまだ改善点はあると思うので、定期的にフローの見直しを行いより使いやすいものにしたいと思います。


そんなミツモアでは様々な職種のエンジニアを積極的に採用しています。ぜひチェックしてみてください!!

採用ページ: https://meetsmore.com/company/recruit 募集要項: https://herp.careers/v1/meetsmore/3cQ_H41s6tZu