DevOps 教學課程 - 簡介

DevOps 中有許多不同的階段、概念和元件,而此 DevOps 教學課程是了解什麼是 DevOps 及其如何協助改善軟體傳遞流程的絕佳方式。

了解 DevOps

為了開始進行此 DevOps 教學課程,我們將介紹一些基本定義,協助您了解什麼是 DevOps 及其與整體軟體開發流程有何關聯。

  • DevOps 是一項軟體開發實務,可促進開發與運維間共同作業,從而提升軟體傳遞的速度與可靠性。DevOps 通常指一種文化,可串連人、流程和技術,以持續傳遞價值。

    深入了解 DevOps

  • 軟體開發流程可能是高度手動的流程,而使得程式碼發生大量錯誤。開發和運維小組可能經常不同步,而導致軟體傳遞變慢,並讓業務利害關係人感到失望。DevOps 可為軟體開發、部署和維護過程中的所有相關工作創造效率。

    串連開發與運維的運作有助於提高可見度、更準確地符合需求、改善溝通並加快上市速度。

  • DevOps 會銜接開發與運維間的運作,大幅提升軟體開發到部署的效率。DevOps 非常強調自動化,有助於減少整體錯誤數目。

  • DevOps 的宗旨是全面性負責處理專案的所有層面。DevOps 與傳統軟體開發方法較為不同,會銜接開發與運維小組間的運作,這是經常遺漏的部分,可能會嚴重妨礙軟體傳遞流程。

    藉由提供開發和發行軟體的全方位架構,DevOps 就可以串連開發與運維小組的運作,兩者運作不連貫可能會使軟體傳遞產生挑戰並降低效率。

  • 雖然 DevOps 和敏捷式開發都是軟體開發實務,但其重點略為不同。DevOps 是一種文化,旨在為軟體開發、部署和維護過程中所有利害關係人創造效率。敏捷式開發則是一種精實生產流程,旨在提供軟體開發生產架構。敏捷式開發通常只涉及開發小組,而 DevOps 的範圍則延伸到軟體生產和維護過程中的所有利害關係人。DevOps 和敏捷式開發可以並用,來營造出高效率的軟體開發環境。

    深入了解 DevOps 與敏捷式開發的比較

利用這些工作來加深您對 DevOps 的了解

此 DevOps 教學課程的每一節都包含一些工作,來協助您逐步建立 DevOps 實務。請花點時間回答下列問題:

  • 您在軟體開發和部署時面臨到哪些挑戰?
  • 當您開發和部署軟體時,您希望看到哪些領域的效率獲得改善?

DevOps 實務的基本概念

