?

電信DevOps探索與實踐

2019-02-26 00:59
廣東通信技術 2019年1期
關鍵詞:流水線灰度運維

1 引言

伴隨著電信運營商IT系統演進,電信IT運營經歷了三個階段:在90年代,企業缺乏統一IT部門,IT系統建設分散在不同部門,造成IT系統重復建設和信息孤島。IT運營管理采用“誰建設誰運維”模式,日常運維工作幾乎都是忙于處理故障、被動救火;進入20世紀之后,集團與各省公司相繼成立企業信息化部,負責IT系統規劃和規范編制,企業進入IT系統大規模建設時期,逐步引入ITIL運維流程思想,開始編制電信運維規范,建設IT運營體系;2009年后,企業進行IT運營工具平臺建設,包括服務臺、IT流程平臺、IT監控系統等,實現IT運營支撐的電子化和自動化,監控內容由點及面。

隨著互聯網化和信息技術革命,當前企業內外部環境發生劇烈變化。企業提出了從“三者”到“三化”戰略轉型,業務從互聯網到移動互聯網,作為企業核心能力的IT系統也逐步向“平臺+應用”的智慧運營方面轉型,強調掌握核心能力和自主研發。表現在IT運營上的主要特征為IT應用智能化和應用軟件云化、微服務化、生態開源等特征。因此電信IT系統運營面臨的主要問題是追求IT運營效率與傳統運營流程僵化的矛盾、互聯網高頻應用發布與系統穩定性要求的矛盾,開源生態下自主研發與傳統深度依賴供應商的矛盾、傳統單體應用與微服務化改造之間的矛盾等。

為了適應企業IT運維營管理模式變革,實現從傳統IT運營走向智慧運營,適時引入開發運營一體化(DevOps)思想,以標準化、自動化、數據化、智慧化為特征,構建平臺化運營體系,實現互聯網化模式下的運營轉型。

2 電信IT運營的DevOps實施思路

2.1 DevOps理解與認識(如圖1所示)

DevOps(Development和Operations的組合詞)是一組過程、方法與系統的統稱,用于促進開發(應用程序/軟件工程)、技術運營和質量保障(QA)部門之間的溝通、協作與整合[1]。DevOps最早起源于亞馬遜和Google等大型互聯網公司內部實踐,這些公司需要員工緊密協作,同時又不希望出現部門割據。DevOps初衷就是為解決Dev與Ops之間的鴻溝而生,DevOps提倡開發和IT運維之間高度協同,從而在完成高頻部署的同時,提高生產環境的可靠性、穩定性、彈性和安全性[2]。

圖1 DevOps 框架

DevOps框架是一個集各家之長的體系,包括敏捷管理、持續交付、IT服務管理和精益管理等四大部分內容。在2017年底高效運維社區發布了DevOps成熟度模型標準,提出了更加完整的DevOps框架體系。

(1)敏捷管理:以用戶需求為核心,采用迭代、循序漸進的方法進行軟件開發[3]。

(2)持續交付:一種開發實踐方法,通過流水線方式將研發測試過程自動化執行,確??焖傧蚩蛻艚桓秲r值。

(3)IT服務管理:采用ITIL相關的方法、手段、技術和流程等,對IT運營環境(如硬軟件環境、網絡環境等)、IT業務系統和IT運營人員進行綜合管理。

(4)精益管理:核心思想是以最小資源投入,創造出盡可能多的價值,為顧客提供高質量產品和及時的服務,提高顧客滿意度[4]。

DevOps涉及IT應用的全生命周期管理,它在實踐中產生和不斷完善,其核心思想是強調運營過程中的精益管理,追求效率和價值最大化。在軟件開發階段,采用敏捷開發模式進行軟件迭代開發,快速交付價值。在工程實踐上,通過流水線技術,體現價值流動思維,通過將過程任務代碼化,實現過程自動化。

