『Webエンジニアのための監視システム実装ガイド』について

katzchang氏(以下、katzchang):では、3つ目のコンテンツにいきます。……ばばさん!

ばばとしあき氏(以下、ばば):はい、ばばです。

katzchang:実は3つ目のコンテンツをどうしようかなと悩んでいたところ、こういう本をばばさんが来週発売されるということで、ぜひちょうどお話を伺いたいなと思って声を掛けさせていただきました。……何の話からすればいいんだろう。

ばば:つらつら見ます?

katzchang:つらつら見ますか。頂いているのがこの本ですね。発売おめでとうございます。

ばば:やった!

(一同拍手)

katzchang:ここで簡単に少しだけどんな内容かをご紹介していただいても大丈夫ですか?

ばば:はい。スライドを作ってきたので紹介をします。『Webエンジニアのための監視システム実装ガイド』という名前です。いわゆる監視テクノロジーですね。最近は、そもそも定義があってないような感じになってきているんですけど、その辺の全般的な話を基礎から体系的に取り扱うぞという気持ちで作ったやつですね。

Webエンジニアのための監視システム実装ガイド (Compass Booksシリーズ)

表紙はウミガメです。いろいろいくつか案があったんですけど、ウミガメって海の守り神みたいなイメージがあるので、亀が良かろうと。あとは他には幸運のフクロウとか、監視なので猛禽類の上から見る感じとか、いろいろ案があったんですけど、猛禽類は今はメルペイにいる斎藤さんという人が書いた本の表紙なんですよ。

(斎藤氏が)書いていた当時、私は同僚だったんですけど、被るのは良くなかろうと(笑)。ということで、ウミガメになりました。

katzchang:動物被りはこの業界は難しいですよね。

ばば:本当に難しいですね。

katzchang:これでさっき少し気になったのが、「Webエンジニアのための」とわざわざ言っているところなんですけど。

ばば:そうなんです。あとで出てきますけど、私は昔「Webエンジニアのためのインフラ」みたいな本も出しているんですよ。

ものすごくぶっちゃけて言うと、インフラエンジニアよりターゲットが広いし、中にも書いているんですけど、監視とかモニタリングはインフラのエンジニアのものでもないし、もっと言うとエンジニアのものでもないので、できるだけ広く取りつつちゃんとリーチするのはどれかというところで、今は「Webエンジニアのための」という名前になっています。

katzchang:なるほど。スライドの中身に行きますか。

本を執筆することになった経緯

ばば:きっかけは『入門監視』という本で、今日見ていただいている方だとわりと読んだことがある人も多いと思うんですけど、これが売れたそうでして……。

(一同笑)

ばば:業界の方が「監視は売れるぞ」と、気付いたわけですね。「売れるぞ」というか、これから盛り上がってくるということに気が付いたというのがきっかけですね。

一応私は監視の専門家として10何年やってきているので、この本に自分が関われなかったのが悔しかったというのもあったりして、これが出たことによって私の中で書く気持ちはかなり高くなっていったところに声が掛かったという感じですね。

katzchang:『入門監視』もすごい本だけど、本当に入門書ですね。この業界、「入門」と言いながらいろいろ高度な話題を扱う本がたまにあるんですけど、これは本当に入門書でサラッと読める。

ばば:そうですね。あと『入門監視』はわりと共感することが多いんですよね。基礎理論みたいな感じではなくて、共感することが多いのは『入門監視』で、私はどちらかと言うと基礎理論をちゃんとやりたいなということで書いています。

katzchang:なるほど。

ばば:これが経緯ですね。それで昔、私は「小鹿本」と呼んでいるんですけど、『Webエンジニアが知っておきたいインフラの基本』というのを出しました。

この本の編集者さんが伊佐さんという方なんですけど、ものすごく良い編集さんで、本当に原稿段階から一緒に読んでくれてすごく良い本ができたんですね。すごく良い本というのは、私の満足度もそうだし売り上げもそうだし、ということです。そこの編集さんに「同僚がちょっと監視の本をやりたいんだけど」と相談をいただいたのが2019年の2月です。『入門監視』が1月なので、わりとすぐに動いた感じですね。

