継続的デリバリー(けいぞくてきデリバリー、英語: continuous delivery、CD)とは、チームが短いサイクルでソフトウェアを生産し、いつでも確実にソフトウェアをリリースできるようにし、ソフトウェアをリリースする際には、手動で行うソフトウェアエンジニアリングのアプローチである[1][2]。これは、ソフトウェアの構築、テスト、リリースをより迅速かつ頻繁に行うことを目的としている。このアプローチは、運用中のアプリケーションをより段階的に更新できるようにすることで、変更を提供するためのコスト、時間、リスクを削減するのに役立つ。継続的デリバリーを行うためには、簡単で再現性のあるデプロイメントプロセスが重要である。

継続的デリバリーは継続的デプロイとは対照的で、ソフトウェアは同様に短いサイクルで生産されるが、手動デプロイメントによってリリースを行う。

デプロイ・パイプライン

編集
 
継続的デリバリーのプロセスを説明した図

継続的デリバリーは、デプロイ・パイプラインを通して可能になる。デプロイ・パイプラインの目的は、3つのコンポーネント、可視性(visibility)・フィードバック・継続的なデプロイからなる[3]

  • 可視性 – デリバリーシステムのすべての側面(ビルド、デプロイ、テスト、リリース)がチーム内のすべてのメンバーの目に見えるようになり、協力が促進される。
  • フィードバック – チームメンバーが可能な限り早く問題を認識することができるため、できるだけ早く問題を解決できるようになる。
  • 継続的なデプロイ – 完全に自動化されたプロセスを通すことで、任意のバージョンのソフトウェアをどの環境にもリリースできるようになる。vOpsとの関係

DevOpsとの関係

編集

継続的デリバリーとDevOpsは意味が似ていて混同されることが多いが、2つの異なる概念である[4]。DevOpsはより広い範囲を持ち[5]、文化的な変化、具体的にはソフトウェアデリバリに関わる様々なチーム(開発者、運用、品質保証、管理など)の連携や、ソフトウェアデリバリのプロセスの自動化を中心としている。一方、継続的デリバリーは、デリバリーの側面を自動化するアプローチであり、異なるプロセスをまとめて、より迅速かつ頻繁に実行することに重点を置いている[6]。このように、DevOpsは継続的デリバリーのプロダクトであり、CDはDevOpsに直接流れていく。

継続的デプロイとの関係

編集

継続的デリバリーとは、手動リリースによっていつでもデプロイできるソフトウェアをデリバリーする能力のことで、自動デプロイメントを使用する継続的デプロイメントとは対照的である[7]Martin Fowlerによると、継続的デプロイメントには継続的デリバリーが必要である[8]。学術的な文献では、手動と自動のデプロイ方法によって、この2つのアプローチを区別している[2][9]

参照

編集
  1. ^ Chen, Lianping (2015). “Continuous Delivery: Huge Benefits, but Challenges Too”. IEEE Software 32 (2): 50–54. doi:10.1109/MS.2015.27. 
  2. ^ a b Shahin, Mojtaba; Ali Babara, Muhammad; Zhu, Liming (2017). “Continuous Integration, Delivery and Deployment: A Systematic Review on Approaches, Tools, Challenges and Practices”. IEEE Access 5: 3909–3943. arXiv:1703.07019. Bibcode2017arXiv170307019S. doi:10.1109/ACCESS.2017.2685629. 
  3. ^ Duvall, Paul (2012). “Continuous Delivery: Patterns and Anti-Patterns in Software Lifecycle”. Refcardz. オリジナルのJune 19, 2018時点におけるアーカイブ。. https://web.archive.org/web/20180619062324/http://www.dccia.ua.es/dccia/inf/asignaturas/MADS/lecturas/10_Continuous_Delivery_Dzone_Refcardz.pdf October 9, 2015閲覧。. 
  4. ^ Hammond, Jeffrey (9 September 2011). “The Relationship between DevOps and Continuous Delivery”. Forrester Research (Forester). http://blogs.forrester.com/jeffrey_hammond/11-09-09-the_relationship_between_dev_ops_and_continuous_delivery_a_conversation_with_jez_humble_of_thought. 
  5. ^ Humble, Jez; Farley, David (2011). Continuous Delivery: reliable software releases through build, test, and deployment automation. Pearson Education Inc.. ISBN 978-0-321-60191-9 
  6. ^ Swartout, Paul (2012). Continuous Delivery and DevOps: A Quickstart guide. Packt Publishing. ISBN 978-1849693684 
  7. ^ Chen, Lianping (2017). “Continuous Delivery: Overcoming adoption challenges”. Journal of Systems and Software 128: 72–86. doi:10.1016/j.jss.2017.02.013. 
  8. ^ bliki: ContinuousDelivery”. martinfowler.com. 2015年10月29日閲覧。
  9. ^ Shahin, Mojtaba; Babar, Muhammad Ali; Zahedi, Mansooreh; Zhu, Liming (2017). “Beyond Continuous Delivery: An Empirical Investigation of Continuous Deployment Challenges”. 2017 ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). pp. 111–120. doi:10.1109/ESEM.2017.18. ISBN 978-1-5090-4039-1 

参考文献

編集

関連項目

編集