NTTドコモR&Dの技術ブログです。

ドコモ内部の複雑なシステムの状態を可視化してみた話

■はじめに
NTTドコモ サービスデザイン部の藤井です。CiRCUSというシステムで提供している dアカウントの認証機能を担当しています。 本記事では複雑なCiRCUSシステムの可視化に関する取り組みを紹介します。

■CiRCUS とは
CiRCUSとはdアカウント認証機能、メール機能などドコモに関する多岐にわたる機能を提供しているサーバです。

■CiRCUSを取り巻く現状
CiRCUSについて今までは機能を開発する担当と機能の監視などを行う運用担当で業務が完全に分割されていました。 ただ現在ドコモ全体として現在DevOpsの推進を進めており、開発担当が運用担当の業務を、運用担当が開発担当の業務を実施することが求められています。 そこで開発担当として、今まで実施経験のないシステムの状態を監視する業務を求められるようになりました。 ですが今までこういった業務の実施経験がなく、また監視業務は運用担当の仕事という文化が根付いている状況がありました。 そのため誰でも簡単にCiRCUSの各システムが状態が分かるようにすることと、開発担当内での運用意識の向上を目的として、 各システムの状態が一目でわかるダッシュボードをdatadogにて作成し、社内に提示する施策を実施しました。

■作成したモニタ
CiRCUS内のメール機能や認証機能などの各種機能についてエラー数とリクエスト数より正常に動いている割合を出して、その数字でシステム正常に動いているかを表現しています。 通常時は緑で表示されていますが、こちらのパーセンテージが一定の閾値を下回ると赤になることにより、システムが正常に動いているかとエラーが多発していないかが一目でわかるように可視化しています。

正常時(左)と異常発生時(右)のモニタイメージ(実際に運用しているモニタとは若干異なります)

具体的にはdatadogを利用して作成をしました。 手順としてはまずdatadogのダッシュボード作成画面にてQuery Valueを選択すると数値を表示できるので、取得したい項目や計算式を設定します。

ダッシュボードでの数値の出し方

次にVisual Formatting Ruleを選択し、閾値とその閾値に対応する色を選択することで、値に応じて色を変更できるためこちらの方法でダッシュボードは作成していきました。

閾値による色の変更

■想定していた効果
本モニタを作成し、運用することにより想定していた効果としては開発担当内の運用意識向上と障害検知スピードの向上を見込んでおりました。 まず開発担当内の運用意識の向上としてはこちらのモニタを運用することにより、開発担当内でシステムが動いているかどうかを確認する文化を作ることが出来、 今では開発担当自ら、様々なイベント時に監視体制を作ることが出来ています。 また障害検知スピードの向上という点において本もモニタを活用し、障害発生時に速やかに障害の発生に気づくことができ、復旧に向けて動き出すことが出来ました。

■想定外の効果
また本モニタを通じて想定していなかった効果も表れました。 それは複雑なシステムの可視化という点です。 CiRCUSは様々な機能が複雑に絡み合って機能を提供しています。 またCiRCUS以外にもドコモでは様々な機能を提供しており、他サービスもCiRCUSと密接にかかわっていることもあり、障害発生時にどの機能が起因になっているのかが分かりにくい課題がありました。 ですがこちらの施策でCiRCUSの各機能が動いているかが一目でわかるようなモニタを作成したことで、障害発生時の障害起因やCiRCUS被疑による障害か否かどうかをすぐに判別することが出来るようになりました。

■さいごに
この記事ではCiRCUS担当のDevOps推進の施策である、システムの可視化モニタの作成を紹介しました。 一連の施策を通じてCiRCUS担当内でのDevOpsを推進できたと考えております。 今後もドコモ内でのDevOpsの推進を進めていき、よりよい開発体制を作り上げていきたいと考えています。 記事を読んでいただきましてありがとうございました。