企画書をいただいて「じゃあ、やりましょう」ということで、目次を作ったのが3月末ぐらいですかね。その頃は違うMySQLの本もやっていたので、「書くのは4月からですよ。9月初旬に終わる予定でやりましょう」ということで書いて、3月末にはMySQLの本が終わりました。

katzchang:「15時間でわかる」のは、またこれはこれでおもしろそうだけど。

ばば:「15時間」は15 hoursではないです。単元が15という意味合いです。

katzchang:なるほど。1単位。

ばば:そうですね。8月ぐらいに若干の滞りがあって、いろいろあって1ヶ月ぐらい伸ばしました。9月にISUCONがあって、久々に本選に通ったのでそこでまた滞りが生じて。

(一同笑)

ばば:ISUCONの本選があって、その直後ぐらいに終わりという感じですね。年が明けていろいろやっているうちに編集さんと初めて会って、本の名前がここで決まってやっと発売になりましたという感じです。

「私が書いたので読んでください」と言うと強い

ばば:なんで書いてるの? どういう気持ちで書いているの? というのをちょっと(スライドに)書いてみたんですけど、基本的に私はずっとモニタリングなどをいろいろやってきているので、それをまとめてかたちにしたいという欲がある。そういうことでそれを成就するという感じですね。

あと私の立場からすると、みなさんから同じ質問を何回も受けるんですよね。それこそ「グラフをどうやったらいいですか?」とか、「これはどういう意味があるんですか?」みたいな。こういうものは1回で済ませたいので、本を渡して「これに書きましたので読んでください」と。

「これに書いてあるので読んでください」と言うと少し弱いんですけど、「これ私が書いたので読んでください」と言うと強いんですよ(笑)。「じゃあ読みます」みたいになるので。

小鹿本の『Webエンジニアが知っておきたいインフラの基本』も、それでわりと活躍していますね。

katzchang:このアクティビティのプラクティスは使いたいですね。

ばば:ぜひぜひ使ってください。たぶんモニタリングの本はもっと増えたほうがいいと思うので。

katzchang:ですね。

ばば:それから、エンジニアの常識とか新常識みたいなものを商業出版で権威付けして「最近はこういうものです」ということを言えるようになると、たぶんみんなよくなるんだろうということでやっています。あとは、会社の宣伝ですね。

katzchang:どうぞどうぞ。

ばば:ここで少しだけ宣伝します。ハートビーツという会社をやっています。MSPというサーバの運用代行、クラウドとかですね。あとは開発事業も去年ぐらいから始めております。はい、宣伝終わり。

katzchang:なるほど。あ、もう概要の話……。

ばば:そうですね。この概要の部分にやっぱりその常識を商業出版で権威付けるみたいなところを強く出しているんですよね。「システムは壊れますよ」というところですね。

katzchang:「システムは壊れますよ」と言わないと、なんか動いているような気になりますよね。

ばば:そうなんですよ。やっぱり物理的なものが見えないので、「もしかして塩漬けできるんじゃないか」と思ってしまいがちなんですけど、実際はそうでもなかったり。ハードの上で動いているというのもそうですし、エコシステムの中で動いているものなので、いずれ壊れるんですよね。それこそHTTPS通信が突然できなくなったりするわけですよ。

katzchang:さまざまな理由により。

ばば:まぁ、HTTPSはね。証明書も切れますし、プロトコルバージョンの下が切られたりとかもあるので。なので、「そもそもそういうものなので」という下地を作っていきたいんですね。

katzchang:なるほど。ありがとうございます。そうなんですよね。

モニタリングの歴史

katzchang:さて、どう進めようかな。ymotomgpooは、なんかおもしろそうなところってある? いきなり振って申し訳ないけど。

ymotomgpoo氏(以下、ymotomgpoo):いきなり来てビックリしたんだよなぁ。

(一同笑)

ばば:katzchangさんとymotomgpooさんには、今日事前にPDFをお渡ししていて。

