DevOpsが生まれた背景には柔軟な開発と安定した運用に対する要求がある
過去10年、多くの技術的な進歩とプロセス改革が、IT企業のパフォーマンスと開発速度の改善に貢献してきました。しかし、時に、サイロ化されたチームや膨れ上がったプロセス、統合されてないツールが、パフォーマンスの改善を妨げ、ビジネス上の価値を低下させてしまいます。
DevOpsは文化的で実務的な改革であり、対話・協働・結合を強調するものです。開発チームit 運用チームを結びつけ、改善されたワークフローは、品質や信頼性を損なうことなく、IT製品・サービスに変化への柔軟性をもたらします。DevOpsはソフトウェア開発者と IT 運用管理者だけのものではありません。製品やサービスを定義し管理する上級職を含めた全ての人々をカバーします。
DevOpsは2009年にベルギーで行われたDevOps Daysから普及し始めました。その頃からDevOps関連のイベントは世界中に広がり、その経験や研究成果を共有するべくオンラインコミュニティが広がっています。
DevOpsは一般的に、以下の技術・プロセスによって実現されます。
- アジャイルとリーンの思想に基づいたソフトウェア開発
- アジャイルとリーンの思想に基づいたサービス・マネジメント
- 内部・外部に構築した仮想化環境、あるいはクラウド・インフラ
- インフラストラクチャーをコードとして扱う(Infrastructure as code)
- データセンターの自動化と構成管理ツール
- 監視と自己修復技術
近年、開発チームと運用チームは、それぞれの進化を遂げ、上記の要素技術が発展を遂げてきました。しかし、残念ながら開発と運用は、は常に共同して動いているわけではないため、結果として、制限が生まれ、足並みが揃わない状態が発生してしまいました。相反する目標が更なる問題を生んでしまいます。
開発チームは変化を生み出し、素早く、より多くの変更を行いたいと思っています。一方で、運用チームは安定を保ち、変化のスピードを遅くすることで安定化を図る場合もあります。結果として、開発と運用で利害が相反するものとなり、全体としてビジネス上のゴールを達成できなくなってしまいます。そのため、協働の文化を育み、ゴールを共有する必要性が要求されるようになりました。
ビジネスの観点から見たDevOpsの価値とは
現在のビジネス環境は、早く変化し、競争が激しく、技術に立脚した事業が増えています。そこで生きるためには、企業は技術を生かすだけではなく、技術を継続的に発展させる必要があります。
DevOpsは、現在の素早い事業環境の変化に、ITサービスがついていけていない点を示唆しています。アジャイル開発を追求し、より反復的・漸進的・結合的な開発が必要とされています。また、クラウドコンピューティングやスマートフォンの普及に合わせ、開発や運用の手法を変える必要性が指摘されています。DevOpsの導入によって、より素早くITサービスが開発・運用され、顧客へ価値を提供できるよう期待されています。
Devops は、自社の経営層や顧客と言った利害関係者の要求に応えるため、IT組織全体のパフォーマンスを向上させ、安定性と柔軟性をもたらします。2017年の調査では、DevOpsの導入が収益性・市場シェア・生産性といった分野で高いパフォーマンスにつながっていると報告しました。また、DevOpsが組織の文化や従業員の意欲を高めると言った研究もあります。
企業における様々な立場から見たDevOpsの意味
DevOpsは、立場によって異なって見えるため、定義が難しいという特徴があります。以下に、各利害関係者から見たDevOpsの価値について述べます。
IT組織の管理者層
DevOpsは IT組織全体の効率性を高める取り組みであり、ビジネス上の成果を得るために全員が共同して動くための施策です。
経営層
企業はIT組織が相反する二つのゴールを同時に達成したいと考えています。品質の高いソフトウェアをより早くリリースする一方、安定で信頼できる安全なITサービスを顧客に届けます。
開発者
アジャイル開発に携わっている開発者は特に、DevOpsを継続的デリバリーの一環として理解しています。一日に何度も本番環境にリリースできるような状態を目指しています。
IT運用
開発チームとの連携を改善する機会ととらえています。自動化・セルフサービス・プロアクティブな監視機能の使用を増やすチャンスと認識されています。
運用・情報セキュリティ・サポート
運用部門は開発ライフサイクルの早い時点から開発に携わるようになり、非機能要件が開発チームに理解され、それが実装されている旨を確認したいと考えています。
サポート
サポート部門は顧客や営業員と近い関係にあるため、顧客からのフィードバックをより簡単に開発チームに伝達し、問題が解決されたり、変更がリリースされたりした場合に、すぐにコミュニケーションするのを目指します。
DevOpsの導入により製品リリース速度を上げ、IT資源の無駄を省く
DevOpsは組織に対し、主に三つの価値を齎します。
- 市場投入にかかる時間の削減。 サイクルタイムの減少とデプロイ頻度の向上
- 品質の向上。可用性の向上、リリースの成功率上昇、問題の減少
- 組織としての効率性向上。無駄な活動にかかる時間を減らし、付加価値をもたらす活動を増やす。顧客に価値をもたらす活動時間の増加
市場投入にかかる時間の削減
IT プロセス ・インスティテュートは2007年に1500社の IT企業に対し調査を行い、生産性の高い組織は、そうでない企業に比べ5~7倍の違いがあると報告しました。リリースの回数は14倍、失敗率は半分、修正率は4倍、深刻な問題は10分の1、監査で繰り返し同じ指摘を受ける回数が4分の1、指摘が5分の1、締め切りを守る割合は8倍高いという、優れたパフォーマンスを示しています。
優れた企業の特徴として、問題を素早く解決する点が挙げられます。つまり、優れた組織はより優れた組織になっていくのです。DevOpsを実装した企業は、そうでない企業に比べ、数十倍のオーダーで優れています。インターネット企業では特に顕著であり、Amazonでは1日2000回のデプロイが行なわれ、成功率が99.999%だったという報告が知られています。
デプロイ頻度の高さは、ビジネス上の競争優位につながります。アイデアを製品として素早く顧客へ届けられるようになり、また、製品を最適化するための実験が並行的に多数行えるからです。9ヶ月に1回のデプロイをする企業と、1日20回デプロイしている企業では、どちらに競争力があるかは火を見るよりも明らかです。
Intuitの創業者は、全ての従業員はできるだけ早い速度で実験を行うべきだと主張しています。以前は、消費者部門のWebサイト運用で1年に7回のリリースを行っていました。DevOpsを導入すると、ピーク時期にあたる3ヶ月の間に165回のリリースを行えるようになったといいます。Webサイトの成約率が50%アップし、従業員の満足度も向上しました。
多くの企業ではピーク時のリリースを避けるものですが、上記のケースでは、ピーク時でもリリースが実施できた点が注目に値します。例えば、小売店はセール時期にあたる10月から1月はリリースを行いません。しかし、成約率を高めるための施策を導入するには、ピーク期こそが売り上げを伸ばす時期であり、そこでリリースが行える技術があれば、競争優位につながるのです。
IT資産の無駄を削減
開発や運用まわりで、多くの無駄が発生しているのは明らかです。具体的には、リードタイムの長さ、引き継ぎのまずさ、計画していない作業ややり直しが含まれます。ある試算では、DevOpsの導入は、それにかかる費用の5倍にあたるコストが削減可能であり、1年に3億ドルの価値に該当すると報告されました。
無駄な作業はコストだけにとどまらず、人の心を蝕みます。いわゆるデスマーチにはまると、誰にも感謝されず、ストレスがたまる環境に陥ります。監査が入った場合は、さらにストレスは高まります。経営層は開発・運用・セキュリティといった部門がよく管理され、プロセスの改善を促進する義務があるのです。
ストレスの高い環境では、低いパフォーマンスは避けられません。技術者の意欲が下がり、無効力感を生み、生活の全てにストレスを与えてしまいます。健康の問題、社会問題、家庭での苛立ちなど、健康的な生活が維持できなくなってしまいます。多くの技術者が労働環境を改善したいと願ったときに、それが重要ではないと経営層に判断されてしまうのは残念でなりません。DevOpsが人間として苦しい環境を改善するきっかけとなる期待が持たれています。
まとめ
DevOpsは開発・運用チームの作業を効率化させるだけではなく、製品リリース速度の向上による顧客への価値を増大させ、IT資源の無駄を省いてコスト削減を進めるというビジネス上の価値があります。DevOpsは様々な利害関係者にとって異なる意味合いがありますが、それぞれに魅力が存在します。