クラウドの登場でDevOpsは変わっていく、メトリクス主導へ
昨日公開した記事「DevOpsとはどんなもので、何が議論されているのか(前編)」では、DevOpsの現状について、先週都内で開催されたDevOpsのイベントで行われた講演を紹介しました。
今回の記事は、同じイベントで行われたもう1つの講演の内容を紹介します。講演を行ったAlexis Lê-Quôc氏は、昨年米国で行われたイベント「DevOps Days Moutain View 2011」でパネリストを務め、DevOps Metrics and Measurementに関する世界的な第一人者。
Alexis氏は、先週日曜日に行われた東京マラソンに参加するために来日、それにあわせて講演をしていただきました。また、Alexis氏はDevOpsのためのツールDatadogの開発も行っており、講演の最後にはDatadogの紹介も行っています。
Webサイトの複雑化で全体像が見えなくなった
Alexis Lê-Quôc氏。
クラウドによってDevOpsがどういう方向に進むのか、そしてメトリクスの重要性と、メトリクス主導の開発についてお話しようと思います。
まず1つ目は「In the Cloud, DevOps is the new Ops」。クラウドが登場することでDevOpsがどういう方向に進むのかについて。
私は1997年からソフトウェア開発にたずさわり、2004年からWebの運用担当になりました。なぜかというと、誰もそれをやりたがらなかったから(会場の多くの人が「自分もそうだ」という感じでうなずく)。
以前、私のコードが運用中にクラッシュしたとき誰も直し方が分からなくて、それからいつも自分のコードが動いているのを見守ることになり、それが専門の仕事になっていました。
私がその仕事に就いた頃と比べると、Webアプリケーションは進化してきました。最初はWebサーバがあって、データベースが1つあって。
そこにロードバランサーやキャッシュサーバなどが増えて、データベースもレプリカを作るようになったり。
さらにWebサイトのサイズが大きくなると、それが10倍、50倍と増えて複雑度がすごく上がっていきます。さらにMapReduceみたいな新しいテクノロジーも入ってきました。
こうなると運用チームの人数も増えて、運用チームの中の専門性も進んでいきます。
そしてそれが運用ツールの爆発的増加につながるわけです。Web管理ツール、データベース運用ツール、アプリケーション用、キャッシュ用、ロードバランサー用など、さまざまな種類の運用ツールが使われるようになります。
そうすると、データベースの管理者はこのツールを見ていて、ネットワーク管理者はあのツールを見ていて、となって、誰も全体像を見ている人がいないということになる。
クラウドの登場で運用がAPIベースに
そこにクラウドが登場してきました。これまでは自社でサーバを購入して運用していたのが、クラウドのサービスを利用するように切り替わってきています。これで何が起きるのでしょうか?
例としてAmazon Web Servicesを使ってみましょう。すると、さまざまなサーバがクラウドのサービスに置き換わっていきます。
これを運用ツールの面から見ると、運用ツールが全部APIに置き換わることを意味します。
この結果、重要なことが起こります。
管理者は専門家からゼネラリストへ
クラウドのサービスでは、サービス個々の細かい設定やチューニングの余地が少ないこと。そして、全部APIでつながるため、すべてを管理するのにAPIにた対応したツールが1つあれば十分だということになります。
つまりクラウドを使うと、データベース管理者、ネットワーク管理者、ストレージ管理者といった個別分野の専門家(SpecOps)の役割は重要でなくなり、運用全体を見るゼネラリスト(DevOps)が求められるようになってくるのです。
以前はさまざまな専門分野の運用担当者を雇わなければなりませんでしたが、クラウドを使うとそうした人の役割は少なくなってくる。だからといって運用担当者がいらなくなるわけではなく、少数精鋭で運用全体に関わってもらうことになります。
そしてその分、多くの開発者を雇うことができるようになります。
アプリケーションのメトリクスは?
2つ目の話は「Metrics for DevOps」。
ビジネス担当の人は、売り上げ、コスト、在庫など、ビジネスの状況をダッシュボードで見ています。ただし見ているのは集計結果で、週次や月次など、終わった後の数字を見ています。
トラディショナルな運用(Ops)では、CPUやネットワークの利用率、ストレージの状況などをリアルタイムのメトリクスで見ていますよね。
では、運用とビジネスの中間にあるアプリケーションはどうですか? デベロッパーはビジネスのダッシュボードも、運用のメトリクスも見ていませんし、アプリケーションからはメトリクスをとったりしていません。
ビジネスにとって、インフラも多少の差別化要因ですが、アプリケーションこそ最大の差別化要因になっているはずなのに。そこで何もメトリクスをとっていないのが現状です。
メトリクスのカルチャー、いかにメトリクス主導型の開発を築くことができるのか。
そのためには、ビジネス、アプリケーション、インフラのスタックそれぞれにAPIを用意して、スタックを一体化したビューで見ることができるようにする、これが重要です。
これまでは、ビジネスの人はビジネスだけ、インフラの人はインフラだけの状況を見ていましたが、アプリケーションも含めた全体がリアルタイムに見えるということ。
リアルタイムな情報をシェアし、そこで気づいたことを共有し、見たことに基づいてアクションする。これがメトリクスドリブンな開発の姿です。
メトリクスドリブンを実現するDatadog
そして3つ目の話は、DevOpsと私たちのソフトウェアであるDatadogについてです。
Datadogはメトリクスドリブンな開発を実現するツールとして、さまざまなインフラやソフトウェアと連係し、メトリクスをとることができ、その画面のまま、ソーシャル機能で利用者がコミュニケーションをとることができます。メトリクスを見ながら、それについて対話できるのです。
メトリクスの画面からいったん離れて、ほかのツールで対話をすると、そこにあるコンテキスが失われてしまいます。メトリクスの中に直接コメントを書いて、同じものを見ながら対話できる、というのが特徴です。
もし興味があれば、ぜひβ版にサインアップしてみてください。
この講演のスライドはGithubで公開されています。