這份 DevOps 手冊接下來將帶您了解 DevOps 實務中所使用的主要概念。本節將說明並釐清這些主要構成要素。

  • 軟體小組經常使用敏捷式開發,這是與精實生產有關的傳遞方法。這種開發以簡短的累加式短期衝刺來完成。雖然敏捷式開發與 DevOps 不同,但這兩種方法依然有一些相關之處,敏捷實務和工具可協助提高開發小組內部效率,從而促成整體 DevOps 文化。

    開始使用 Azure Boards 進行敏捷規劃

  • 當小組共同作業時,版本控制是使軟體開發正確並有效率地進行的重要一環。版本控制系統 (例如 Git) 會建立檔案的快照集,讓您永遠都能隨時回復任何版本。有了版本控制系統,您就可以放心不會與目前進行的變更發生衝突。

    開始搭配 Azure Repos 使用版本控制

  • 持續整合是將程式碼完成並認可至系統時所發生之建置和測試自動化的流程。一旦認可程式碼之後,它就會遵循自動化流程來提供驗證,然後只將已測試和驗證的程式碼認可至主要原始程式碼,通常稱為主分支、主要或主幹。持續整合會將此流程自動化,從而大幅提升效率。在合併任何程式碼與主分支之前,就能提早發現任何 Bug。

    開始使用 Azure Pipelines 實作持續整合

  • 持續傳遞是 DevOps 中的基本實務,能夠快速可靠地傳遞軟體。雖然此流程類似於 DevOps 的整體概念,但持續傳遞是一項架構,程式碼的每一個元件完成時都會經過測試、驗證與認可,因此隨時都能傳遞軟體。持續整合是構成持續傳遞的一個流程。

    開始使用 Azure Pipelines 實作持續傳遞

  • 不論是在內部部署還是在雲端,資源的佈建和設定都是環境運作的重要一環。透過流程自動化及使用提供宣告式基礎結構定義的工具 (例如文字型定義檔),小組就能夠以可靠並可重複的方式部署和設定資源。文字定義檔可當做程式碼透過版本控制進行管理,讓您輕鬆地復原、重新建立和終止複雜的環境。Terraform 或 Ansible 之類的技術是實作基礎結構即程式碼的常用解決方案。

    使用 Terraform 在 Azure 上建立基礎結構

    深入了解如何使用 Ansible 搭配 Azure

  • DevOps 的範圍除了涵蓋開發以外,直到傳遞的過程中對軟體都負有責任,包括軟體效能。整個 DevOps 流程會建立意見反應迴圈,最終提供可協助改善未來專案並驗證軟體部署決策的資料點。監視和記錄是重要的構成要素,可支援驗證式學習,進而支援整體方案以一致地努力提高軟體開發和傳遞流程的效率。

    了解如何使用 Azure 監視器來收集和分析遙測資料

  • 在整個生命週期中都會收集意見反應和遙測資料,以協助在下一個週期中做出明確的決定。這項資訊即稱為驗證式學習。驗證式學習可提供新方式的見解,以縮短每個週期的時間長度。收集到的資料接著會用來了解如何提高自動化、改善流程,以及準備好更快並更有效率地部署。

利用這些工作來加深您對 DevOps 的了解

現在您已了解 DevOps 實務中的主要概念,請花點時間回答下列問題:

  • 開發流程有哪些部分需要手動進行,並可靠自動化改善?
  • 有機會將持續整合引進您小組的建置流程嗎?
  • 您的小組目前如何管理基礎結構?流程具有重複與可靠性嗎?還是可使用基礎結構即程式碼來改善?
  • 哪些遙測資料可協助了解您的工作?
  • 哪些其他資料點會支援您的驗證式學習?

建立您的 DevOps 文化

此 DevOps 教學課程的下一個部分將討論如何建立 DevOps 文化。當您準備將 DevOps 帶到業務中時,您可能會發現與目前的軟體傳遞方法有所不同。

新文化不會一夕間建立完成,也不像購買一組新工具那樣簡單。若要讓您的小組了解和練習 DevOps,您可能需要變更目前的小組結構、工作流程和習慣。

了解 Microsoft 如何建立 DevOps 文化

利用這些工作來加深您對 DevOps 的了解

當您考慮在業務中建立 DevOps 文化時,請花點時間回答下列問題:

  • DevOps 可協助協調軟體開發、傳遞和維護過程中的所有利害關係人:在您的組織中,這會包含哪些人?請建立將共同作業的所有人員清單。
  • 如何增進開發與運維間的溝通?請自由發想一些方法來增進利害關係人合作。

DevOps 影片

探索這些影片,以在閱讀完本手冊後深入了解 DevOps。了解如何將 DevOps 完全整合到您的軟體開發流程。

Azure DevOps 簡介

由 Donovan Brown 帶您了解 Azure DevOps 的功能。

使用 Azure Pipelines 建置及部署程式碼

了解為什麼 Azure Pipelines 是管理程式碼持續整合與持續部署 (CI/CD) 的絕佳工具。

搭配 Azure 使用 HashiCorp Terraform 的簡介

學習此快速 DevOps 教學課程內容,了解如何安裝和設定 Terraform 來管理 Azure 基礎架構即程式碼。

開始使用 Azure DevOps

使用一組現代化的開發服務,更快速、可靠地交付軟體。使用所有 DevOps 功能,或選擇最適合您的功能,更敏捷地進行規劃、共同作業,並更快交付。