敏捷開發與 DevOps 之間有何差異?

敏捷方法和 DevOps 是兩種互補的實務,可推動軟體開發各方面的效率和可預測性。敏捷方法是一種反覆式軟體開發方法,專注於協同合作、快速軟體發佈和客戶意見回饋。這是一種文化和管理理念,旨在讓每位團隊成員都專注於持續改進和向客戶交付價值。DevOps 是一種軟體交付方法,可消除現有開發團隊和營運團隊之間的資訊隔閡。DevOps 團隊使用工具和實務來自動化有史以來需要手動進行且緩慢的程序,例如部署程式碼或佈建基礎設施。這些工具和實務可提高組織快速交付應用程式和服務的能力。

閱讀有關 DevOps 的資訊 »

敏捷方法與 DevOps 之間有何相似之處?

敏捷方法出現於 2000 年,旨在回應傳統、更嚴格的軟體開發方法的限制。2001 年發佈的「敏捷軟體開發宣言」概述了其核心價值觀、原則和實務。敏捷實務專注於客戶協作、迅速變更、持續交付和反覆開發。

DevOps 源於敏捷實務,並因為需要在營運和開發團隊之間進行更多協作而開發。Patrick Debois 於 2009 年開創了 DevOps。Debois 在敏捷實務的原則上建置,但將其擴充至包括營運和自動化。DevOps 透過提供額外的專注領域,來支援敏捷實務。 

接下來,我們將介紹 DevOps 與敏捷實務之間的更多相似之處。

目標

DevOps 和敏捷方法都專注於改善軟體開發和交付程序。他們還可促進協作、效率和持續改善。他們都使用跨職能協作來提供意見回饋迴圈,並不斷改善工作。兩者都使用精益原則,來精簡操作和最大化效率。

DevOps 和敏捷實務鼓勵團隊實作改善項目、協作並減少瓶頸。這使得這兩種方法都可在保持品質的同時加速軟體開發。

品質保證

敏捷和 DevOps 方法都重點放在測試上,以確保軟體的可靠性。兩者都專注於測試程式碼變更,以儘早偵測問題。單元測試、功能測試、效能測試、驗收測試和整合測試都很常見。

透過在整個開發程序中專注於頻繁的程式碼測試,敏捷 DevOps 團隊可提供可靠、高品質的軟體。 

持續改善

敏捷實務和 DevOps 促進了學習、成長、增強程序和改善的文化。團隊反覆進行增量變更以改善產品。 

敏捷方法使用回顧等 Scrum 實務,以協助培養改善的文化。例如,在每次反覆之後,團隊都會反思其做得很好及可以改善之處。他們確定未來的行動項目,以改善生產力、客戶滿意度和協作。

同樣,DevOps 團隊也會使用事件後檢閱並監控資料,以找出有待改善的領域。

閱讀有關 Scrum 的內容 »

主要差異:敏捷實務與DevOps

DevOps 和敏捷實務是軟體交付生命週期中互補方法。他們透過專注於不同的原則和實務,以不同的方式滿足客戶需求。

作用

敏捷方法專注於增量軟體開發。它鼓勵團隊與客戶合作、創造價值並快速回應變更。團隊使用敏捷實務,有效地回應不斷變化的客戶需求和軟體開發中的市場需求。

DevOps 包括敏捷軟體開發文化中的營運團隊。營運角色是部署軟體並將其交付給最終使用者。如果軟體經常變更,則營運團隊也必須跟上。他們必須管理軟體環境組態變更,隨著應用程式的擴展,這會變得越來越具挑戰性。

DevOps 可打破孤島,並專注於開發和營運團隊之間的協作。各種工具和技術提高了部署軟體的靈活性和效率。

原則

以下是敏捷方法的四個主要原則或優先事項:

  • 個人和互動優先於程序和工具
  • 工作軟體優先於全面的文件
  • 客戶協作優先於合約協商
  • 反應性變更優先於剛性遵循一項方案

敏捷團隊接納變更,並在整個專案生命週期提供增量和反覆開發。他們在早期和整個程序中涉及客戶,這有助於確保團隊適應用戶端請求。

