継続的デプロイ

継続的デプロイ英語: Continuous deployment; CD)は自動化されたデプロイによって高い頻度で最新のソフトウェア機能を提供し続けるソフトウェア開発手法運用手法である[1][2][3]。すなわち、自動化により、開発された最新のソフトウェアをユーザーが常に利用可能にしておく手法である。開発されたソフトウェアを絶え間なく、継続的にデプロイし続けることから継続的デプロイと呼ばれる。

開発の終了と運用の開始を継ぎ目なく結ぶ方法であり、開発と運用の境界を無くすDevOpsの一種である。

継続的デプロイは継続的デリバリーに似ているが、異なるものである。継続的デリバリーも同じようにソフトウェアの機能を頻繁にデリバリーし、デプロイ可能にするが、実際のデプロイは行わない[4]

Gitレポジトリ連携[編集]

継続的デプロイではしばしば、Gitレポジトリへのpushをトリガーとした自動デプロイが行われる。

例えばGitHubはWebhookあるいはGitHub Actionsによってpushに対応したアクションを実行できる。各クラウドプラットフォームはAPIによるデプロイに対応しているため、アクション内で対象へデプロイをおこなうことでpushに対応した自動デプロイが可能になる[5]

参考文献[編集]

  1. ^ 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. doi:10.1109/ACCESS.2017.2685629. 
  2. ^ Holmstrom Olsson, Helena; Alahyari, Hiva; Bosch, Jan (2012). “Climbing the "Stairway to Heaven" -- A Mulitiple-Case Study Exploring Barriers in the Transition from Agile Development towards Continuous Deployment of Software”. Proceedings of the 2012 38th Euromicro Conference on Software Engineering and Advanced Applications (IEEE Computer Society): 392–399. doi:10.1109/SEAA.2012.54. ISBN 978-0-7695-4790-9. 
  3. ^ Claps, Gerry Gerard; Berntsson Svenssonb, Richard; Aurum, Aybüke (2014). “On the journey to continuous deployment: Technical and social challenges along the way”. Information and Software Technology 57: 21–31. 
  4. ^ Shahin, Mojtaba; Ali Babar, Muhammad; Zahedi, Mansooreh; Zhu, Liming (2017). “Beyond Continuous Delivery: An Empirical Investigation of Continuous Deployment Challenges”. Proceedings of the 11th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement: 111–120. doi:10.1109/ESEM.2017.18. 
  5. ^ 例: GitHub Actions => AWS ECS AWS Open Source Blog. "Continuous delivery of container applications to AWS Fargate with GitHub Actions"