方案概述
更新時間 2024-02-26 09:32:50
最近更新時間: 2024-02-26 09:32:50
分享文章
本章主要介紹方案概述
背景信息
HE2E DevOps實施框架,是一套可操作可落地的敏捷開發方法論,如下圖所示。
HE2E DevOps實施框架


- 規劃和設計
步驟①和②是業務(或者是客戶)與技術之間進行產品規劃,梳理產品整體脈絡,以及進行產品規劃實施設計,并控制需求粒度與拆分的過程。- 軟件開發的本質是為了解決問題,提供用戶價值的,而不僅是為了提供功能。影響地圖就是用來鑒別用戶需求是什么,深層的根因是什么。
- 用戶故事就是目標和需求的載體,以用戶的場景來講故事,便于在客戶、業務與開發之間進行信息的傳遞。在這個過程中,獨立的需求條目的堆積,很容易導致只能看到各個需求條目,不能從整個解決方案思考需求。用戶故事以用戶使用的場景為主線,將大的階段點,及其細分的活動,以樹狀的結構進行梳理和展現,既可以看到獨立的需求條目,又能夠看到整體需求場景。
- 計劃和跟蹤、迭代開發
步驟③~⑩是Scrum框架過程,是主要的管理實踐。- Scrum定義了一個相對完整的敏捷過程管理的框架。在軟件開發生產線中,將Scrum的框架與團隊日常的開發活動,很好的融合起來。主要的過程產物包括產品故事列表、迭代故事列表、潛在可交付的產品增量、以及過程中產生的問題列表;核心的團隊活動包括Sprint計劃會議、團隊每日站會、Sprint演示會議、Sprint回顧會議等會議、以及團隊的日常更新。
- 同時,將Kanban方法與Scrum框架進行了結合,團隊借鑒Kanban方法中的精益思想,可視化價值流,發現并解決阻塞與瓶頸,加速價值流交付,并加快反饋回路,持續進行改進。
- 持續交付
從步驟?開始,進入到工程實踐,也就是通常說的CI/CD過程。- 持續交付以代碼配置管理為基礎,除了傳統意義的代碼資產安全與管控、多人并行開發、版本與基線管理外,也體現了團隊的協作與溝通。
- 代碼檢查(即靜態掃描)、自動化的構建、各階段的自動化測試、以及相應的自動化部署過程,都被有機的串聯在流水線上。
- 除了代碼檢查、構建、測試、部署等動態的階段與活動,還有制品管理,以及各級的環境管理,包括開發環境、測試環境、準生產環境,以及生產環境。
- 持續交付流水線就是將整個持續交付中,都有哪些階段,分別運行在什么環境,每個階段執行什么活動,準入與準出的質量門禁,以及每個階段的輸入與輸出的制品進行管理。
應用場景
通過一套汽車零部件配件電子商城示例代碼“鳳凰商城”,以及“DevOps全流程樣例項目”,介紹如何使用軟件開發生產線實現HE2E DevOps框架。該方案適用于敏捷/Scrum研發項目。
方案架構
- “鳳凰商城”示例程序架構
“鳳凰商城”示例程序的架構圖如下圖所示。
鳳凰商城技術架構圖


示例程序由下表中的5個可以獨立開發、測試和部署的微服務組件構成。
鳳凰商城微服務組件表
| 微服務組件 | 說明 |
|---|---|
| Web用戶端服務器(對應樣例代碼中的“Vote”功能) | 業務邏輯:用戶可以通過瀏覽器訪問此服務的WebUI。當用戶在特定商品上單擊“Like”時,服務將用戶所選擇物品的記錄保存在Redis緩存中。 技術棧:Python、Flask框架。 應用服務器:Gunicorn。 |
| Web管理端服務器(對應樣例代碼中的“Result”功能) | 業務邏輯:用戶可以通過瀏覽器訪問此服務的WebUI,會動態顯示用戶端UI上用戶單擊“Like”的統計數據,此數據來自PostgreSQL數據庫。 技術棧:Node.js、express框架。 應用服務器:server.js。 |
| 后臺訂單批處理程序(對應樣例代碼中的“Worker”功能) | 業務邏輯:此服務為后臺進程,會監控Redis緩存中物品記錄,并將新紀錄取出并保存在PostgreSQL數據庫中,以便管理端UI可以抽取數據進行統計顯示。 技術棧:.net core或者Java(此服務提供兩種技術棧實現了同樣的功能,可根據需要修改配置選擇其中一個作為運行時進程)。 |
| 訂單緩存 | 業務邏輯:此服務作為用戶端UI服務的數據持久化服務存在。 技術棧:Redis |
| 訂單數據庫 | 業務邏輯:此服務作為管理端UI服務的數據源。 技術棧:PostgreSQL |
- “DevOps全流程樣例項目”構成
“DevOps全流程樣例項目”是一個Scrum類型的模板項目,項目中預置了部分服務的使用模板。項目實踐過程中涉及到的產品及服務如下表。
實踐涉及產品/服務列表
服務 說明 軟件開發生產線 需求管理 預置3個已規劃并已完成的迭代、項目的模塊設置、以及若干統計報表。 代碼托管 預置代碼倉庫“phoenix-sample”,存放項目示例代碼。 代碼檢查 預置4個任務,任務詳情介紹請參見步驟四:檢查代碼。 編譯構建 預置5個任務,任務詳情介紹請參見步驟五:構建應用。 制品倉庫 用于存儲通過構建任務生成的軟件包。 部署 預置3個應用,應用詳情介紹請參見步驟六:部署應用CCE篇。 測試計劃 功能測試用例庫,預置十余個測試用例。 流水線 預置5條流水線,流水線詳情介紹請參見步驟八:配置流水線,實現持續交付。 其它組件和服務 統一身份認證服務 用于管理帳號。 容器鏡像服務 用于存放構建任務生成的Docker鏡像。 云容器引擎 用于軟件包部署,與ECS部署屬于兩種不同的部署方式。 云主機 用于軟件包部署,與CCE部署屬于兩種不同的部署方式。
方案優勢
- 針對需求變動頻繁、開發測試環境復雜、多版本分支維護困難、無法有效監控進度和質量等研發痛點,提供一站式云端管理平臺,管理軟件開發全過程。
- 提供可視化、可定制的持續交付流水線服務,實現持續交付,讓軟件上線提速一倍。