katzchang:はい。発売前の物理本もいただいています。これは普通に1章で歴史の話、「2000年代はこういうことをやっていたよ」「2000年以前はこんな感じだったよ」みたいなことが書いてあります。これはあれですよね、「今の若い奴らはこういう歴史を知らないだろうな」と。

ばば:そうですね。最近のプロダクトはわりと成熟してきているので、背景を知らないとよくわからないことがあると思ったので、発展の歴史を書いていますね。昔のNetSaintとかNagiosとか……Nagiosはまだ元気ですけど、Nagiosがあって、Sensuとかが出てきて、そのあとPrometheusみたいなものに変わっていったりとか。

昔はモニタリングソースがほとんどなかったじゃないですか。それがNew RelicがAPMとかでがんばってきて、そのあと一般的なメトリクスモニタリングのSaaSとか。

katzchang:Datadogが出てきて。

ばば:そうですね。

katzchang:Mackerelは何年ぐらいだっけ?

ばば:Mackerelもまあまあ経っていますね。

ymotomgpoo:Mackerelはたぶん2013年とか2014年とかだと思います。

katzchang:Mackerelに詳しい人がたぶんTwitterに書いてくれそうな気がするけど、なるほど。New Relicは歴史を紐解くと2008年に創業したみたいなことが書いてあって、「へー」と。

ばば:クラウドの頃とだいたい同じですね。

katzchang:そうなんですよ、クラウド発祥時代に何かやっていたそうですね。

ばば:昔はモニタリングと言うと、アクティブ型の監視システムからアクティブにチェックをするというだけだったんですよね。それが今は基本的にSaaSってパッシブじゃないですか。メトリクスもプッシュで送るタイプになってきているんだけど、でも実はPrometheusはプルだったりとか。

katzchang:そうそう、あれはなんか「へー、そうなんだ」って。

ばば:おもしろいですよね。

katzchang:なんかPrometheusプロキシというのを間に挟んでプッシュ型に変更するみたいなのをみて「へー。なるほど。そういう感じなんだ」と。

ばば:最近いきなり入った人は、プッシュとプルがあるとか、アクティブとパッシブがあるということをたぶんあまり意識しづらいと思ったので……そもそもメトリクスといわゆるチェック型のものがあって、データの収集のタイプもアクティブとパッシブがあってとか……データの収集はプッシュとプルがあって。監視の仕方もアクティブとパッシブがあって、みたいな。

katzchang:そうですね。結局どちらがどちらにプッシュという用語でしたっけ?

ばば:エージェントがサーバにプッシュですかね。

katzchang:だから現代的なやつはプッシュ型が多い。SaaSはとくに。

ばば:基本的にはほとんどそうですね。

監視のテクノロジーの変化を俯瞰しやすい

katzchang:プル型のちょっと前のやつとかもそうだけど、「プル型を使っているときはどういう特徴があるの?」みたいなこともたぶん把握しておいたほうがよくて。

ばば:そうですね。

katzchang:そういうことも、この本(『Webエンジニアのための監視システム実装ガイド』)を見ればなんとどこかに書いてあるはず。

ばば:はず。

(一同笑)

ばば:1人で200ページも書くと、だんだんわかんなくなってくる問題があるんですけど。

katzchang:あ、そうだ。「10 deploys per day」の話とか。

ばば:そうですね。あとは、さっきの「常識を」みたいな話で、モニタリングはインフラエンジニアやOpsだけのものではない、という話ですね。でも、チェック型のモニタリングをいきなり全員に広めるのは無理筋なので、メトリクスをして、その改善の足掛かりになりそうなダッシュボードができてからやるとやっぱりいいですよね、とか。

katzchang:ここでいうチェック型というのをもう少し確認しておきたいんですけど、チェック型はどういう特徴があるやつですか?

ばば:この中の用語で言うと、例えばNagiosのcheck_httpみたいな、閾値とかを完全に持っていて、アラートというか異常を検知するためにアクションを行うものをチェック型と呼んでいます。

