社内の障害状況を可視化する!サーバレスな障害情報ダッシュボード「MMSSD」とは?

こんにちは、GlobalIT本部 星と申します。
現在私は、Macromill System Status Dashboard (MMSSD)というシステムの開発・保守に携わっています。
MMSSDは、マクロミルではめずらしいサーバレスなシステムとなっています。
今回はMMSSDの概要と、実際に処理を行う際の流れや、実際に使用しているサービスなどを紹介します。

サーバレスなシステムに興味がある方の参考になれば幸いです。

MMSSDとは?

MMSSDは、社内の障害状況を迅速に関係者に連絡するとともに、誰でも確認できるように可視化するシステムです!

何のためにMMSSDができたのか

マクロミルが提供する主要サービスは、マクロミルが構築した様々なシステムが支えており、これらは基本的に社内で運用しています。

多くのお客様にご利用いただいているため、膨大なデータ処理が常に行われており、円滑なサービスを提供するためには、安定したシステム運用が必須条件です。

それでも、万が一システムに障害が起こってしまった場合には、多くのお客様への影響があるため、関係者に迅速に状況を伝える必要があります。

MMSSDができる前も、障害情報登録のルールは制定されていましたが、関係者へのメールでの通知や、対応状況を記載するチケットの作成を別々に実施する必要があるなど、手間がかかる状態でした。

そのような要因もあり、ITチーム内でも対応状況がばらけてしまい、障害発生状況のトラッキングもしづらい状態となっていました。

そういった課題解消のためMMSSDは開発されました。

MMSSDの画面

MMSSDには、主に「管理画面」と「ダッシュボード」の2つの画面があります。

  • 管理画面
    • 障害情報の登録や、過去の障害情報の検索をすることが可能です。
    • 障害情報を登録すると、関係者へのメールでの通知、Redmineのチケット作成を同時に行うことができます。
管理画面のイメージ

  • ダッシュボード
    • 登録された障害情報が表示されます。背景色によって、現在の状態が一目で分かるようになっています。
    • カードをクリックすると、障害の詳細情報が確認できます。
ダッシュボード画面のイメージ
ダッシュボード詳細画面のイメージ

MMSSDの構成

MMSSDの一番の特徴はサーバレスなシステムであるということです。
フロントエンドはNuxt.jsAmazon S3を利用しています。
Nuxt.jsで生成された静的ファイルをS3でホスティングしており、MMSSDにアクセスがあると配信されるようになっています。

また、バックエンドの処理は主にAWS Lambdaで行われています。
一例として、MMSSDで新規障害情報の登録が行われた際の処理の流れをご紹介します。

【処理の流れ】

  1. MMSSDに障害情報が登録される
  2. Amazon API Gatewayに配置された障害情報作成APIが呼び出される
  3. Lambda関数が実行され、データベースへの登録とAmazon SQSへメッセージの送信を行う
  4. 後続処理のLambda関数が実行される
システム構成図

1.MMSSDに障害情報が登録される

障害情報登録画面で入力された情報は、Vue.jsのv-modelディレクティブで管理されています。障害情報が登録・承認されると、これをJSON形式にまとめ、APIにリクエストを送信します。

2.Amazon API Gatewayに配置された障害情報作成APIが呼び出される

送信されたリクエストはまず、Amazon CloudFrontにより振り分けられます。
フロントエンド宛てのものはS3、バックエンド宛てのものはAPI Gatewayに送られます。
API GatewayでAPIへのリクエストを受信すると、それをトリガーとしてLambda関数が実行されます。

CloudFrontイメージ
APIGatewayのイメージ

3.Lambda関数が実行され、データベースへの登録とAmazon SQSへメッセージの送信を行う

Lambda関数内では、障害情報をデータベースに登録します。
また、メール送信先の設定などをおこなったのち、各種SQSキューへメッセージを送信します。

Lambdaイメージ

4.後続処理のLambda関数が実行される

SQSへのメッセージ送信をトリガーとして、Lambda関数により、ダッシュボード用障害情報ファイル更新・メール送信・Redmineへのチケット作成の後続処理が行われます。

【例:メール送信機能】

SQSイメージ
メール送信関数イメージ

MMSSD導入後に変わったこと

MMSSD導入後は、障害情報の登録が1ヵ所で済むようになったため、手間が大幅に削減されました。
また、MMSSD内に溜まった情報を集計して部内に共有する取り組みも始まっています。
部内全体の障害件数の推移や根本原因の分析率などが可視化され、部内のメンバーがそれぞれの担当領域を超えて、部内の障害対応状況を確認できるようになりました!

導入後1年ほどが経過し、出力内容についてさらに分析しやすいものにしたいと要望が挙がるなど、社内にMMSSDが浸透したことで、さまざまな改善点も見えてきました。

これからは、さらにMMSSDを使いやすく改善することにより、障害情報の可視化や分析を継続する手助けをしていきたいと思います。