DevOps 考慮
本文提供 Azure 登陸區域中 DevOps 的考慮和建議。
什麼是DevOps
DevOps 是人員、流程和技術的結合,可為開發(開發)和作業(ops)提供持續的價值。 DevOps 方法鼓勵小組共同作業建立可重複的程式,以協助組織有效率且大規模地運作。
在 Azure 登陸區域的內容中,DevOps 會成為引導小組(或小組)負責整個 Azure 登陸區域生命週期管理的架構,例如:
- 如何自我組織並定義與其他小組的界限,以達到自主與治理之間的適當平衡
- 如何持續發展 Azure 登陸區域架構設計 (Conway 的法律)
- 如何規劃、排定優先順序並反覆運算設計架構的實作
- 如何實作 Azure 登陸區域程式代碼的版本控制、持續整合和持續部署
- 如何操作和回應您擁有之系統和平臺的事件
- 您套用至 Azure 登陸區域布建和自我修復的自動化層級
- 如何以敏捷、結果導向的方式與組織中的其他小組共同作業
- 如何建立安全性、品質、以使用者為中心的持續學習的產生文化
檢閱雲端作業模型時所做的決策可能會影響您使用DevOps架構的方式。
DevOps 設計考慮
定義您的 DevOps 架構,或與您的組織的 DevOps 和雲端採用策略保持一致。 包含 DevOps 的定義,以及小組必須遵循的原則和做法。 請務必將DevOps策略連線到您的商務策略。
建立 計量 ,讓您的小組能夠改善其DevOps效能。 高效能小組會使用假設來測試其想法、測量假設的運作方式,然後視需要進行變更。 DevOps 的最終意圖是改善部署頻率、平均套用變更的時間,或還原降級服務的時間等層面。 您必須設計所有這些計量,以最終影響整體商務效能。
根據小組目前的技能,決定您的小組應先實作的 DevOps 做法,並設計藍圖,以累加套用新做法,以協助小組改善其 DevOps 計量。 投資工程功能和資源非常重要。
判斷小組應該用來實作DevOps做法的DevOps工具鏈。 請確定這些工具與您的整體 DevOps 策略一致,以避免異質 DevOps 生態系統的案例增加 Azure 登陸區域或工作負載部署的複雜性。
評估實作的 DevOps 做法和 DevOps 工具在 Azure 登陸區域設計上的效果。
建立整備計劃,以持續拓展小組的技能。 DevOps 模型的全面應用不會立即建立可用的DevOps小組。
判斷最符合您組織 DevOps 策略和雲端作業模型的小組拓撲 ,並建立小組之間的明確界限、責任和相依性。
決定負責 Azure 登陸區域的小組應如何與組織中的其他小組共同作業,以擷取新的 Azure 登陸區域需求,以更新設計和實作、解決事件、將相依性降到最低,以及符合商務優先順序。
DevOps 建議
下列各節包含可協助您在組織內實作DevOps架構的建議。
定義DevOps架構
若要建立 DevOps 架構,請考慮使用已可使用的架構,以一組預先定義的已實作作法開始:
Microsoft DevOps Resource Center 提供一組豐富的定義、做法和功能,可讓您適應 Azure 登陸區域生命週期管理,包括:
Microsoft DevOps Dojo 會建立以四個基礎支柱和八項功能為基礎的 DevOps 分類法:
定義 Azure 登陸區域管理的 DevOps 做法
針對您的 Azure 登陸區域,請考慮下列 DevOps 做法:
- 檢閱如何 以程式代碼管理 Azure 登陸區域的開發生命週期。
- 檢閱 DevOps 空間中 Azure 登陸區域的安全性考慮 。
規劃 DevOps 實作旅程
定義並配合您的 DevOps 實作旅程與組織的 雲端採用計劃。
- 判斷小組目前在下列領域的位置:
- 使用貴組織的雲端採用計劃,為您的小組定義所需的模型。
- 建立反覆式藍圖,以反覆且累加模式實作所需的模型,以符合您組織的 轉換時程表。
實作所需的DevOps計量
識別您將用來測量小組 DevOps 效能的計量。 使用計量來推動小組中與業務成果連線的所需習慣。 建立計量,讓您的小組測量活動的影響。 讓所有專案都能看到關鍵計量,因為透明度可提升信任,並推動與組織目標保持一致。
測量DevOps效能以改善業務影響的計量範例包括:
業務成果:
- 使用 目標與關鍵結果 作為工具,讓您的小組遠離「輸出」思維,並轉向「結果」思維。 例如,您可以使用已部署至 Azure 的原則數目,改善其合規性評等的工作負載數目。
- 客戶或用戶滿意度。 範例包括 Net Promoter Score (NPS)、問卷、面試。
- 業務成長。 範例包括提高獲利率、增加收益,以及新的收益來源取得。
- 人員計量。 範例包括 Employee Net Promoter Score (eNPS)、使用率、保留期和滿意度。
- 成本。 例如,您可以使用降低成本。
軟體傳遞效能:
- 變更的前置時間、錯誤修正、新功能或任何其他變更所需的時間,從構想到部署到生產環境。
- 部署頻率,程式代碼每天的部署會變更為生產環境。
- 平均還原時間,在事件發生后還原生產環境服務所需的時間。
- 變更失敗百分比,導致失敗的生產變更百分比(例如組態變更)。
品質:
- 瑕疵逸出率,用戶識別的瑕疵品數目。
- 非計劃性工作或重新作業,執行非計劃性工作或重新作業所花費的時間百分比。
- 作用中的 Bug,尚未修正的錯誤數目。
- 程序代碼健康情況,尚未經過單元測試的程式代碼百分比。
定義DevOps技術生態系統
您選擇要管理 Azure 登陸區域的生命週期的 DevOps 工具鏈會影響:
- 實作DevOps原則和做法的策略
- DevOps 生命週期的安全性考慮
- Azure 登陸區域生命週期管理的整體架構設計
使用您先前定義的 DevOps 架構,以識別每個 DevOps 程式要使用的工具。 選擇最適合您小組需求的 DevOps 技術,但找出平衡,可讓您在整個組織中實現標準化,但避免在 DevOps 生態系統中過於複雜或異質。
不同 DevOps 階段的 DevOps 技術範例包括:
- 規劃: Atlassian Jira、Atlassian Trello、Azure Boards、GitHub
- 持續整合 (CI) 和測試: Atlassian Bitbucket、Azure Repos、GitHub Repos、npm、NuGet、Selenium、SmartBear Cucumber、SonarSource SonarQube、Zed 攻擊 Proxy
- 持續傳遞(CD): Atlassian Bamboo、Azure Pipelines、GitHub Actions、Jenkins、Octopus Deploy、Perforce Puppet、RedHat Ansible
- 基礎結構即程序代碼: Bicep、Pulumi、Terraform
- 啟動載入:ArgoCD GitOps、Flux GitOps、Progress Chef、PowerShell Desired 狀態設定 (DSC)
- 作業:Azure 自動化、Azure 監視器、CISCO Splunk、Grafana、Microsoft Power BI
- 共同作業和意見反應: Atlassian Confluence、Azure DevOps Wikis、GitHub 討論區、GitHub Wikis、Microsoft Teams、Slack、Stack Overflow
下圖顯示使用 Azure DevOps 工具鏈選取的範例 DevOps 架構:
下圖顯示使用 Azure DevOps 和 GitHub 工具鏈選取的範例 DevOps 架構: