1. 程式人生 > >普元DevOps5.2版本新特性發布

普元DevOps5.2版本新特性發布


轉載本文需註明出處:EAWorld,違者必究。

作者自白:

伴隨新版本的釋出,我們團隊也對這次迭代做了些回顧,有值得分享的新特性與設計,也有一些需加強的能力,藉此與大家分享。

主題大綱:

一、新特性部分

1、安全提升,更細粒度的流程與許可權控制
2、企業級中介軟體支援,更匹配普元現有客戶需求
3、全新看板,更精益的度量並指導優化
4、UI大升級,提供To C的網際網路體驗
5、監控增強,圍繞應用視角的執行監測
6、流水線與工單結合,向一體化工作臺演進

二、待提升部分

1、自動化測試體系的完善
2、預警能力的建設
3、流水線任務的持續豐富

新特性

DevOps產品,從定位上來看,仍舊保持初衷不變,要建立一條從業務需求到最終線上運營的IT生產線。



之前的版本其實已經形成了從專案管理->元件設計->程式碼管理->持續整合->自動部署->度量優化的能力,所以在5.2版本需求範圍定義時,更多的是從流水線豐富、實施模板、API擴充套件、安全可靠幾個方面著手的,在此分享以下6個特性:

特性一:安全提升,更細粒度的流程與許可權控制

DevOps平臺相對特殊的定位(跨部門、跨環境、長週期)使得平臺在安全上需要更加去關注,這個版本從以下三個方面進行了加強。



1、圍繞功能碼的選單、操作(API)、環境的三類授權

第一個方面:仍舊是從RBAC著手,考慮到DevOps至少是有兩層許可權的:



並且在第二層許可權中,會隨著專案型別的不同,擁有的選單集、功能集範圍也不相同。所以需要在兩級都提供面向選單、功能碼、環境的細粒度許可權配置能力,才能保證滿足各類客戶要求。

 



2. 充分考慮安全隔離、單向通訊的部署架構

第二個方面則是部署架構的安全,參考下圖:



比如一般企業,開發測試區和生產區都是完全隔離的,介質共享傳遞更多是拷貝或者堡壘機完成,在DevOps平臺上,要注意的就是如何能在最小開放的情況下,完成上述不同環境的完整流水線。

一般來講我們在客戶那邊是通過部署多套任務引擎來解決這類問題的,devops門戶只與各環境中的任務引擎打交道(相當於拿任務引擎作為agent入口),而不去和各個環境中的其他任何機器互動。

但到了有些客戶那邊,多部署引擎是允許的,但是必須只是單向通訊。考慮到devops一般都會整合不少中介軟體或開源工具,比如為了實時看到部署的執行狀態,需要通過回撥介面形成與任務引擎的雙向通訊,這個就會受到限制,所以又需要其他的部署架構或技術方案來解決,這裡就不一一贅述。

3. 其他安全示意

第三個方面,更多的是一些瑣碎的安全控制(因為安全這個領域,本來就是瑣碎的,要持續修補的,最明顯的就是防毒軟體的病毒庫)。所以我們平臺還做了如下的一些事情,像密碼強度、定時備份、審計日誌明細化等:



特性二:企業級中介軟體支援,更匹配普元現有客戶需求

第二個特性則是後續的每個版本都會做的,針對不同中介軟體的整合能力,任務化封裝。

畢竟我們主要關注的還是企業市場,企業市場裡不可能完全拋棄傳統的應用伺服器、資料庫等。



所以在這個版本里,增加了像ear、資料指令碼等CI的能力,同時也補充了weblogic、websphere、oracle儲存過程,以及普元自有產品上的釋出回退等能力。

不僅僅CICD,產品裡還做了傳統中介軟體本身的安裝部署運維等能力。



特性三:全新看板,更精益的度量並指導優化

第三個特性是重構了原有專案Issue看板的能力,之前我們更多的是純粹的整合,比如整合jira、禪道都完全是API導向,在DevOps產品裡並沒有一套自己的清晰模型,這就使得每次使用標準的變更,都需要對產品進行深度程式碼定製,非常不友好。

