共用方式為


DevOps 工具鏈

DevOps 工具鏈是一組工具,可讓 DevOps 團隊在整個產品生命週期中共同作業,並處理關鍵的 DevOps 基本原則。

DevOps 工具鏈包含的工具可作為規劃、持續整合、持續交付、營運、協作和回饋的整合單元運作。 您可以在 定義您的 DevOps 技術生態系統中檢閱不同 DevOps 階段的一些 DevOps 技術範例。

DevOps 工具鏈考量事項

  • 當您選取工具鏈時,DevOps 的程式可能已經在整個組織中使用。 您應該在採用適合團隊需求的技術與標準化和避免整個組織異質 DevOps 生態系統的目標之間找到適當的平衡。

  • 您可以採用不同類型的 DevOps 工具鏈:

    • 多合一: 提供可能無法與其他第三方工具整合的完整解決方案。 多合一工具鏈對於開始 DevOps 之旅的組織非常有用。 範例: 完整堆疊 Azure DevOps 工具鏈
    • 客製化: 允許團隊將他們知道和已經使用的現有工具引入和混合到更廣泛的 DevOps 工具鏈中。 整合對於這些類型的工具鏈至關重要,以避免花費不必要的時間在螢幕之間切換、登入多個位置以及在工具之間共享資訊的挑戰。 範例: Azure DevOps 和 GitHub 工具鏈
  • 考慮使用定期更新的工具鏈,並在您需要時透過電子郵件或線上入口網站提供協助。 這是任何處於上市關鍵道路上的產品或服務的要求。

Planning

  • 考慮採用支援 持續規劃 實踐的工具:
    • 發行規劃
    • 史詩和特徵識別
    • 優先順序
    • 判斷
    • 使用者劇本定義
    • 待辦專案精簡
    • 衝刺規劃
    • 每日 Scrum
    • 衝刺審查
    • 回顧

持續整合和持續交付

  • 在實施持續整合 (CI)/持續交付 (CD) 時,請考慮採用支援以下工具:
    • 版本控制系統。 專案中的所有專案都必須簽入單一版本控制存放庫 (例如 Git):程式碼、測試、資料庫指令碼、建置和部署指令碼,以及建立、安裝、執行和測試應用程式所需的任何其他內容。
    • 分支策略
    • 自動化建置
  • 您選擇的存放庫也會受到資料主權/落地需求的影響。 如果您需要將數據裝載在美國以外的國家/地區本機,則在無法使用 GitHub Repos 時,您將需要 Azure DevOps 存放庫。
  • 若要將佈建資源所需的手動設定量降到最低,請考慮採用基礎結構即程式碼 (IaC)。 IaC 可讓您套用測試和版本控制等軟體工程實務,讓基礎結構和部署自動化、一致且可重複。 將腳本和範本保留在原始檔控制之下,就像您維護的任何其他程式碼一樣。
  • 採用 程式碼掃描工具 ,幫助您盡快發現程式碼缺陷。 包括部署前檢查,以便在任何部署之前驗證和確認變更 (範例:「 假設」)功能。
  • CI/CD 工具可加快產品的上市時間。 可讓您平行處理工作並利用雲端託管基礎結構上的彈性可擴展性的工具可增強 CI/CD 流程的效能。
  • 請考慮使用支援 DevOps 效能測量的 CI/CD 工具功能。 儀表板和報告可以追蹤開發流程的各個方面,例如前置時間、週期時間、工作速度等。

持續營運

持續營運是一個重點,可協助組織透過不間斷地交付關鍵服務或功能來維持內部系統和客戶之間輸出的連續性。 持續營運的目標是:

  • 減少或消除計劃性停機或中斷的需要,例如計劃維護、容量最佳化和部署。
  • 在三個方面提高系統的整體可靠性和彈性:人員、流程和工具。

使用雲端原生工具可以:

  • 監控服務效能和可用性的關鍵指標。
  • 獲得數位體驗和客戶洞察。
  • 針對事件、系統復原或擴展產生智慧驅動的回應
  • 自動執行主動維護和部署或系統更新等任務。
    • Azure 自動化 是雲端原生工具,可用來建立事件型自動化來診斷和解決問題。

協作和反饋

  • 快速回饋迴圈是 CI/CD 流程的核心。 CI/CD 工具使用意見反應來解決 CI/CD 工作流程邏輯中的條件,並通常透過儀表板將資訊顯示回使用者。

  • 支援電子郵件通知以及與 IDE 或通訊平台的整合,確保您無需檢查儀表板即可隨時了解正在發生的事情。 確保您可以靈活地配置接收的警報,因為收到太多警報會將它們轉換為背景噪音。

  • 您為共同作業選擇的任何工具都應支援下列共同作業做法:

    • 看板協作
    • Wiki 內容協作
    • ChatOps 協作
    • 團隊室

Azure 登陸區域的 DevOps 工具鏈建議

Azure 登陸區域實作的 DevOps 工具鏈應該考慮先前討論的所有 DevOps 階段:

  • Planning
  • CI/CD (包括基礎結構即程式碼等自動化功能)
  • Operations
  • 合作和反饋

檢閱登陸區域部署的指引,以及選擇登陸 區域採用中選擇實作選項的考慮。

