DevOpsとはどんなもので、何が議論されているのか(前編)
開発と運用の対立を越え、ビジネスのために協力し合う。「DevOps」ムーブメントをテーマにしたイベントが2月24日に都内で行われました。
IT業界がパッケージソフトウェアからオンラインサービスへと転換しつつある中で、優れたサービスを迅速に実現する重要なキーワードとしてDevOpsは注目されはじめています。
この記事では、日本でDevOpsの普及に努めている森川裕和氏(@nxhack)の講演をダイジェストで紹介しましょう。
眠れない管理者の悩みは世界共通
会場で、自分が運用の人は?(3割くらい)。では開発の人は?(8割くらい)。ではビジネスマンの人は?(2~3人)でも、これは全員のはずですよね。
これが今日のプレゼンの原点になります。
私はWebの運用やネットワークのBGPの運用までやっていたことがある、いわゆる「眠れないシステム管理者」でした。で、システムがスケールしないよね、とか、やっぱりすごく悩んでいました。
それが2009年頃にDevOpsムーブメントがあるのを知って、これが自分の悩みとすごく一致していて、「ああ、そうなんだ」と。世界中で同じ悩みを持つ仲間がいるんだと。これから「DevOps!」と叫ばなければいかんな、と思ったわけです。
今日のプレゼンは、DevOpsムーブメントとはどんなもので、何が議論されているのか、といったことをオーバービューしたいと思います。
リーンスタートアップ、ベロシティ、アジャイル
2011年にマウンテンビューで行われた「DevOps Days Mountain View 2011」でJohn Willisさんが行った「DevOps State of the Union」(DevOpsのわれわれの現状)では、こんな説明をしています。
DevOpsには3つのスレッド、「リーンスタートアップ」「ベロシティ」「アジャイル」があると。
リーンスタートアップの流れは、Steve Blank氏の書籍「アントレプレナーの教科書」や、Eric Ries氏の「The Lean Startup」にあって、スタートアップのビジネスの立ち上げ方、やり方がすごくロジカルに書いてあります。
2008年には「Velocity」というイベントが始まりました。これはグーグルやFacebookのようにすごく大規模なWebサービスが、スケールしないとかスピードがでないといった課題を抱えていて、ではそういう大規模Webサービスをやっていて困った課題をみんなでシェアしましょう、というイベントでした。
2009年のVelocityで、FlickrのJohn Allspaw氏とPau Hammond氏のプレゼン「10+ Deploys Per Day: Dev and Ops Cooperation at Flickr」が衝撃的でした。
DevとOpsは仲良くしなければいけないという、これはインパクトがありました。
アジャイル開発は、2001年にアジャイル開発宣言が行われていて、わりと議論が進んでいます。アジャイルでは、Continuous Integration、Continuous Deliveryなどの継続的ホゲホゲがすでにありますが、継続的Developmentと継続的Integrationまではデベロッパー(Dev)だけでよかったんだけど、継続的Deployment、継続的Deliveryの議論になるとオペレータ(Ops)が絡み始める。
で、Patrick Deboisという人が、Velocityでの講演に衝撃を受けてヨーロッパで初めて「DevOps」という名前を付けたイベントを2009年に行いました。彼がDevOpsの名付け親と言われています。
日本でも昨年2011年に「DevOpsカンファレンス」が行われました。
アジリティが時間的差異を生み出す
リーンスタートアップ、ベロシティ、アジャイルの3つに共通しているのはアジリティです。
価値は差異から生まれますが、アジリティというのは時間的差異を生み出す手段で、いまは経済的にも不安定な時代だからこそ、この差異を生み出すアジリティが重視されると。
Webアプリケーション、webサービスはソフトウェアのみでは成り立ちません。インフラと一体化サービスです。アプリがインフラで、インフラがアプリなんですね。
そこで問題になるのがオペレーション。オライリーが「オペレーションはニューシークレットソース(新しい秘密の隠し味)」と言っています。
ここで開発とインフラの役割はどうなっているのか。
デベロッパーは機能や性能の改良と発展を担当しています。オペレータはサービスとスタビリティを担当しています。
デベロッパーが「新しい機能をリリースするよ」というときに、オペレータが「だめだめ、まず仕様を出さんかい」と。オペレータは安定性を求めるので、何かを変えるときに障害が起きやすい。
そして夜中に障害が発生してオペレータが対応し、デベロッパーに情報を求めているときに、デベロッパーが寝ていたりします。
で、いつの間にか両者に壁ができて、上長を経由して仕事が流れるとか、チケット制になったりする。デベロッパーからオペレータを見ると「スピード感なさ過ぎ」。オペレータからデベロッパーを見ると「サービスが分かってない」となる。
これは大企業や中堅企業だけではなく、スタートアップ企業でも同じ。
でも、開発が守りに入ったら成長しない、サービスが安定しなければビジネスが成り立たない。開発と運用は、どちらもビジネスという同じゴールを目指しているはずですよね。
アジリティを持って同じゴールを目指す必要があるわけです。
次の記事「DevOpsとはどんなもので、何が議論されているのか(後編)」に続きます。
関連記事
このイベントの案内ページで、参加者にDevOpsの解説記事として案内されていたのはPublickeyの次の記事でした。あわせてどうぞ。
講演で言及された書籍
シリコンバレーで8社のハイテクベンチャーに従事し、いくつものベンチャーを自身で成功に導いたシリアルアントレプレナーによるベンチャー立ち上げ方法論の集大成。スタートアップがキャズムに到達するための実践的手法、新規事業立ち上げのHow toをステップバイステップで詳細に解説。
The Lean Startup offers entrepreneurs - in companies of all sizes - a way to test their vision continuously, to adapt and adjust before it’s too late. Ries provides a scientific approach to creating and managing successful startups in a age when companies need to innovate more than ever.