DevOps得以快速發展和應用,同是也離不開微服務和容器技術的應用。微服務(Microservice)傳承了傳統SOA(service-oriented architecture)技術思路,同時也弱化了SOA中ESB(Enterprise Service Bus)功能,真正實現分布式、去中心的服務架構,是解決傳統臃腫單體應用部署和升級困難之關鍵。當前不僅是互聯網公司采用,傳統企業也將擁抱微服務架構。容器則是屬于一種操作系統級、輕量的虛擬化技術。容器是一個自包含結構,具有隔離性好和快速啟動等特點,一般每個容器只運行一個任務。容器是微服務的天然載體,是DevOps的催化劑。反過來,DevOps和微服務也推動了容器技術的應用。因此,在DevOps實踐中同時考慮了這三種技術的應用。

2.2 DevOps的切入思路(如圖2所示)

中國電信是一個大型傳統服務行業,IT運營的目標是保障企業業務運營的正常和穩定、降本增效。企業自2009年實施ITIL標準以來,形成了傳統ITIL文化,建立了一個以ITIL為基礎構建的IT運營體系。企業IT運營主要有兩種場景:

(1)面向穩態的IT運營場景,強調IT系統可靠和安全,以ITIL規范化管理為核心,注重風險管控,力求穩健、可靠;

(2)面向敏態的IT運營場景,強調應用的交付速度、靈活、迭代、互聯網化,以DevOps為核心,注重用戶價值與體驗,應用快速交付。

通過分析可知,DevOps是對ITIL一個很有效的補充。ITIL面向管理過程的“離線任務”為主,以目標規范優先;DevOps面向“在線服務”的執行過程,管理與執行兼顧,強調操作的自動化執行。因此,在企業IT運營管理體系變革中,有必要引入DevOps理念,通過流程輕量化和流程執行自動化,提升應用快速交付效率,實現IT高效運維。

圖 2 DevOps的切入思路

根據企業IT運營現狀、面臨的矛盾和IT領域技術發展情況,建議圍繞IT應用發布,從應用的微服務化、應用持續交付、應用灰度發布和應用版本管控等方面切入和探索,尋找IT運營模式突破。在試驗范圍上,建議先從面向運維的IT服務管理系統(簡稱ITSM系統)著手,逐步推廣到其他核心系統,如客戶關系管理(CRM)等系統。DevOps探索的主要內容:

①應用微服務化,將應用進行解耦,并進行微服務架構設計,按服務組件方式進行研發;

②應用持續交付,采用敏捷迭代開發模式,采用自動化流水線實現應用持續集成和交付;

③應用灰度發布,采用應用在線發布技術,支持應用分批上線和應用版本回退;

④應用版本管控,加強全網應用組件的版本統一管控,統一全網版本。

在DevOps平臺建設方面,重點面向IT運營管理,聚焦持續交付和安全發布。持續交付從代碼提交開始,分為兩種情況。第一種,自主研發項目,從編碼開始,實現源碼構建、打包、部署和測試等研發過程支持。第二種情況,對于外包或第三方供應商開發項目,可以實現項目源碼統一管理,通過平臺進行構建、打包、部署和測試。探索的重點是研發灰度發布技術,支持按用戶進行訪問分流,保證應用系統安全上線。

在平臺底層工具選擇方面,選擇了基于目前流行的軟件,如k8、Jenkins、Maven和 Robot Framework、Harbor等開源軟件,進行二次開發和集成。DevOps平臺采用微服務架構和容器化部署技術。

3 電信IT運營的云道平臺構建與實施成效

3.1 云道平臺功能架構

中國電信廣東研究院自2017年開始自主研發了DevOps平臺,取名“云道”。云道平臺初期目標是:

(1)建設一套基于DevOps理念自主研發的應用持續交付和安全發布平臺

(2)自動流水線方式實現應用的持續交付,快速向用戶交付價值

(3)支持應用灰度發布和一鍵回滾,實現用戶無感知在線升級

(4)源碼/部署包/實例等統一管理,支持企業對應用版本全程和統一管控

云道平臺的功能架構如3圖所示,主要包括項目管理、過程管理、發布管理、資源管理和運維管理等五大功能模塊:

(1)項目:以項目為單位組織軟件過程管理。一個項目可以分為多個版本(相當于多個迭代)。軟件過程管理和發布管理均基于版本上下文進行管理。

滿足上述4個配齒條件的齒輪組合才能構成雙星行星機構,表2列舉了4組可以裝配成雙星內外嚙合單排行星機構的齒數組合.

①項目管理:提供對項目維護功能。支持使用項目模板和常規創建兩種方式創建項目。前者通過引用項目模板,可以快速創建項目及相關任務和流水線,后者僅創建項目基本信息。

②版本管理:項目細分為版本,由版本直接綁定過程活動。提供項目的版本維護功能,一個項目可以包含多個版本。

③看板:顯示項目版本統計信息,比如代碼提交數、任務執行記錄、流水線執行記錄等。

圖 3基于 DevOps的云道平臺功能架構

④模板:使用任務模板可以幫助用戶較快地完成任務配置。

(2)過程管理:對項目管理過程活動管理,包括代碼、構建、打包、部署和測試等任務,多個任務可以自定義組裝為流水線。支持單任務執行和流水線方式執行,包括自動執行和人工干預兩種執行方式。在項目過程中還需要提供一些公共能力,如制品庫、數據管理、配置管理和度量反饋等。

①代碼:項目創建后,將在開源代碼托管平臺創建一個代碼倉庫,后續的代碼活動將在該代碼倉庫中進行。該功能展示倉庫關鍵信息,比如分支、最近提交記錄和標簽等。

②構建:是軟件項目開發階段的必要活動,包括編譯、單元測試、生成部署包。通過對多種類型項目的自動化構建,幫助研發人員從繁瑣重復的事務性工作中解脫出來。平臺支持javapythonCC++android等多種項目類型的構建自動化。

③打包:將部署包制作成為容器鏡像的過程,是軟件交付和部署的必要活動。以部署包作為打包任務的輸入條件,平臺自動化執行打包任務,輸出容器鏡像。

④部署:是使用容器鏡像生成運行時環境的過程。部署方式包括新增部署和升級部署兩種方式。前者表示從資源池獲取資源生成新的運行時環境,后者表示使用已有環境來更新部署配置,比如更新鏡像版本。

⑤測試:用戶編寫測試套件(即測試腳本)來執行自動化測試,支持接口測試和UI測試。

⑥流水線:由多個任務按順序組裝成為流水線,并設置任務的執行方式,使流水線自動運行。任務類型包括構建、打包、部署和測試任務。

⑦制品庫:管理并存儲任務執行過程中涉及到的輸出工件。

⑧數據管理:指平臺通過項目組提供的數據庫腳本自動執行數據庫部署,并輸出執行日志。

⑨配置管理:平臺識別部分類型的配置項,并提供配置項的版本修訂和版本追溯功能。任務需要使用配置項時,只需對其引用即可。配置項類型可擴展。

(3)度量反饋:提供交付過程的結果指標和過程指標的采集、存儲和呈現,直觀表現軟件交付過程的效率和質量。

(4)發布管理:發布管理指從提交發布到發布完成的過程管理。測試負責人聲明某個版本滿足發布要求時(版本功能、性能等符合質量要求),表示該版本具備生產環境的準入條件,隨時可以為實際客戶提供在線服務。

①發布策略:發布管理適用于生產態的部署發布,包括灰度發布和常規發布兩種模式。

●灰度發布:指對于特定環境升級部署;相同服務的2個版本可以同時在線,根據灰度策略規則將用戶分流到特定版本的服務。

●常規發布:新增部署或者升級部署。此種發布模式下,一個服務只生成1個版本。

②灰度發布:是保障應用新版本穩定上線的重要措施之一。實施灰度發布包括兩個部分:

●配置計劃,指實施發布計劃的前提條件,包括:配置部署任務、灰度策略和負載均衡策略。其中,灰度策略是很重要規則,指訪問應用灰度版本(即新版本)的用戶規則,支持用戶UID段、UID尾數以及UID白名單等策略。策略范圍內的用戶在后續訪問應用時,會被分流到灰度版本。