katzchang:それではないものは、例えばメトリクス。

ばば:メトリクスベース。「観測する」ということを基本的にやった上で、それを見て判断するみたいな。

昔からやっている人は、「チェックする」ということが頭にあるので「観測してそれを見るんですよ」みたいな世界観とは少し違うんですよね。その辺のジェネレーションギャップを埋めるためにも。

katzchang:そうですね。たぶんこれを見に来ている方も、いろいろなツールを使っているんじゃないかとは思うんですが……。Mackerelの正式リリースは2014年だったんですね。なるほど。

ymotomgpoo:僕が1章を読んでて思ったのは、個人的には、監視のテクノロジーの変化というのは、まさにクラウドなどを扱う台数がすごい増えたことと、インスタンスがすごく簡単に破棄されるようになったので……そもそもクラウドになっていわゆるハードウェアに相当するものがなくなったので、ハードウェアキーなどの低レイヤーの情報を取りに行くモチベーションがかなり減ったというのもあると思うんですよね。

逆に、簡単にマシンでインスタンスのアップグレードができたり、あとはアプリケーションのサイズがどんどん横に大きくなっていって、システム全体の健全性を見たときにアプリケーションが占める割合がすごく大きくなった。そういったことで、どんどん監視のテクノロジーが変わっているんだというのが、1章を読んでいくと暗にわかる感じがして、すごくいいなと思いました。

今の若い人というとあれですけど、今この時代にアプリケーション開発とか、それに伴って監視をやるような人たちからするとたぶん当たり前のことだと思うんです。でも、昔の知識だけでずっとやってきている人もけっこういると思うんですね。そういった人が、俯瞰的に何が起きているかを把握しやすいというのが僕の感想です。

ばば:ありがとうございます。

「ペットから家畜へ」

katzchang:ディスポーザブルなインフラとかサーバインスタンスを表すために、「ペットから家畜へ」というのはよく言われますよね。「かつては1台1台のサーバにちゃんと名前を付けていた」みたいなのが載っていて、「あー、そういうこともあったよね」という感じですよね。

ymotomgpoo:完全にインターネットというかIT老人会みたいになってますよ。

(一同笑)

ymotomgpoo:いまだに家で好きな車の名前とかマシンに付けてますよ。

katzchang:固定マシンはそうですよね。だから、例えば今の職場ですごく丁寧な名前を付けているとしたら、もしかしたら現代的、先進的に見える監視がそのままフィットしないかもしれないですし。

ばば:そうですね。

katzchang:3桁の連番で管理しているとかはよく聞くんですけど、それもそ車の名前ほどは丁寧ではないにしても、まあまあ固定的だから少し注意したほうがいいかなということはありますね。

これはNew Relicのソリューションコンサルが言ってたんですけど、「『ペットから家畜へ』について説明すると『すごいわかる』って言われるんだけど、『ペットから家畜へ』と(いうフレーズを)言った瞬間に『え? 何言ってんの?』という顔をよくされる」って。

(一同笑)

ばば:そうですね。

katzchang:なんかもっと良い例えないかなと思って。

あとは、ディスポーザブルな運用をしている人は、良くも悪くも実はそんなにいないというのがあるので、そっちを目指したほうが絶対楽ですよと。前職、VOYAGE GROUPにいたときから言っていたんだけど、この辺をどうしていくかというのがけっこうあるかな。VOYAGE GROUPのときの……前職の事例のほうが喋りやすいって本当にどうかと思うんですけどね。

(一同笑)

監視サービスの設定をしないといけない。当時は、さっき言っていたプル型の監視サービスを標準で使っていたから、それを使わないといけないためにディスポーザブルとオートスケーリングの構成がしづらいという問題があって、やっぱり監視はちゃんと変えないとなということに気付いたのが、「私と監視」みたいな感じの思い出ですね。

ばば:完全に昔のやり方だけだとやっぱり適用できないんですよね。

katzchang:僕らの組織にとってどこがネックになっているの? みたいなのはけっこう丁寧な話をしないといけないんですよね。