DevOpsをエンタープライズへ導入する際のハードルについて。SIerはDevOpsできるのか? ビジネスゴールはどう設定するのか?
DevOpsについてPublickeyではじめて書いたのは2011年の記事「開発と運用の新しい関係、「DevOps」とは何か?」でした。2年前ですね。
もともとFlickrやFacebookといったオンラインサービス系の企業が発端となったDevOpsのムーブメントですが、最近ではエンタープライズ系の開発と運用においてもDevOpsの考えを取り入れていこうという動きが目立っています。しかし、DevOpsをエンタープライズに取り入れるにはいくつかのハードルがあるように思います。
その話をする前に、手短にDevOpsの現状についてまとめておきましょう。
DevOpsはムーブメントなので方法論やツールの規定はない
DevOpsは、つねに新機能や機能改善といったシステムの追加更新をミッションとする開発と、安定運用をミッションとするためにシステムの変更を嫌う運用という、表面的にはお互いに相反するミッションを持つそれぞれの部門が、ビジネスゴールの達成という本質的に共有し共通する目標に向かって協力し合うムーブメントのことを指します。
もともとDevOpsは方法論やツールが規定されているわけではないため、ムーブメントに合致する活動であれば飲み会でさえDevOpsの一環で、ビールサーバだって立派なDevOpsツールの一種だといえましょう。
とはいっても開発や運用が効率よく協力し合うために、典型的な方法論やツールはあります。
開発側でいえば、それはアジャイル開発の流れから発生した継続的インテグレーション、継続的デリバリであり、これらの方法論によって開発から運用へと迅速かつスムーズな連係を実現していくことが定番となっています。ツールとしてはJenkinsがよく知られています。
運用側でいえば、変化に柔軟なインフラを実現するためにクラウドを活用しつつ、ChefやPuppetのような運用自動化ツールを用いるのが定番といえるでしょう。
さらに開発と運用を含むチーム全体が円滑にコラボレーション、コミュニケーションをするために、チケット管理システムやリアルタイムメッセージングシステムなどもよく採用されています。JIRAやRedmineなどがよく知られているでしょう。
DevOpsの話題はメトリクスの共有へと移って行くだろう
そしてもう1つDevOpsで大事なのは、共有するビジネスゴールを持つことです。これがあるからこそ、DevとOpsは同じ方向を向いて協力できるという意味で非常に大事な要素です。ビジネスゴールの方向にプロジェクト全体が向かっているのかを関係者全員が判断できるためには、何らかのメトリクスが求められます。
コンシューマ向けのオンラインサービスであれば、例えばユーザー数の増加や滞留時間の増加などがそれにあたるでしょう。こうしたメトリクスを計測し、共有するためには、Webサーバのログからつねにその値をモニタリングするようなシステムも用いられることになるでしょう。
現在のところ、DevOpsの関連の話題として継続的デリバリやインフラ自動化をどう実現するか、といった話題が比較的多いようです。しかしその部分がツールの普及などで一般化してくると、次はビジネスゴールをどう計測し、見える化して共有するか、ログ収集ツールやメトリクスツールなどが話題の中心になっていくのではないかと思います。
SIerのビジネスモデルはDevOpsを受け入れるのか?
さて、ここまでがDevOpsの現状把握だとして、このDevOpsをエンタープライズでの開発と運用に当てはめようとすると、いくつかの課題がありそうです。
まず、日本ではおもにシステム開発の主役となっているSIerのビジネスモデルは、外注としてシステム開発を請け負い、完成品を納品する、というものになっています。これは開発と運用が協力し、お互いにフィードバックしながらビジネスゴールへと向かうDevOpsとずいぶんかけ離れた仕事のやり方に見えます。これはSIerだけでなくシステム開発を依頼するユーザーもあわせてやり方を変えないと、DevOpsを実現するのは難しそうです。
ビジネスゴールをどう設定するのか、という点にも困難さが伴うでしょう。会社全体としては売上げや利益がビジネスゴールといえそうですが、個別のシステムに対するメトリクスとしては適切ではありません。エンタープライズにおけるDevOpsでは、もっと個別のシステムに特化したメトリクスが求められるでしょう。それを決めるには、システム開発の出発点で、ビジネスオーナーやプロダクトオーナーとエンジニアのあいだで、なにがこのシステムのゴールで、そのメトリクスは何なのかということを合意しておく必要があります。
システムのガバナンスをどうするか、という問題もあります。一般に企業におけるシステムのガバナンスの第一歩は、運用と開発をきっちり分け、運用の中でも限られた人だけが本番系システムに関与できるようにすることで本番系システムの安全と安定をはかる、ということです。こうしたガバナンスの枠組みの中で、どうやってDevOpsの方法論を組み立てていけばいいのか、ある程度業界でノウハウを積み上げていかなければならないように思います。
もちろん、必ずしもすべての案件がDevOpsにふさわしいわけでもないと思うので、その見極めも大事でしょうし、それ以前にDevOpsの要素としてのアジャイル開発やクラウドの採用をどう推進していくのかという課題もあるでしょう。
DevOpsが示す、開発と運用が協力してビジネスゴールを目指すという考え方は、エンタープライズでも取り入れていくべきだということに異論のある人は少ないと思います。しかしここに挙げたように、そこにはいくつかのハードルがありそうです。そしてこれらの課題を克服してエンタープライズでDevOpsが使われていくようになるには、ある程度の時間が必要になるのでしょう。
夏から秋にかけてのDevOps関連イベント
ここからは少しPRっぽくなりますがPublickeyはこの夏から秋にかけて、DevOps関連のイベントに3つほど関わる予定です。いずれのイベントでもこの記事に挙げたような課題を意識しつつ参加、もしくは取材しようと思っています。
1つ目のイベントは8月1日開催予定の「Developers Summit 2013 Summer」。テーマはずばり、エンタープライズ向けのDevOpsについて。午前中の基調講演とリレートークの司会をしますので、この記事に書いた現状認識と課題に沿ってお話をしたり、リレートークでエキスパートの皆様の話を聞こうと思っています。
もう1つは日本科学技術連盟主催の「ソフトウェア品質シンポジウム2013」です。最終日9月13日のクロージングパネルディスカッションでモデレータをする予定ですが、テーマは「高品質のための部門間協調のありかた 〜ソフトウェア品質シンポジウム流DevOps」です。ここでもエキスパートの話に加え、アカデミックな観点からの話も聞けそうで楽しみです。
そして3つ目はまだ正式に公表されていませんが「DevOps Day Tokyo 2013」が9月に開催されるとの情報が入ってきています。DevOpsに特化したイベントとしては国内唯一かつ最大のイベントになりそうです。昨年取材をして「DevOpsを実践する企業に共通すること。DevOps Day Tokyo 2012」などの記事を公開していますが、今年も取材する予定でいます。
読者の皆様も、よろしければイベントでお会いしましょう!
あわせて読みたい
MSバルマー氏。「われわれはデータセンターに100万台を超えるサーバを保有している。Googleはさらに大規模だが、Amazonはこれよりもやや小規模だ」
≪前の記事
オラクル、Sun RayやOracle VDIなどの開発終了を宣言