相較之下,DevOps 有五個主要原則 (縮寫為 CALMS):

  • 開發團隊與營運團隊之間協作,以承擔共同的責任
  • 自動化工具和技術,以自動執行重複性任務、減少錯誤並提高效率
  • 精簡的策略,以消除任何增加交付時間的程序
  • 衡量效能,透過收集和分析資料來執行
  • 跨團隊共用資訊和學習內容,以改善整體效能和創新

實務

敏捷方法將任務分割成稱為案例的較小單位。敏捷團隊將在稱為衝刺的短暫反覆運作期間工作。 每個衝刺都會為軟體或產品建立新的、可運送的增量。團隊成員參與每日站立會議以進行協調。同樣,敏捷方法使用一系列定期回顧來改善和實現效率。

透過組織變更管理來連線敏捷交付

DevOps 會儘可能自動化建置、測試和部署的程序。這可支援頻繁發佈新軟體版本。持續整合會將程式碼合併到共用儲存器,這有助於確保開發人員定期測試程式碼。持續交付使用部署管道,一次性部署到多個環境。 

DevOps 還會使用基礎設施即程式碼 (IaC),因此團隊可以將管理和佈建做為軟體開發任務來處理。透過監控基礎設施和應用程式,開發人員可發現潛在問題並進行疑難排解以做出改善。

技能

敏捷團隊成員需要適應性強,靈活且良好的溝通者。大多數團隊成員也具有跨職能技能,並且可以跨多個領域工作以完成產品。溝通至關重要,因為敏捷團隊必須有效地給予意見回饋並做出回應。

DevOps 團隊需要安全感知、監控、自動化知識和操作技能等技能。DevOps 團隊成員可撰寫 IaC 指令碼,並開發可監控交付管道的工具。維護自動化工作流程對 DevOps 至關重要。 

DevOps 團隊需要對軟體部署自動化有更多技術性的理解。敏捷團隊包括非技術成員,例如業務分析師和專案經理。

敏捷實務和 DevOps 如何協同運作?

在結合 DevOps 使用營運團隊的情況下,敏捷方法的協作方法會進一步延伸。當團隊共同合作時,敏捷團隊會開發 DevOps 隨後會交付給最終使用者的軟體。敏捷開發人員提供 DevOps 透過持續交付和自動化整合和部署的軟體增量。開發人員具有編寫軟體測試,以及維護建置和部署管道的擁有權。

差異摘要:敏捷實務與DevOps

 

敏捷實務

DevOps

作用

敏捷程序使用反覆運作方法,可快速有效地演進以回應客戶需求。

DevOps 實務聯手開發和營運團隊,藉助自動化進行持續部署。

原則

敏捷思維有四個核心原則:人員、客戶協作、工作軟體和反應式開發。

DevOps 有五個原則:文化、自動化、精益原則、衡量和共用。

實務

敏捷開發將任務分解成案例,並在站立會議中每天進行溝通。團隊將在稱為「衝刺」的短時間內工作,以管理複雜的專案並提高效率。

DevOps 軟體開發方法強調持續交付、自動化、監控和持續整合。

團隊技能

敏捷的團隊成員具有靈活性、適應性、多功能性和強大的溝通能力。他們可能是技術性,也可能是非技術性。

DevOps 團隊成員使用 IaC 來自動化程序、部署軟體,而且通常都是技術性。

AWS 如何支援您的敏捷實務和 DevOps 工作?

Amazon Web Services (AWS) 提供一組靈活的服務,讓公司可以使用 DevOps 實務快速且可靠地建置和交付產品。這些服務可讓您更輕鬆地佈建和管理基礎設施、部署應用程式的程式碼、自動化軟體發行程序,以及監控應用程式和基礎設施的效能。如需詳細資訊,請參閱有關 DevOps 和 AWS 的內容。

以下是一些可為您的 DevOps 工作提供支援的 AWS 產品和服務:

  • AWS CodePipeline 是一項持續整合和持續交付服務,可快速可靠地提供應用程式與基礎設施的更新
  • AWS CodeBuild 是一項全受管建置服務,可編譯來源碼、執行測試,並產生可立即部署的軟體套件
  • AWS CodeDeploy 可自動化程式碼部署到任何執行個體,包括 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體和內部部署伺服器

立即建立帳戶,開始使用 DevOps 和 AWS。