
今や高度に発達した複雑なインターネットシステムのふるまいは、生きものや自然のようです。システムの不測のトラブルは、自然災害の脅威になぞらえられます。それは神の怒りと見分けがつかないとも…。インターネット運用技術を研究する坪内さんは、コンピュータの自動化によって、未知の恐れを解消する監視システムの実現に取り組みます。
高度に発達したシステムの異常は神の怒りと見分けがつかない ~システム管理者を恐れから解放する監視システムを

インターネット運用で、どうにか人手のかからない全自動システムができないかと日々、ぼくは考えています。でも実際には全然ダメ。今のネットは24時間365日動き続けることが前提で、それは現場エンジニアの不断の努力で支えられています。自動化しようにも、エンジニアたちは機械任せしてしまうのが怖いんです。
どうしてそんなに怖いのでしょう。エンジニアは、今のインターネットシステムは、まるで生きもののようだと感じています。普段はおとなしいのですが、突如、異常が生じ、いつ人間に襲いかかるかわからない、古来からの神の怒りと見分けがつかないというわけです。
こうした不安を埋めるため、人間は未知のものを観測して、既知にすることを思いつきました。情報システムの言葉で言うと、「監視」と呼びます。人間の体で言えば、健康診断みたいなものですが、情報システムに置き換えると、CPUの利用率やメモリの使用量などデータをたくさん集めて、診断します。
さて、こうしたデータはなるべくたくさん集めたいですよね。たくさん集めて保存しておくためには専用のデータベースが必要です。これを、時系列データベースと言いますが、ここには、性能vs.お金の問題があります。私は、それを解決する簡単なアイデアを出しました。

データの置き場所には、メモリ、SSD、HDDがあります。それぞれ、次のような性質があります。メモリ=速い、SSD=ふつう、HDD=遅い。

逆にお金の観点でいうと、メモリ=高い、SSD=ふつう、HDD安い。
これらをどうにか統合して扱えないかと考えました。
古いデータというのは一般にほとんどアクセスされないので遅くてもいいかな。つまり、速いものは新しいところに置いて、古いデータは遅いんだけども安いところに置いておけばいいという発想です。これらを統合するようなソフトウェアを作り、全体として1つのデータベースとなればよいという考えです。

実際には簡単ではないのですが、これを実装した「DiamonDB」というオープンソースのソフトウェアを僕が個人で開発しています。現行データベースと比較して、約100倍以上のデータ量の保持が現実的なコストで可能になっています。
さらにもう一歩進んだ実験的研究を紹介します。カオスエンジニアリングという考え方から拝借しています。

これは、簡単に言うと「わざと異常を起こす」という考え方です。システムがたくさんあれば、1台くらいサーバーが落ちても、システム全体として動いていてほしいわけです。そこで、わざと1台サーバーを落とし、システムが全体としてちゃんと動くかチェックし続けるという考え方です。

これをもう一歩先に応用し、たくさんのサーバー群のデータを観測して、大量に収集して、そこからシステムモデルを構築しその実験を繰り返し、例えば弱点などを発見したら本体のシステムにフィードバックするというものです。つまり観測と実験によりシステム特性を学習しながら、自律動作するシステムというものを作って、システム管理者を未知の恐れから解放したいと考えています。
※坪内さんのブログに、上記に補足を追加した内容が掲載
◆ゆううきブログ