在這個版本里,我們新抽象了模型,抽象的要點包括:

如何保證看板適應不同客戶、專案的要求?



將不同的幾種專案Issue模型進行抽象,包括看板泳道、issue流轉flow、issue的一些狀態資料集等。



所以上面這張圖無論是泳道、還是具體的story、bug、task的流轉與關聯,都可以通過模板來進行客戶化配置。

看板這塊還解決了需求與後續程式碼、介質的資訊斷層問題 :



現在可以通過需求追溯程式碼提交歷史,自動統計一個需求所花的程式碼行等,並與後續的工件形成關聯,為度量提供更多原始資料。

特性四:UI大升級,提供To C的網際網路體驗

第四個特性則是UI的升級,這裡要感謝兩位前端同事在短短一個多月,將整個技術棧從NUI(一套基於jquery的UI)徹底升級為基於Vue.js的全新門戶。

同時前端提供的很好的動態表單能力,使得以後擴充套件一個流水線上的任務(包括任務對應的表單、控制元件、驗證、級聯等),只要通過配置就可直接展示。





現在增加一個流水線上的任務,前端要做的就是提交圖片資源、部分表單控制元件之間的特殊事件聯動處理、再重新打包就足夠了。

特性五:監控增強,圍繞應用視角的執行監測

第五個特性則是釋出後的監控能力,藉助我們的微服務、容器雲等其他平臺,此版本可以看到如下一些監控檢視:



這是針對應用產生日誌的滾屏展示與檢索。


這是對於應用運維的timeline圖,以及每次運維操作的具體執行資訊。



還有像上圖這種,與我們其他平臺整合的系統呼叫拓撲、業務請求鏈路、程序資源資訊、長sql語句等。

特性六:流水線與工單結合,向一體化工作臺演進

第六個特性則是一直猶豫要不要做的工單能力,因為在以前的專案實施中,很多企業客戶是要求與其ITIL進行整合。但是在最近的幾個實施專案裡,大家都希望把devops向真正的一體化工作臺演進,所以在這個版本中提供了獨立的流程任務與工單管理能力。



舉個例子,如上圖,通過設定流水線上某個環境的審批人(支援多人,比如一般生產環境都要有釋出評審與執行審批),最終在執行過程中,會產生相關的工單並通知到干係人,由相關人進行線上審批,觸發流水線的繼續執行。

目前平臺提供的工單包括:專案立項單、程式碼merge單、環境部署前審批單、環境部署後確認單、人工任務單(用於更細粒度的一些確認事宜)等,且此模組可支援快速納入新流程與工單型別。

待提升部分



自動化測試:雖然現在平臺做過了jmeter、以及我們公司的自動化測試產品(UTP)的整合,但是在一些具體細節上打磨的不夠,需要好好考慮測試能力整合的正確模式。

預警能力:平臺現在的度量更多是給出結果統計,並沒有建立完善的指標預警策略,這塊需要形成對應能力(當然,具體指標值是要經過長期運營才能定,我們也只能給出我們公司的參考值)。

流水線任務的持續豐富:每個版本都要持續做的,流水線上任務的豐富,現在雖然各類構建、部署任務都很多了,但是一些細節還不夠,就比如應用資料備份、滾動升級過程的流量切換,這些都是要去補充的。

本文分享的相對簡單,沒有做技術實現的深入,需要了解產品具體能力、功能實現細節的,可通過其他渠道與我們團隊建立長期溝通機制。


關於作者:顧偉,現任普元資訊主任架構師,長期致力於IT技術研究、產品設計與開發、架構諮詢等工作,擅長Web、OSGI、CI/CD、服務治理、雲端計算等領域技術;對DevOps、自動化運維、微服務架構有著濃厚的興趣。





關於EAWorld:微服務,DevOps,資料治理,移動架構原創技術分享