「監視は役割ではなくスキル」 by 入門監視
Mike Julian「入門監視」 オライリー刊を読んで、カルチャーショックというか、「我が意を得たり!」という思いをしたので、紹介します。
「監視は役割ではなくスキル」
私はソフトウェアエンジニア(Dev)に監視の知識は不要であり、 監視はインフラエンジニア(Ops)にお任せするものだと思っていました。 実際、これまでの職歴では、それで困りませんでした。
しかし、「入門監視」はこれを明確にアンチパターンだとしています。
ソフトウェアエンジニアはアプリケーションについて誰より詳しいので、素晴らしいアプリケーション監視の仕組みをデザインするには最高の場所にいるのです。
考えてみれば当たり前です。Opsはアプリの中身をよく知りません。 Opsが監視を任せられても、通り一辺の監視(CPU使用率など)しかできませんし、異常時にも自分で対応できないんです。
Opsが、
「CPU使用率が増えてるんですけど、大丈夫ですか?」
とDevに尋ねていたら「役割としての監視」に陥っている兆候です。
ユーザー視点での監視
「監視は役割ではなくスキル」を補強するのが、このデザインパターンです。
「監視」というとCPU使用率などの低レベルの指標がまず思い浮かびますが、 低レベルの指標は改善には役立たない、むしろノイズになってしまうことがあります。 です。
データベースサーバのCPU使用率が急上昇しても、ユーザーが影響を受けていないならそれは本当に問題でしょうか。
入門監視 P.30
「入門監視」では逆に「できるだけユーザーに近いところから監視を初める」ことを勧めています。
WEBサービスなら、CPU使用率より
- HTTPレスポンスコード
- レスポンス時間
の方が適切です。レスポンス時間が伸びていれば、少なくともユーザーが何か影響を受けていることはすぐに分かります。
「入門監視」では、さらにユーザーに(ある意味)近い部分の指標として、月次収支収益、顧客の解約数、アクティブユーザー数といった、ビジネスの指標も監視対象として挙げています。
今後は否応なしに、Devにも監視のスキルが必要になる
「そうは言っても、うちには優秀なOpsがいるし」と思う人もいるかもしれません。
しかし、最近はサービスを構築するときはクラウドがデフォルトの選択肢になっています。
クラウドでは物理サーバー構築が不要なので、Opsが他プロジェクトと兼任である、 あるいはOpsが不在のこともあるでしょう。
また、最近はインフラエンジニアが採用難であるそうです(AWSやGCPなどのクラウドベンダーに引き抜かれてしまうので)。 となると、今後増々、
という体制が増えていくことでしょう。
そうなったら、監視を構築するのはDevのあなたです。
「入門監視」は全エンジニア必読
「入門監視」は228ページと、オライリーとしては薄めです。
監視とは何か、何をどんな監視するべきかという、プリンシプル・技術以前のところから説明しており、ツールの流行り廃りに囚われない本質的な知識を教えてくれる本です。具
定価3,080円と、大変お求め安い価格なので、ぜひ買って読んでください。