DevOps 既是實務也是理論,其奧義結合了開發人員與 IT 運作團隊人員的溝通與團隊合作。一般而言,開發人員和 IT 運作人員是截然不同的兩個團隊,一旦軟體發生問題,兩個團隊往往會互相指責。DevOps 的宗旨就是要破除這樣的陋習,讓兩個團隊攜手合作。此種合作模式的成果就是能為客戶提供更穩定、更可靠的軟體。
在 DevOps 的世界中,連續完成任務 (CD) 的作用就是要運用敏捷方法,將發佈軟體這類簡短週期的既定流程縮短。CD 常用的其中一種結構是微型服務,這是能夠獨立建構的結構,部署於系統中可以讓系統發揮敏捷度。
流程
DevOps 的構成要素不一而足,其中,連續完成任務的重要性即便不是最高,也不容小覷。CD 這種方法是運用全新程式碼寫出一個新的流程,在自動化作業過程中的不同階段及其尾聲進行測試,而且,這個流程可以安全地進入生產系統中。這樣不但能提高軟體本身的穩定度,也能加快對使用者發佈軟體的速度。市面上有許多流程工具;其中, Azure DevOps Pipelines 是逐漸開始嶄露頭角的一款,在 Microsoft 使用者中尤其受歡迎。
軟體發佈速度
軟體發佈速度是 DevOps 和 CD 的一項主要特點,能透過敏捷流程即時掌握客戶反映的意見,接著進行變更並發佈客戶所需的功能。CD 相當重視客戶反映的意見,而要得到這類意見,就要進行使用者測試。因此,以軟體的建構與發佈為中心打造自動化作業,自然就能夠提高速度。
測試
將軟體傳遞作業自動化之後,就會因測試量與測試程度的緣故大幅降低生產失敗率。DevOps 過程中的問題最好能發生在發佈量產程式碼之前,這正是進行測試的必要性。連續完成任務比較容易在量產前發現程式碼錯誤,原因在於撰寫測試所用的程式碼和版本控制所用的程式碼一致,而且會同步更新。CD 需要的測試分為不同的階段。舉例來說,流程中會運用諸如 Jenkins 之類的工具測試成品的實際建構。
摘要
連續完成任務能夠加快新軟體與新軟體功能的上市速度,因此是 DevOps 文化中相當重要的一環。連續完成任務與連續整合 (常稱為 CI/CD) 透過 Git 之類的工具協同作業,讓多位開發人員能夠共用同一個存放庫。軟體開發與部署短期內勢必少不了 DevOps,而在發展過程中,連續完成任務則是非常重要的關鍵。