●實施計劃,指實際執行發布計劃,包括部署執行、人工驗證、以及完成發布(或回滾)。

③負載均衡:指實施發布計劃生成的應用服務的網絡訪問規則,使得用戶可以通過外部網絡訪問應用,解決了應用只能被內網用戶訪問的問題。

④一鍵回滾:在灰度發布過程中,如果新版本應用不符合用戶的預期目標,可以一鍵提交回滾,將應用版本回退到舊版本,并釋放灰度版本資源,所有用戶被分流到舊版本應用。

(5)資源管理:指應用交付過程中使用到的基礎設施,包括應用部署時的計算、存儲和網絡資源。平臺以資源池和集群作為資源的組織單位。通過資源注冊使其被平臺托管,才能在任務執行時使用資源。

①集群管理:通過集群對資源進行邏輯分組。以集群為單位,注冊應用部署時使用的部署節點、負載均衡服務和數據卷服務。

②集群總攬:查詢成功注冊并被托管到平臺的資源池和集群。顯示集群主機關鍵信息,比如IP、資源規格(比如CPU和內存等)、部署安裝實例數等。

③數據卷管理:管理當前用戶所屬租戶的持久數據卷,適用于為容器提供持久化數據存儲。

④環境管控:管控權限范圍內的項目環境,適用于管理角色??梢灾庇^查看項目的環境相關信息,比如鏡像、訪問地址、執行記錄和集群實例等。對于集群實例,提供日志查看和重新創建實例的功能。

(6)運維管理:應用部署和運維過程的相關活動。包括監控、日志和通知等功能。

3.2 云道平臺的部署架構

在DevOps實踐中,云道平臺采用集團一級部署模式,平臺整體部署在的內蒙資源池,IT運營中心上海分部、安徽等省分公司分別搭建本地容器集群,承載本地業務應用,本地各容器集群均通過集團云道平臺進行統一的管理。部署架構如4圖所示:

圖 4 云道平臺部署架構

3.3 云道的應用成效

云道平臺已在集團資源池部署,上海運營中心和安徽公司使用此平臺分別對掌上ITSM應用、集中告警監控模塊進行容器化改造,實現云道平臺從代碼提交到部署的全過程自動化流水線構建,流水線執行效率是人工執行效率的32倍。平臺實現了對代碼進行集中管理,并能實現應用的灰度發布,應用升級不影響客戶感知。

云道平臺已在ITSM系統研發過程中應用,支撐IT服務管理系統的重構,支撐ITSM團隊進行微服務化重構的研發、發布與部署。

以云道平臺為基礎,進一步研發了翼翮系統開發態平臺,支撐了網絡運維應用的自主研發,承接NOC的IP資源管理及調度系統、智能網管微服務改造、電子運維流程平臺等項目,以及廣東、江蘇、浙江等7省個性化自主研發10余項目支撐。平臺目前有13個項目組,30個項目入駐。

4 結束語

云道平臺在企業內部已得到初步的應用,經過POC驗證提升了應用迭代開發和發布效率,但在支持多方合作應用研發和應用成果分享方面還顯不足。建議進一步探索基于現有平臺打造成新的運維自主創新模式,匯聚企業各方開源研發力量,聯合進行創新應用的研發,并將各應用成果通過應用商店方式進行展示,在企業內部進行交流和分享,推動優秀應用的落地和推廣。

猜你喜歡
流水線灰度運維
采用改進導重法的拓撲結構灰度單元過濾技術
Bp-MRI灰度直方圖在鑒別移行帶前列腺癌與良性前列腺增生中的應用價值
流水線
運維技術研發決策中ITSS運維成熟度模型應用初探
風電運維困局
雜亂無章的光伏運維 百億市場如何成長
基于最大加權投影求解的彩色圖像灰度化對比度保留算法
基于灰度線性建模的亞像素圖像抖動量計算
基于ITIL的運維管理創新實踐淺析
報廢汽車拆解半自動流水線研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合