瞬息萬變的商業環境,客戶需求隨時更迭,為了縮短響應周期、促進工作效率,企業重新審視專案管理與技術實踐的方式,後續衍生出的敏捷軟體開發(Agile software development)、敏捷管理(Agile Management)等方法論,讓企業組織能夠迅速「適應」變化中的專案開發、IT 系統、生產流程與營運模式。

傳統開發

軟體開發過程是確定的、可預測,在一開始收集到需要的資訊並制定好計劃,然後執行計劃就應該可以成功。如果開發失敗一定是在一開始就沒有做好,沒收集到必要的關鍵資訊,導致其開發失敗結果。傳統開發模式會試圖引入更多的流程,文件,並且讓每一步都做到萬無一失。

敏捷開發

敏捷軟體開發的世界中,開發中無法 100% 預測充滿多變性的計劃,但可以肯定的是隨著開發的進行,我們會對開發中內容的認識越來越明確。而執行一段時間後常常有發現需要的進階測試及調整的項目,甚至發現之前的規劃方向不對,即刻調整計劃。 傳統開發的缺點無法緊跟市場趨勢,容易因為過長的開發時間導致被市場淘汰,而敏捷開發核心是快速跌代、擁抱瞬息萬變的市場變化。

 

CI / CD 替企業帶來的更多創新及測試


持續整合 ( 編碼 ➔ 構建 ➔ 整合 ➔ 測試 ➔ 交付 ➔ 部署 )  

 

如上圖所示:「CI 持續整合(Continuous Integration)」、「CD 持續交付(Continuous Delivery)」和「持續部署(Continuous Deployment)」,有著不同的軟體自動化交付週期。

CI 持續整合(Continuous Integration)

CI:最常是指軟體發行程序的建置或整合階段,而且需要自動化元件 (例如 CI 或建置服務) 與文化元件 (例如: 學習經常進行整合)。持續整合的主要目標是更快發現及解決錯誤、改善軟體品質、減少驗證與發行新軟體更新所需的時間。


CD 持續交付(Continuous Delivery)

CD:開發人員不只是自動化單元之類的測試,他們將應用程式更新,並部署到客戶之前可以從多方面進行驗證更新。這些測試可能包含 UI 測試、負載測試、整合測試、API 可靠性測試等。這可以協助開發人員更徹底地驗證更新,並提前發現問題與改善問題。如果善用雲端服務,要自動建立和複寫多個測試環境,不但輕鬆而且經濟實惠,這優勢於只在現場部署環境是很難達到的。

持續部署(Continuous Deployment)

持續部署:當交付的程式碼通過評審之後,自動部署到生產環境中,不間斷部署是持續交付的最高階段。

CD 持續交付與 持續部署的關係

持續部署的變更都會被自動部署到生產環境中。持續交付則為所有的變更都可以被部署到生產環境中,如果要實施持續部署,必須先實施持續交付,但可能出於團隊考量等,可選擇不部署。

 

CI / CD 可以簡化企業對於軟體開發流程,並提高於市場的對應速度和產品可靠性,透過 AWS CodePipeline 全託管服務來快速串接起 CI / CD 流程,使得構建、測試、釋出軟體能夠更加地快捷、頻繁和可靠。企業可以加速流程及降低部署上的成本,讓開發人員可以將更多的心力投入在測試或者創新之上,透過敏捷開發來走向這瞬息萬變的市場環境及客戶需求。
 
市面上所有的雲服務廠商之中,銓鍇國際 CKmates 已整合雲端與敏捷開發整體的優勢,並已落實在新專案開發上,此經驗可提供客戶更快速的開發自有的客製化專案,並持續地根據客戶的運用情境調整,推薦給客戶適合且經濟的 AWS 服務,並進行架構整合,提供完善的雲服務解決方案。

圖片出處:什麼是持續整合?(AWS Taiwan)
延伸閱讀:敏捷開發結合雲端服務,加速企業專案開發