コンテンツにスキップ

DevOps (DevOps)

DevOpsとは、開発(Dev)と運用(Ops)の垣根を取り払い、高品質なソフトウェア価値を迅速かつ継続的に提供するための文化、運動、技術的プラクティスの体系である。CI/CDやテスト自動化などのプラクティスを通じて変更から本番稼働までの時間を短縮し、開発が重視する変更速度(スループット)と運用が重視するシステムの安定性を協調によって両立させる。文化、自動化、測定、共有を中核とし、テストの早期実施(シフトレフト)やパイプラインによる迅速なフィードバックループによって欠陥修正コストの削減とリリース頻度の加速を図る。さらに単なるツールの導入にとどまらず、運用部門やビジネス部門(BizDevOps)を統合した組織横断的な学習サイクルの確立と、自動化範囲や品質基準の共有に基づく成熟度の向上を通じて、市場変化への早期適応と真の成果創出を実現する。

  • 顧客との密接な関わりと「継続的」な実践(統合、デプロイ、デリバリーなど)の採用により、伝統的なアプローチとは異なる手法である。継続的デリバリーの実現により新機能の投入頻度を高め、顧客行動や市場変化の早期検知を可能にする[1]。
  • 開発チームと運用チームの協力を促進し、システム開発・管理・サポートの連携を円滑にする。開発が重視する「変更速度(スループット)」と運用が重視する「システムの安定性」を対立させず、両者を統合して高めるアプローチをとる[2]。
  • 単なるインフラの自動化やツールチェーンの導入にとどまらず、顧客と直接対話する運用部門やサポート体制との連携を深めることが不可欠である[1]。さらに開発と運用の統合にとどまらず、ビジネス部門も含めた継続的な学習サイクルの確立(BizDevOps)が真の成果創出につながる[1]。
  • 文化、自動化、測定、共有、サービスが主要な側面として特定されている。DevOpsは組織横断的なコラボレーションと自動化によるフィードバックサイクルの最適化を目指す取り組みでもある[3]。
  • 自動テスト、継続的インテグレーション(CI)、継続的デリバリー(CD)などの自動化プラクティスを通じて、手戻りやデプロイに伴う不安を低減する[2]。デリバリーパイプラインの中心にテスト戦略を据え、ユニットテストの自動化から統合テスト、システムテスト、非機能テストへと段階的に範囲を拡大することで、デリバリーの速度と安全性を高める[3]。
  • 開発プロセスの早期段階にテスト活動を組み込む(シフトレフト)ことで、欠陥修正コストを削減し、安定した本番稼働を支える[3]。また、手動承認プロセスやコードレビューの過剰なオーバーヘッドは、トランクベース開発やペアプログラミングなどの自動化・協調プラクティスによって解消を図る[3]。
  • 4つの主要な指標(FKM)を用いることで、DevOpsの導入成熟度やソフトウェアデリバリーのパフォーマンスを定量的に把握できる[2]。チームのDevOps能力は、テスト自動化の適用範囲、CI/CDパイプラインの活用度、チーム間の品質基準共有度、ガバナンスの整合性など多段階の成熟度モデルによっても評価される[3]。
  • チーム間の透明性を高め、責任の共有と頻繁なフィードバックループを回す文化的変革が不可欠とされる[2]。
  • 所属タグ: Automation CI/CD Testing Culture
  • カテゴリー: Related Fields
  1. Large-Scale Agile Transformation: A Case Study of Transforming Business, Development and Operations(ライセンス: CC BY 4.0) ↩ ↩2 ↩3

  2. Measuring Software Delivery Performance Using the Four Key Metrics of DevOps — 「DevOpsは、開発と運用を近づけ、新しいソフトウェアをより迅速に運用環境に投入することを目的として、業界で非常に人気があります。」(訳)(ライセンス: CC BY 4.0) ↩ ↩2 ↩3 ↩4

  3. Exploring the Connection between the TDD Practice and Test Smells: A Systematic Literature Review — 「自動化とテストは、DevOpsムーブメントの中核を成しています。」(訳)(ライセンス: CC BY 4.0) ↩ ↩2 ↩3 ↩4 ↩5