無論選擇何種方法(從小規模開始並擴展或企業規模),企業在設計 DevOps 工作流程和工具鏈時傾向於遵循一些常見的拓撲。

  • 完整堆疊 Azure DevOps 工具鏈: 對於已經在 Microsoft 生態系統中投入大量資金的企業來說,這種拓撲使他們能夠充分利用 Microsoft 產品和服務之間的原生集成並簡化關鍵流程。
  • Azure DevOps 和 GitHub 工具鏈: 此拓撲可讓您同時使用 Azure 和 GitHub 的優勢,作為整合良好的解決方案的一部分。

完整堆疊 Azure DevOps 工具鏈

完整堆疊 Azure DevOps 工具鏈的圖表。

DevOps 階段 Tools
Planning Azure Boards 為開發人員和其他角色提供強大且彈性的規劃功能,包括階層式待辦專案、可自定義的工作流程面板、豐富的程式自定義、小組儀錶板和自定義報告。
CI/光碟 Azure Repos 可讓您建立私人 Git 存放庫,而且它支援不同的 Git 用戶端、分支策略和保護。 Azure Repos 也會在雲端中提供當地語系化的數據落地,以符合歐洲法規。 Azure Pipelines 可讓客戶設定 CI/CD 的自動化管線,包括進階測試報告,並提供多階段管線的強大支援。 Azure Pipelines 中的精細許可權、閘道、自定義檢查和自動化測試結果報告可協助您在組織中強制執行安全性、合規性和安全部署最佳做法,並支援平行步驟執行和延展性。 Azure Artifacts 提供摘要來儲存套件,並檢閱和驗證每個套件以符合安全性目的,也提供細微的許可權控制和稽核。 Azure DevOps 中的 Azure Test Plans 提供瀏覽器型測試管理解決方案,用於探索性、手動和使用者驗收測試。 Azure Test Plans 的使用者通常也會使用 Azure Boards 進行規劃和專案管理。 您可以將使用者劇本和其他需求連結至測試案例,並可以記錄透過測試發現的錯誤。 採用 DevOps 的 Marketplace 擴充功能 ,以使用憑證掃描器、開放原始碼掃描器、錯誤和弱點掃描器等工具改善靜態程式碼分析。
Operations Azure 儀錶板和報告 提供自定義報告,以協助您監視關鍵服務效能計量。 Azure 診斷Application Insights 是追蹤 Azure 資源健康情況和狀態的標準方法。 Azure 監視器 提供集中式監視和管理。 Azure 自動化 可用來建立事件型自動化,以診斷和解決問題。 適用於雲端的 Defender DevOps 會使用中央主控台,讓安全性小組能夠跨多管線環境 (包括 Azure DevOps 和 GitHub) 保護應用程式和資源,從程式碼到雲端。
合作與回饋 Azure DevOps Wiki 可讓您與其他小組的成員共用資訊,並支援共同作業編輯其內容和結構。 Azure Boards 提供工作流程看板共同作業,以及待辦專案中註解和討論的支援。

Azure DevOps 和 GitHub 工具鏈

Azure DevOps 和 GitHub 工具鏈的圖表。

DevOps 階段 Tools
Planning Azure Boards 提供穩定且可調整的解決方案,用於規劃、存放庫管理、數據視覺效果和階層式工作專案組織。 它 會與 GitHub 整合,因此您可以連結工作專案和 GitHub 認可。 它也可讓您選擇理想的工作流程,無論是簡單的現成工作流程,還是您使用強大且彈性的 Azure Boards 自定義引擎建置的自定義工作流程。 當您需要視覺化數據時,Azure Boards 可協助您輕鬆建置和設定自定義儀錶板,並監視整個專案生命週期的進度。
CI/光碟 使用 GitHub Enterprise (GHE) 版本的 GitHub,其中包括 GitHub RepoGitHub Advanced Security (GHAS)GitHub Advanced Security for Azure DevOps。 GHAS 包括 CodeQL程式碼掃描秘密掃描相依性檢閱。 GHE 也提供 Codespaces,這是可用來開發程式碼的雲端 IDE,而且可以取代組織通常包含在完整堆疊 Azure DevOps 案例中的 Visual Studio Code。 如果您的存放庫位於 GitHub 中,您可以使用 GitHub Actions 將非建置工作流程自動化。 如果您有更複雜的案例,需要從 GitHub 外部存取程式代碼,或需要集中管理工作流程範本和建置管線,請採用 Azure Pipelines。 針對 Azure Boards,您可以 將 Azure Pipelines 與 GitHub 存放庫整合。 若要瞭解如何整合 Azure DevOps 和 GitHub,請參閱 使用 Azure DevOps 和 GitHubGitHub Packages 是一種軟體套件服務,可讓您私下或公開託管自己的套件。 GitHub 提供容器登錄支援,用於代管 Docker 或 OCI 映像檔。 您需要存取權杖才能發佈、安裝或刪除套件,並確保套件生命週期管理安全。 若要自動化套件,您可以將 GitHub 套件與 GitHub Actions、GitHub API 和 Webhook 整合,以建立 DevOps 工作流程,其中所有內容都包含在一個介面中。
Operations GitHub Insights 會根據 GitHub Enterprise Server 執行個體中的資料提供分析報告,以協助您瞭解和改善軟體傳遞程式。 針對登陸區域診斷和管理,請使用 完整堆疊 Azure DevOps 案例中建議的 Azure 服務。
協作和反饋 您可以使用 GitHub 討論來 共用問題、想法、交談、徵求意見 (RFC)、資源規劃和公告。 使用 Azure Boards 輕鬆建置和設定自定義儀錶板,並監視整個專案生命週期的進度。 採用 Microsoft Teams 以獲得完整的團隊協作體驗。