DevOpsの目的と背景を調べてみた

はじめに

いま、DevOpsの勉強をしており、「そもそもDevOpsって何?」「DevOpsで達成したいことは?」という自分の疑問を解決するため、主に自分への備忘録として記事にしました。

DevOpsの背景

  • 会社、組織はビジネスを成功に導きたい
  • 成功とは、価値の高い製品・サービスを素早く・継続的にユーザーに届けること
  • しかし、ビジネスにおいてDev(開発)とOps(運用)が対立しがち

なぜ対立しがちなのか

  • 組織が持つミッションや評価基準が異なるため
    • Dev(開発): 新しい機能を開発してビジネスを成功に導く
    • Ops(運用): 安定したシステム稼働でビジネスを成功に導く
      • しかも、客からクレーム来て責められるのは運用側
  • その結果としてサイロ化などにつながってしまう

DevOpsの目的

  • Dev(開発)とOps(運用)の対立を解消すること。
  • 対立の解消により、それを実現することにより下記を両立できる
    • 新たな実験や革新を素早く安全に顧客に対して価値にすること
    • 同時に世界トップレベルの安全性、信頼性、安定を兼ね備える
  • その結果として「市場で勝ち抜く」ことを実現することがゴール

目標

  • 下記により確実なリリースを以前よりも迅速に高い頻度で可能とする組織体制を構築する
    • ソフトウェアを迅速にビルドおよびテストする文化と環境
  • 定量的な指標として
    • リードタイム: Commitされたコードが本番環境にデプロイされるまでの時間
    • デプロイ頻度: 本番環境へのデプロイ頻度
    • MTTR: エンドユーザに影響する障害が発生してから回復するまでの時間
    • 変更失敗率: リリースが失敗(あとで修正が必要になる等)する割合

どうやって対立を解決するか

  • ソフトウェアデリバリーに関わるさまざまなチーム(開発、IT運用、品質保証・QA、管理など)の協力を育む
  • ソフトウェアデリバリー・プロセスを自動化する(=継続的デリバリー)

アジャイル開発との関係

  • 関係が深く概念も似ているが、方法が異なる
    • アジャイル開発: 考え方と学びを変えることで組織改革につなげる
    • DevOps: 組織改革を強化することで目標を達成する
  • アジャイル開発の普及とともにDevOpsの考え方が広まった
    • 小さな変更を頻繁にリリースすることの多いアジャイル開発では、Dev(開発)とOps(運用)が連携を密にする必要があったため
  • DevOpsに関わる多くの考え方はアジャイル開発の潮流のなかから生まれた。

所感

  • "Dev(開発)とOps(運用)の対立"に焦点をあてた、"迅速、高品質、継続的な価値提供の方法論"がDevOpsなのかもしれない
    • 対立の解消が主目的と思ったが違うのかもしれない
      • そう考えた時、自動化の部分の恩恵がイマイチ腑に落ちなかった
      • 最初はそうだったのかもしれないが、定義が変わったのかも
    • あくまで一番達成したいことは迅速、高品質、継続的な価値の提供
    • それのボトルネックになりやすい部分がDev(開発)とOps(運用)の対立だから焦点をあてたということか。
    • まぁでもよく考えれば当たり前の話ではある
      • Dev(開発)とOps(運用)が仲良くなっても価値提供ができなければ意味がない

参考

ja.wikipedia.org

cloudbees.techmatrix.jp

www.slideshare.net