オルタナティブ・ブログ > 情報インフラ24時 眠らないシステム >

「仮想化」をキーワードに情報インフラの世界を考察します。

【DevOpsが変える開発と運用[#2]】 開発と運用のコラボレーションはそこにあるか:日本CAの提案

»

DevOpsが運用と開発の関係性を「対立」から「協調」へ促すものであることは[#1]のエントリーで分かりました。しかし、内部統制の強化に端を発したこの対立路線を解消する手立てはあるのでしょうか。

これについて、ITサービス管理製品を数多く提供している日本CAのプリンシパル・コンサルタントの方が夏サミ2013でプレゼンした資料から、いくつかの示唆を得ることができます。

『【夏サミ2013】4つの視点から読み解くDevOpsにおける改善活動のポイント 』
http://codezine.jp/article/detail/7349

プレゼンの中で、DevOpsという言葉の定義が人によって異なっている点が触れられていたので、そこから主要リサーチ機関である2社の表現を抜粋します。

■フォレスターリサーチの定義
「アプリケーション開発、インフラ、運用、品質管理を担当するIT部門間において一緒になりコミュニケーションをとり、コラボレーションや統合することでより目的にあったタイムリーなソフトウェアやサービスを生むための一連プロセスや手法、システムである。」

■ガートナーの定義
「クラウドサービスから始まったもので、オンラインビジネスの増加により、運用チームと開発チームがコラボレーションすることで、効率性を向上させることに着目した概念である。」

フォレスターは具体的な方法であると考えているのに対して、ガートナーは概念だと捉えているのは、対比として面白いです。一方で、両者が共通して述べているのは、「開発と運用のコラボレーションがそこにあること」です。つまり、人によって枝葉の違いはあるとしても、本質的に、開発と運用の協調路線に舵を取っていれば、そこにDevOpsが求められてくるのです。

しかし、このコラボレーションが難しい。たとえばプレゼン資料には、開発と運用の対立を示す簡単なイメージが示されていました。

開発側:「本当にうちのアプリが原因?」
運用側:「障害発生、協力してよ」

開発側:「開発環境で再現するまで待って」
運用側:「早く修正してよ」

開発側:「頼んだリリース、早くやってよ」
運用側:「リリース以外にも作業が山積みだよ」

開発側:「本番環境の設定を教えて」
運用側:「また?このあいだ教えてじゃん」

開発側:「本番環境へのアクセス制限多すぎ」
運用側:「間違いが起きてからじゃ遅いんだよ」

ほとんどの人が身に覚えのあるやりとりじゃないでしょうか?こうしたことの積み重ねによって、開発の人は運用の人に頼みごとをしづらくなるし、運用の人は開発の人からの問い合わせが自分の仕事を増やすだけだと不毛に感じてしまう傾向が高まります。

では、DevOpsがうまく実践されている開発と運用の現場はどのようなコラボレーションがなされるようになるのでしょうか。プレゼン資料には以下の参考例が挙げられています。

開発側:「うちが原因かもしれないからすぐ調べるね」
運用側:「障害発生、そっちが原因かもしれない」

開発側:「原因が分かったからリリース手順を自動化したよ」
運用側:「こっちの手間を減らしてくれてありがとう」

開発側:「本番環境の設定を確認する仕組みを用意したよ」
運用側:「似たような問い合わせが減って助かるよ」

開発側:「本番環境へのアクセス申請も自動化したよ」
運用側:「決められたルールに基づくアクセスだから安心だね」

こうしたやりとりを現実にするために日本CAが示したキーワードが「ゼロタッチ・デプロイメント」、すなわち、人手を極力介さないリリース管理プロセスです。

数年前にランブックオートメーションという運用業務の自動化ソリューションが登場し、仮想化製品が当たり前になった現在ではプロビジョニング(システムリソースの動的割り当て)も実装例を見かけるようになっています。これをもう一歩推し進めるゼロタッチ・デプロイメントでは、アプリテストの最適環境、つまり本番と同等だと感じさせる環境を開発サイドに構築することを提唱しています。

冒頭のリンク先記事に書かれているこれらのことは、15年以上前にオブジェクト指向言語のJavaがWebシステムの構築用途で広まった頃の登場技術を私に思い出させます。

例えば、リリース手順の自動化については、当時からAntを使うことで、リポジトリに格納されたリソースをベースに開発→本番環境のオートデプロイを実現できていました。外部システムと連携する分散システムは、インターフェース先の挙動を模して動くスタブクラスを設けることで、試験スケジュールの柔軟性を確保していました。

これらのソリューションがクラウドソリューション向けに焼き直しされているように見えるのは、DevOpsの必要性をもっとも強く感じているのが、この界隈の人たちだからなのかもしれません。

DevOpsを実現するためには、そのオペレーションを支えるツールの存在が大変重要です。今後、ITサービス管理製品を取り扱うベンダーからは、ますます関連製品が登場することでしょう。今回は日本CAを取り上げましたが、他のベンダー製品についても見ていこうと思います。

------------------------------

【DevOpsが変える開発と運用[#0]】 DevOpsではなく、TechOpsでIT運用管理を変える

【DevOpsが変える開発と運用[#1]】 DevOpsは開発と運用の分離と対立するのか?

Comment(0)