導言
上一篇文章給大家梳理了DevOps持續傳遞體系出現的時代背景,以及其定義和解讀,也引出了對IT價值流的了解。我們應該都可以感覺到,對于新的體系在企業中的實際推廣最難的不是體系本身,而是大家思想的抗拒與行動的惰怠;是以在引入推行過程中首先做的是對大家的“思想”松松土。

而今天這篇文章主要是來講解如何結合IT價值流實施DevOps。
實施過程中,我本來對如何實施DevOps也梳理了很詳細的指導文檔并組織了教育訓練,但是發現隻有很少部分對新生事物感興趣的同僚會認真閱讀和學習,大部分人還是本能的抗拒和觀望,直到親自帶領一個小團體實施了下來,讓“大多數”實際看到了對企業、對自身均帶來的效果和收益,這才有了後續團隊級、公司級、集團級的擴散式推廣和實施。
畢竟對于一個新事物先解釋它的功能并教人們如何使用它,過程中先解釋其是如何工作的更容易讓人接受。就像“學習開車,你不想知道引擎蓋下是什麼,你首先想要學習怎樣從 A 點開到 B 點 。隻有在你學會了如何做到這一點後,你才會對汽車如何使這成為可能産生興趣。 但知道引擎蓋下面是什麼,可能在有一天它抛錨後你被困在路邊時, 會幫助你讓車再次移動。”
如果對理論和指導手冊有興趣學習的朋友可以先閱讀本人GitHub上有關于此的指導手冊,
https://github.com/yaocoder/Architect-CTO-growth
包含以下内容
以 IT 價值流為路徑實施 DevOps
産研團隊在企業生存發展的基礎是産生價值。如上圖所示,IT産研團隊主要參與的價值流分為産品準備期、産品傳遞期、産品營運期三大階段。我們需要圍繞IT價值流來進行DevOps的實踐
一、解決價值産出流程問題。
産品準備期
- 業務目标闡述與了解:通過産品人員了解此次産品疊代的商業價值/使用者價值,以及相關的業務上下文。
- 業務領域角色與流程識别,及解決方案的探索:共同讨論并識别該業務問題所涉及的主要業務流程與流程中的業務角色,并找到盡可能多的解決方案。
- 重大風險識别與驗證:識别方案中的業務與技術風險,并且組織人員對那些影響決策的重大風險進行快速驗證。
- 精煉并達成最小可行方案共識:從多種解決方案中挑選并确定最小可行解決方案。
- 評估與計劃 :對最小可行解決方案進行傳遞标準、初步的工作量與時間評估,制訂相應的傳遞計劃。
産品傳遞期
在此階段要完成産品的開發、測試、驗收、釋出,在過程中進行持續內建、自動化測試、持續部署等軟體工程實踐,建構“部署流水線”。
産品營運期
解決生産環境的名額監測體系,應用上線後的業務監測體系,建立問題處理體系及資料治理及應用用體系。
二、解決人性“懶”的問題
人是“懶”的,你我他都是,如果我們推行的新事物不但沒有便利于大家,反而加重了大家的工作負擔,失敗隻是早晚的事情。我們要最大程度的順應人性。利用工具平台實作部署流水線、運維自動化等,做到工作流程的自動化管理。
二、解決管理問題
- 利用流程和工具做到标準化管理 ;
- 利用 kanban 做到關鍵産研流程的可視化管理;
- 利用工具平台采集到的流程點及各級組織名額資料來進行産研流程及組織能力可衡量的數字化管理。
最終打造快速且高品質傳遞使用者價值或商業價值的産研文化。
利用工具平台實施 DevOps
(1)基于《禅道》系統的産研協作管理
禅道的核心功能呈現的是一種軟體工程思想,最終是為了管理優化研發過程,保證團隊/每個人的工作能夠按時保質完成。可以看到包含了産品準備期、産品傳遞期很多關鍵的流程點管理。
如:看闆實作
……
(2)基于《KubeSphere》系統的部署流水線管理
自動檢出 (Checkout) 代碼、測試、分析、建構、部署并釋出
一個工程的自動化部署流水線執行個體
(3)基于《SonarQube》系統的代碼品質管理
多語言支援
Java、Kotlin、Objective-C、JavaScript、CSS、C/C++、Go……
七個次元檢測代碼品質
複雜度分布(complexity)、重複代碼(duplications)、單元測試統計(unit tests)、代碼規則檢查(coding rules)、注釋率(comments)、潛在的Bug(potential bugs)、結構與設計(architecture & design)。
(4)基于《meterSphere》的持續測試平台
MeterSphere是一站式的開源持續測試平台,涵蓋測試跟蹤、接口測試、UI 測試和性能測試等功能,全面相容 JMeter、Selenium 等主流開源标準,有效助力開發和測試團隊充分利用雲彈性進行高度可擴充的自動化測試,加速高品質的軟體傳遞。
(5)基于《Harbor》的容器鏡像制品庫
(6)基于《Prometheus》和《Grafana》系統的生産環境基礎設施監控
(7)其他便不一一詳細列舉了,給大家一張簡表
類别 | 系統 |
---|---|
知識庫服務 | confluence |
源代碼服務 | Gitlab |
SQL稽核查詢平台 | Archery |
CI/CD | Jenkins |
伺服器資産管理 | jumpServer |
告警服務 | 夜莺 |
應用監測 | skywalking |
日志服務 | ELK,EFK |
…… | …… |