
轉載本文需注明出處:微信公眾號EAWorld,違者必究。
谷縝:在國家大力推動信創產業發展和國產化的大背景下,支撐不同行業和企業之間差異化的需求,工具鏈的替換與遷移,安全合規管控等給DevOps帶來了新的機遇和挑戰。
01
推進DevOps信創工作落地,
我們遇到了哪些挑戰
DevOps平臺作為一條支撐軟件研發全生命周期的IT生產線,平臺所提供的支撐能力需要覆蓋軟件研發的各個階段。從需求的管理及拆分到整個研發過程的管理,再到后期交付到運維,發現問題后進行持續的反饋,再進行研發過程的持續交付,是一個全生命周期的管理。
在管理過程中,平臺也提供了相關的能力以保障質量和安全的管控要求。
在推進DevOps信創工作的落地,我們碰到了一些挑戰。包括不同企業項目管理的差異化需求、國外商業項目管理軟件的遷移替換、不同企業應用特點的差異,如技術棧,中間件,基礎設施等、安全合規管控要求等。
★項目及工作項管理的差異化需求
不同行業,不同企業之間的項目管理方式都有所不同。大多數企業都有自己的項目管理系統,針對一些版本發布的流程做管控,但很多沒有對工作項(就是開發任務)進行系統的管理,還是使用看板加便簽的管理方式。
也有部分企業使用國外的商業軟件進行項目管理,其中最常見到的就是JIRA。還有一部分使用禪道進行管理,但相比于JIRA,禪道缺少了靈活配置的能力,真正用起來的企業也不多。
普元DevOps平臺建設之初,項目及工作項管理這塊就是采用集成的方式,對JIRA和禪道都進行了適配。在不少客戶實施也都是采用這種集成的方式進行項目管理。
那么,在信創環境下,如何通過DevOps平臺實現軟件研發的全生命周期管理,滿足各行業的項目管理需求,并兼容企業不同的項目管理之間的差異,支撐從商業項目管理軟件到DevOps的平滑遷移呢?
我們將不同的項目管理模式定義成不同的項目模板。項目模板包含人員角色模板和工作項方案。人員角色模板定義了一類項目管理模式中涉及到的人員角色。不同的人員角色有不同的權限配置。工作項方案包含了一類項目管理模式中涉及到的工作項管理,工作項分為不同的類型(故事,任務,缺陷等),不同工作項對應的頁面及屬性也不同(就是針對某個工作項創建,編輯等頁面也可以不同)。每個工作項類型的狀態及流轉過程也不同。
普元DevOps提供了整套自定義工作項管理方案的能力,用戶可以基于該能力配置出一套適合自身的工作項管理的方案。
我們通過對使用JIRA做項目管理的客戶進行項目管理模式,工作項管理方案的梳理,通過DevOps平臺提供的自定義工作項方案的能力,協助客戶將整個項目及工作項管理的過程遷移到DevOps平臺上來進行。
★技術棧,中間件,異構基礎設施等差異
不同行業,不同企業應用技術棧,用到的部署中間件,基礎設施等都存在或多或少的差異。普元DevOps如何支撐不同技術棧應用的構建需求,不同中間件的部署需求,以及不同基礎設施的應用發布需求?
普元DevOps平臺通常將完整的構建和發布需求分解成一個個通用的原子任務,并默認提供涵蓋構建、工具、測試、部署等多個維度,共計70+的原子任務,適用于企業應用構建和發布的各種場景。如一個完整微服務應用構建過程,包含拉取代碼、執行maven構建、制品安全合規掃描、制品上傳這些原子任務。用戶通過原子任務編排的方式,完成應用的構建過程配置。
為了滿足擴展性需求,普元DevOps還設計了基于動態表單+靜態腳本的方式擴展原子任務的模式。該模式通過sql文件實現原子任務的頁面及屬性定義,然后通過靜態腳本實現具體的任務執行邏輯?;谶@樣一套擴展性極強的框架,用戶可以基于自身的需求,擴展支撐國產應用服務器的部署。
★安全合規管控
安全合規在當前信創生態環境下是所有企業繞不開的話題。DevOps測試類原子任務中提供了包含代碼安全掃描、制品安全合規掃描等多種工具。用戶可以在應用的持續集成過程中添加對應的原子任務,對代碼安全及制品安全合規進行管控,實現保障制品安全合規的目標。
代碼安全掃描可以發現代碼的漏洞及BUG,并提供相應的示例說明。用戶可以通過配置質量閾對掃描結果進行驗證,若存在漏洞或BUG則報錯并拋出異常,相關任務可以根據掃描信息對問題進行修復。
制品安全合規掃描可以對持續集成過程中生成的制品進行掃描,可以掃描制品的依賴(如依賴的jar包),并獲取jar包的license信息和漏洞信息。若存在漏洞或者不合規的license會進行告警。用戶也可以下載掃描結果的安全合規報告。
★國產化環境運行
DevOps平臺也需要適配信創生態進行調整,讓整個平臺及其依賴的工具能夠部署運行在國產操作系統上。
同時,DevOps自身應用war包也可以運行在國產中間件上,并且針對國產數據庫我們也做了適配,已經支持人大金倉和達夢數據庫,也已經在客戶的環境中經過了充分的驗證。
02
瞄定DevOps平臺實施過程中的六大目標,
達成“適、快、精”價值
基于流程和數據的打通,通過度量的方式幫助管理者進行軟件全生命周期過程的優化,是DevOps建設的最終目標。但是在DevOps實施過程中,需要先瞄定管理前移、全鏈路追溯、量化評估、自主掌控、多架構適配、驅動協同六大目標來解決問題,以利于面向信創生態,達成研發運維一體化平臺的價值。
★管理前移
通過流程數據的打通,DevOps平臺可以提前感知項目存在的風險,項目進度是否有延遲,質量與預期的目標是否有偏差,幫助管理者能更早的發現問題并介入處理,以便能更早的規避風險。這是促進管理前移的問題。
★全鏈路追溯
數據流程的打通能夠幫助DevOps平臺建立全鏈路的信息,比如針對工作項和缺陷處理,開發人員可以提交代碼并進行工作項關聯,構建過程可以記錄是基于哪個代碼庫,哪次編譯,哪個構建號,并將這些信息關聯到構建生成的制品。在制品發布到具體環境時,記錄發布的相關信息,如機器資源等。通過這種方式打通從工作項-代碼-構建-制品-發布-實例運維的一整條鏈路信息,以便發現問題時能很方便的進行鏈路追溯和問題排查。
★量化評估
打通流程和數據之后,DevOps平臺可以基于報表相關數據對各個階段的工程效率進行度量,也能更好進行資源分配。同時,DevOps平臺還可以更準確評估完成需求需要的時間,以便合理的指定開發計劃。
★自主掌控
DevOps平臺需要對代碼源頭、編譯過程、發布過程進行管控,以達到企業自主掌控的信創要求。
★多架構適配
DevOps平臺支持各種技術棧應用的編譯,編譯環境管理,支持不同的中間件應用發布。在一個統一的平臺上形成完整的資產和信息鏈。屏蔽一些差異化,通過相對標準的配置就能進行管理。
★驅動協同
這里不僅僅針對開發和運維,而是覆蓋完整的軟件全生命周期,從需求、開發、測試到運維,甚至質量與安全等。所使用的方式,也就是之前提到的橫向維度的集成,打通部門之間的壁壘,實現高效的驅動協同。
瞄定以上六大目標解決問題后,研發運維一體化平臺的實施落地,從客戶價值來說,就可以歸結為“適,快,精”三個字。
★適——打造適合企業自身的最佳實踐
在實施落地的過程中,對企業來說,適配性非常重要。因為每個客戶都是存在差異的,IT建設過程中都形成了一套符合自身的體系。從適的維度來說,就是要結合企業自身的規范標準、應用特點,打造一條適合企業的IT生產線,在功能上實現“開箱即用”的基礎上,還可以在實施上滿足企業適配需要。
★快——促進高效協作,提升交付效率
建設DevOps平臺,快是顯而易見的。從軟件交付來看,DevOps平臺提高了交付效率;從整體效果來看,DevOps平臺通過全流程打通,促進了各部門和人員之間高效的協作。
★精——資產的精益運營
從度量的維度來看,DevOps平臺通過量化評估和度量以及過程的可視化來進行資產的追溯,來幫助企業了解資產的狀態以及自身的短板,然后協助企業進行優化,特別是運營的優化。
03
面向信創生態的DevOps功能
普元DevOps的定位,是一條支撐軟件全生命周期的IT生產線,從全景圖來看,它展現了軟件研發的四個主要階段:啟動階段、規劃階段、研發階段、投產階段。每個階段都會有相關的活動,DevOps的能力支撐也體現在這些階段中。
從產品功能架構,也是從全生命周期管理劃分來看,整個平臺的能力矩陣更為清晰。
項目管理:進行項目的團隊管理、人員權限管理、版本與里程碑管理或者是敏捷的迭代管理、人員角色及權限管理等。
工作項管理:進行工作項管理,包含需求、開發任務、缺陷等??窗骞芾?,可通過自定義看板結合過濾器的能力定制各種展示面板。
代碼管理:進行代碼庫的管理、分支標簽管理、代碼對比、代碼合并、代碼質量掃描、代碼提交關聯工作項等。
測試管理:測試用例、自動化測試、測試計劃、測試過程、測試結果、缺陷管理等。
持續集成:應用組件、構建定義、執行跟蹤、制品及鏡像等構建產物的管理。
持續交付:資源管理、部署編排、執行跟蹤、全鏈路、應用實例運維等。
精益度量:項目進度、工程質量、研發效率、風險預警、綜合大屏等。
個人工作臺:用戶可以配置展示并管理個人的事項,包含任務面板、構建面板、發布面板、工單面板等。
從項目管理、持續集成和發布、質量管理以及可視化和度量這四個主要IT管理核心的維度,能夠看到我們DevOps平臺實現了全流程打通、多架構適配等核心功能。
1. 項目管理
全流程打通:通過梳理企業項目管理流程,明確相關系統集成接口,以集成的方式拉通流程。在這個過程中識別自動化流程,并對全流程過程進行簡化和優化。
項目差異化管理:為應對項目管理的差異化需求,梳理企業項目管理模式,包括人員角色及權限、工作項問題類型、狀態流轉、屬性定義、頁面定義等。通過項目模板綁定項目管理模式,以及強大的工作項方案自定義的能力,滿足企業項目管理差異化需求。
多維看板:工作項展示支持詳情、列表、看板、樹等多種視圖,結合過濾器提供的按條件篩選的能力,實現多維看板。用戶可自由定制工作項展示的方式和內容,并通過選中的過濾器進行看板切換。
IDE集成:通過開發工具插件進行集成,在開發工具上就能夠進行工作項處理,以及代碼提交關聯工作項。
需求及任務追溯:通過需求和任務的關聯,實現變更歷史、缺陷和測試用例的關聯,以及工作項和代碼的關聯等,從而進行需求及任務追溯。
2. 持續集成和發布
代碼分支策略:通過梳理企業代碼分支管理策略,在不改變已有的管理模式的基礎上進行優化,并結合已有代碼構建相關的原子任務,實現代碼分支管理與構建過程的打通。
代碼跟蹤:代碼提交關聯工作項之后,可對代碼進行跟蹤,查看工作項關聯。構建之后,基于構建的代碼獲取工作項對應關聯,進行制品與工作項的關聯。
資產庫:建立三方庫,組織級二方庫管理規范。建立制品庫管理規范,對構建生成的制品進行管理。支持制品的鏈路追溯,支持制品的版本對比。
編排及可視化執行:支持通過原子任務的編排配置構建和部署過程,支持導出導入模板,支持觸發規則、保留等策略,支持變量等配置。支持對構建過程進行追溯,可以查看每一步任務執行情況和日志。
全鏈路追溯:支持對已部署的應用進行全鏈路追溯,支持對應用部署、制品、構建、代碼、工作項等關聯信息進行查看。
3. 質量管理
代碼質量:支持單元測試執行、覆蓋率統計及測試結果查詢。支持代碼質量掃描、報告查看下載、質量門禁配置。
手工測試管理:支持測試用例、測試計劃、測試執行、缺陷管理、測試報告等管理。
自動化測試:通過擴展測試原子任務,如使用已有的rebotframework測試原子任務,以構建配置執行,并獲取測試報告及展示測試結果。
制品掃描:通過制品掃描原子任務對構建制品掃描,或對已有的制品目錄手動觸發掃描??梢栽诰€查看結果并導出報告。
4. 可視化和度量
可視化:項目管理過程透明化,任務看板、應用組件、構建及執行、發布及執行、應用運維、全鏈路跟蹤等可視化。
個人工作臺:將個人事項進行聚合展現以及處理,不用切換項目或菜單??梢詫π枨?、任務、構建、發布、工單等事項進行面板定義與管理。
度量指標:提供豐富的度量指標庫,涵蓋質量、效率、進度等多個維度。
項目大屏:基于不同的人員角色,提供不同的報表視圖。項目經理可以通過項目大屏,查看項目的進度、人員、研發效率、工程質量等數據。更高一級的管理者可以通過項目總覽大屏,查看不同項目對比的情況,包含項目健康狀況、項目進度、研發效率以及項目質量。
04
DevOps信創項目典型實踐
普元研發運維一體化平臺DevOps成功應用于金融、政府、軍工、通信、教育、能源等行業,推進典型實踐。在金融客戶的應用場景中,普元幫助客戶滿足特色需求,實現DevOps信創實踐的全面落地。
某國有銀行DevOps可視化平臺項目
背景:
行內雖然使用了項目管理、測試管理、Jenkins、部署平臺等,但數據分散在各平臺中,生產上線過程還停留在手工模式,無法形成完整的信息追溯鏈,難以清晰地掌握從需求到投產上線的全流程。
同時,開發、測試等多個環境管理混亂,缺乏有效的制品晉級管控措施,使得組織級質量目標難以落地。
希望通過DevOps可視化平臺項目的建設實現開發、測試、運維一體化門戶,形成串聯開發、測試、生產的一鍵部署能力,以及貫穿度量和過程數據的持續度量能力。
難點:
深度定制了JIRA,將日常辦公所有的事項都放在了JIRA,導致性能瓶頸。
不同的項目有不同的人員角色,以及不同的工作項管理模式。
云上有兩套環境,都需要完成自動發布。
某城市商業銀行持續集成平臺項目
背景:
隨著數字化轉型浪潮席卷而來,銀行的信息化平臺建設正在經歷新的考驗。IT各部門之間的隔閡導致的信息傳遞失真、軟件研發過程的數據割裂等原因使得銀行的數字化轉型面臨極大的阻礙。
該城商行將借助持續集成平臺打造一套適合自身IT系統的生產線,從“需求->開發->測試->發布->運維->運營”端到端支持的協同工作流程,持續提升IT運營效率。
針對代碼提交、代碼檢查、代碼分支管理、編譯打包、測試、部署等各個環節形成統一的規范,提高發布版本的質量。
針對項目進度、需求到任務、任務到應用系統、代碼到版本、版本到缺陷等可以可視化跟蹤和統計分析,從效率、進度和質量等多個維度展現,支持 IT 研發精細化管理。
難點:
實現新核心及70+外圍配合改造系統的一鍵發布。
篇幅所限,很多內容無法充分展開,歡迎關注信創DevOps平臺實施的專家、學者、技術,與我們共同探討。伴隨信創產業發展,在更廣泛的應用場景中,我們一起來完成更多信創DevOps平臺的完整落地。
關于作者:谷縝,普元數智研究院資深顧問。曾參與多個DevOps項目,主要負責項目實施工作。開源技術愛好者,擅長云計算,容器,DevOps等相關領域技術。
關于EAWorld:使能數字轉型,共創數智未來!