(MMSSD)というシステムの開発・保守に携わっています。MMSSDは、マクロミルではめずらしいサーバレスなシステムとなっています。今回はMMSSDの概要と、実際に処理を行う際の流れや、実際に使用しているサービスなどを紹介します。サーバレスなシステムに興味がある方の参考になれば幸いです。MMSSD導入後に変わったことMMSSDとは?MMSSDは、社内の障害状況を迅速に関係者に連絡するとともに、誰でも確認できるように可視化するシステムです!何のためにMMSSDができたのかマクロミルが提供する主要サービスは、マクロミルが構築した様々なシステムが支えており、これらは基本的に社内で運用しています。多くのお客様にご利用いただいているため、膨大なデータ処理が常に行われており、円滑なサービスを提供するためには、安定したシステム運用が必須条件です。それでも、万が一システムに障害が起こってしまった場合には、多くのお客様への影響があるため、関係者に迅速に状況を伝える必要があります。MMSSDができる前も、障害情報登録のルールは制定されていましたが、関係者へのメールでの通知や、対応状況を記載するチケットの作成を別々に実施する必要があるなど、手間がかかる状態でした。そのような要因もあり、ITチーム内でも対応状況がばらけてしまい、障害発生状況のトラッキングもしづらい状態となっていました。いった課題解消のためMMSSDは開発されました。登録や、過去の障害情報の検索をすることが可能です。障害情報を登録すると、関係者へのメールでの通知、Redmineのチケット作成を同時に行うことができます。ダッシュボード登録された障害情報が表示されます。背景色によって、現在の状態が一目で分かるようになっています。カードをクリックすると、障害の詳細情報が確認できます。MMSSDの構成MMSSDの一番の特徴はサーバレスなシステムであるということです。S3を利用しています。Nuxt.jsで生成された静的ファイルをS3でホスティングしており、MMSSDにアクセスがあると配信されるようになっています。Lambdaで行われています。一例として、MMSSDで新規障害情報の登録が行われた際の処理の流れをご紹介します。SQSへメッセージの送信を行う後続処理のLambda関数が実行される1.MMSSDに障害情報が登録される障害情報登録画面で入力された情報は、Vue.jsのv-modelディレクティブで管理されています。障害情報が登録・承認されると、これをJSON形式にまとめ、APIにリクエストを送信します。CloudFrontにより振り分けられます。Gatewayに送られます。GatewayでAPIへのリクエストを受信すると、それをトリガーとしてLambda関数が実行されます。SQSへメッセージの送信を行うLambda関数内では、障害情報をデータベースに登録します。メール送信先の設定などをおこなったのち、各種SQSキューへメッセージを送信します。4.後続処理のLambda関数が実行されるSQSへのメッセージ送信をトリガーとして、Lambda関数により、ダッシュボード用障害情報ファイル更新・メール送信・Redmineへのチケット作成の後続処理が行われます。【例:メール送信機能】MMSSD導入後に変わったことMMSSD導入後は、障害情報の登録が1ヵ所で済むようになったため、手間が大幅に削減されました。MMSSD内に溜まった情報を集計して部内に共有する取り組みも始まっています。部内全体の障害件数の推移や根本原因の分析率などが可視化され、部内のメンバーがそれぞれの担当領域を超えて、部内の障害対応状況を確認できるようになりました!導入後1年ほどが経過し、出力内容についてさらに分析しやすいものにしたいと要望が挙がるなど、社内にMMSSDが浸透したことで、さまざまな改善点も見えてきました。これからは、さらにMMSSDを使いやすく改善することにより、障害情報の可視化や分析を継続する手助けをしていきたいと思います。Hoshi2019年アルバイトから社員登用される形でマクロミルに入社。QA業務をメインに日々体当たりで業務に取り組み中。趣味は「知らない道を歩くこと」。Inc.ホームシェアTOPへ。