世界に広がるDevOps
変わるものには、例えばプログラムのインストールがある。プログラムは個々のクライアントやマシンにインストールするのではなく、サーバーにインストールしてデプロイ(展開)作業を経てユーザーが利用することになる。これが、サービスの運用やメンテナンス、システム管理業務、あるいは開発サイクルなどさまざまに影響を与えることになるが、開発者側からすると、プログラムのテストやリリースプロセス、その後のサーバー管理者・運用者との連携など、従来のウォーターフォール型やITILプロセスが通用しない部分もでてくる。特に開発(Development)とサーバー運用(Operation)の意思疎通は、うまくいけば柔軟なデプロイが可能であり、失敗すれば衝突・トラブルの元となる。
「DevOps」は、開発と運用の連携を強化し、効率的なデプロイやサービス運用につて、情報交換や発表を行うコミュニティ活動だ。米国での取り組みをはじめ、現在は世界中でDevOpsの活動が広がっている。日本でも去る9月28日に「DevOpsDays Tokyo 2013」が開催された。
IPONWEB Japanのニック・ガルブレス氏は、開発と運用のコミュニケーションの改善をテーマに、運用の可視化とそのためのツールや方法について紹介する講演を行った。
開発と運用の問題点は「見えていない」こと
ガルブレス氏は、まず、「DevOps」とは何だろうかと問いかける。GitHub、Chef、継続的なデプロイなど技術的な話題は事欠かないが、つまるところ、それは「コミュニケーション」だという。曰く、マシンどうし、メンバーどうし、そして開発側と運用側、それぞれのコミュニケーションであり、同時にそれは多くの企業にとっての問題でもあるという。
開発者は「それは運用の問題でコードのせいではない」というだろう。運用側は「なぜ何度もソフトウェアのリリースが必要なんだ」と思っているだろう。経営・管理部門は「なぜレポートを月末まで待たなければならない。開発はバグの影響理解しているか?」という不満を双方に持っている。あげくには、多くの社員が「いったいこの会社は何をやっているんだ?」と思ってしまう。
これはコミュニケーションの問題であり、原因はお互いが相手を「見えていない」からであるという。そして多くの場合、見えないものは価値がないものとみなされてしまう。では、相手を見えるようにする(可視化)するにはどうすればいいのか。氏は、データによる運用の可視化を勧める。これには、技術的に運用プロセスを可視化するだけでなく、企業の運用・経営の可視化も含まれるが、企業にあふれるデータをもっと公開し駆使すれば実現可能だという。
「1日だけ、1台で、ひとりで」による運用の可視化
可視化やデータの共有といっても、現実にはセキュリティの問題、意識の問題(どうせ読めないだろう、仕事と関係ない、など)、重複データの問題(共有情報が冗長コピーになる)などもあるだろう。あるいはもっと根本的な問題として、時間がない、やり方が分からない、といったものもある。
時間ややり方の問題は、適切なツールがあれば解決できるはずだ。可視化のソースとなるデータも多方面から集めたり調達しなくても、運用システムのメトリックデータをうまく活用すれば解決できる。そのためにメトリックデータの処理をツールで自動化して、「1日だけ、1台で、ひとりで」のリソースで運用の可視化に挑戦してみようとガルブレス氏はいう。
紹介されたツールはgraphiteというRDDToolやGangilaと同様なツールだ。ストレージ処理やクエリーに特化した機能や連続したデータ処理に特徴があるという。完璧なツールではないが柔軟な入出力、REST API、マッシュアップとダッシュボードのUIの使いやすさなど、運用メトリックの可視化には向いているという。ダッシュボードもHTMLでカスタマイズしやすく、生成したグラフはURLベースで共有や管理も簡単だそうだ。インストールも簡単で、ストレージやメモリがあればCPUパワーはいらないので、「1台のPCで1日」あればインストール可能であり、必要なグラフやダッシュボードもオンデマンドで対応可能だという。
ちなみに、「ひとり」というのは、運用メトリックデータだけあれば他のデータやシステムに依存せず多くの情報を可視化できるという意味だ。