汽車之家App口碑評價-汽車之家app口碑評價在哪里看
1. 流水線的定義
流水線,即產品發(fā)布流程的名詞化。根據業(yè)務定義的順序關系,流水線的執(zhí)行可以定義為依次執(zhí)行相應的加工或質量校驗行為。目前,軟件交付全生命周期隨著業(yè)務的發(fā)展不斷完善。敏捷概念的提出和應用,大幅提升了軟件開發(fā)的效率和版本更新的速度,但是它的效果僅限于研發(fā)環(huán)節(jié),產品發(fā)布流程陸續(xù)出現(xiàn)新的瓶頸。
近年來 CI/CD、DevOps 理念的出現(xiàn),打破了信息孤島和溝通壁壘,加深了多崗位人員之間的協(xié)作,也加速了軟件交付的速度和質量。之家在 DevOps 上也分為多階段,從原始的傳統(tǒng)上線流程到如今的質效流水線階段,逐漸團結了研發(fā)、運維和 QA 人員,更加注重流水線過程中各環(huán)節(jié)的質量檢測和效率提升。未來,我們進一步將 LLM 納入規(guī)劃,開啟智能流水線時代。
之家流水線發(fā)展歷程與規(guī)劃
2.發(fā)展歷程
1.1
傳統(tǒng)上線流程
傳統(tǒng)的發(fā)布流程較為原始和簡陋,產品代碼由研發(fā)人員確認完畢后,線下與測試人員溝通協(xié)調,經測試人員驗證通過后即發(fā)布上線,而后由產品負責人線下聯(lián)系運維對產品進行監(jiān)測和維護。此階段的任務執(zhí)行與轉交基本為線下進行,沒有統(tǒng)一的平臺進行管理與約束,工作開展不便,各崗位人員協(xié)作也受限,導致工作效率低、產品交付慢。且由于研發(fā)側與運維側的衡量指標和工作重點不同,一方追求“新功能”、一方追求“穩(wěn)定”,以至于兩者常有爭論。隨著 DevOps(Development+Operations)理念的出現(xiàn),之家團結研發(fā)和運維人員,產品流程發(fā)展進入基礎流水線時代。
2.2
基礎流水線
DevOps 是一種思想或方法論,是一組過程、方法與系統(tǒng)的統(tǒng)稱,用于促進研發(fā)、運維和質量保障部門之間的溝通、協(xié)作與整合,強調使用自動化的方法管理軟件變更和軟件集成。DevOps 的基礎核心是 CI/CD,為了優(yōu)先處理研發(fā)和運維人員之間的矛盾,之家借鑒 CI/CD 思想對產品流程進行改造。
CI(Continuous Integration)即持續(xù)集成,是自動檢測和拉取代碼并進行編譯構建,生成多版本穩(wěn)定可靠的制品供研發(fā)人員快速使用,從而保障后續(xù)軟件交付的制品質量與產出效率。平臺支持多類研發(fā)語言,統(tǒng)一管理代碼及外部依賴,提供多種靈活可靠的制品生成方式,保障制品安全和質量,這屬于研發(fā)人員的自動化流程。
CD(Continuous Deployment)即持續(xù)部署,指平臺自動將研發(fā)人員的更改從存儲庫發(fā)布到生產環(huán)境,提供多樣化的部署方式和規(guī)范化的部署流程保障軟件交付質量和效率。主要為了解決因手動流程降低應用交付速度,從而使運維團隊超負荷的問題。
基礎流水線已經逐步將研發(fā)、運維工作結合在一起,有效加深了團隊之間的溝通和協(xié)作。運維人員會在項目研發(fā)期間就介入到開發(fā)過程中,了解研發(fā)人員使用的系統(tǒng)架構和技術路線,從而制定適當?shù)倪\維方案。而研發(fā)人員也會在運維的初期參與到系統(tǒng)部署中,并提供系統(tǒng)部署的優(yōu)化建議。并且,開始使用自動化平臺輔助開展工作,實現(xiàn)服務自動化部署上線功能,支持更快速可靠地發(fā)布產品。隨著平臺的發(fā)展,服務質量被越來越重視,在高效的同時,保障質量成為重要一環(huán),之家進一步把 QA 人員團結進來,進入當前的質效流水線時代。
3.3
質效流水線
CT(Continuous Test)即持續(xù)測試,緊密結合持續(xù)集成(CI)的流程,通過自動化測試快速、準確地執(zhí)行測試用例,及時發(fā)現(xiàn)代碼質量問題,提升測試效率和軟件質量,使得 QA 人員能夠將精力集中于優(yōu)化自動化測試用例和場景。
在此基礎上,流水線不再明顯區(qū)分測試流水線與研發(fā)流水線,而是將各種類型的測試融入主線流水線的各個環(huán)節(jié)。這樣一來,研發(fā)人員無需等待 QA 的反饋,可以及時從自動化測試中獲取問題信息并進行調整。為了迅速豐富和完善自動化測試類別,平臺利用公司內部眾多測試平臺的資源,整合了其測試功能。迄今為止,已接入的測試類別包括單元測試、靜態(tài)代碼掃描、接口測試、PC/M前端撥測、APP H5性能測試、壓力測試以及覆蓋率測試等。
基于這些豐富的測試類別,平臺將各項測試嵌入流水線的不同環(huán)節(jié),自動地并實時地檢測每個環(huán)節(jié)的質量情況。例如,在代碼提交階段進行單元測試和代碼掃描,在測試部署階段進行接口測試、性能測試和覆蓋率測試等。通過即時反饋測試結果,并根據質量檢查標準設定門禁,我們可以有效地控制流水線的進程,嚴格把控服務質量。
我們進一步在 CI/CD 的背景下對基礎流水線進行了改造。在 CI 階段,平臺支持多類研發(fā)語言,統(tǒng)一管理代碼及外部依賴,提供多種靈活可靠的制品生成方式,保障制品安全和質量。代碼與版本控制作為質效流水線的第一步,需求進入開發(fā)階段,應用代碼版本統(tǒng)一使用 Git 系統(tǒng)進行管理,平臺通過應用實現(xiàn)語言等屬性來劃分后續(xù)上線申請的檢測機制。為了提高開發(fā)及后續(xù) CI 階段編譯效率(使用代理及本地存儲方式)和安全性(管控外部訪問地址),平臺統(tǒng)一使用 nexus 私服進行管理程序依賴的第三方包、業(yè)務基礎包,支持 java、nodejs、go、.net 等各種語言。
主要的編輯構建任務基于jenkins集群實現(xiàn),支持虛機、容器兩種構建環(huán)境,兩者互為補充,彼此獨立工作;支持通用性、個性化兩種任務類別,適配特殊依賴環(huán)境構建;支持鏡像、壓縮包兩種制品產出物,應對容器、虛機部署方式。編譯構建中鏡像制品比例達到89.7%,平臺對其支持力度也是最大的,提供平臺、業(yè)務、私有三類基礎鏡像,支持 dockerfile 的自定義編排及預覽,實現(xiàn)快速、靈活的鏡像配置,提高用戶的接入效率。編輯構建制品產物,鏡像推送至Harbor鏡像倉庫,壓縮包推送至 OSS ,利用底層的多副本特性保障制品的安全。
在 CD 階段,為了統(tǒng)一各類環(huán)境配置并提高操作效率,平臺采用模板化配置和默認值等手段減少用戶配置操作。此外,還提供了環(huán)境復制功能以快速生成相同環(huán)境,并實現(xiàn)了一鍵式接入鷹眼日志和云日志,避免用戶在不同平臺間來回切換。
目前平臺已擁有19000+個有效環(huán)境。通過執(zhí)行多種合規(guī)性門禁檢測以及重要應用部署流程審批,嚴格把控應用上線質量。今年以來,已完成26000+次上線審批。平臺支持主機和容器兩類資源類型,并分別提供了多種部署方式以降低上線風險。
主機部署依賴于 OpenStack 和 salt 等技術,支持10種部署方式,如 Tomcat 多實例/多應用、可執(zhí)行文件、springboot、.net website、win service 和 yum 等。容器部署,其底層基于 kubernetes 和 container 等云原生技術。平臺支持全量、灰度和藍綠三種部署方式,同時支持特殊容器環(huán)境服務網格(Service Mesh)應用部署。
CD 環(huán)節(jié),作為部署環(huán)節(jié)的延伸,針對前端服務,平臺提供 CDN 刷新環(huán)節(jié),推動新版本的更新速度。平臺應用部署時默認接入主機、容器等基礎監(jiān)控,支持一鍵式接入云平臺日志、鷹眼日志,提高服務保障接入效率;應用管理提供服務監(jiān)控、日志快捷連接,方便用戶了解服務狀態(tài)細節(jié);提供系統(tǒng)應用統(tǒng)一看板,以全局角度展示服務業(yè)務、技術指標,支持監(jiān)控上升事件,提高用戶定位問題效率。(各個監(jiān)控平臺作用)
在質效流水線階段,平臺提供接口服務流水線、前端服務流水線、機器學習流水線、自定義等多種類型標準流水線編排模板,提高用戶編排質量和效率;針對前端相同業(yè)務類應用流水線的相似性,以預設模板的形式實現(xiàn)了應用的一鍵化創(chuàng)建,系統(tǒng)自動生成部署環(huán)境、流水線等整個過程,效率較手動創(chuàng)建提高 3 倍以上。
質效流水線整體過程展示
3.未來規(guī)劃
隨著平臺的不斷完善,我們計劃進一步對質效流水線進行改造,考慮結合 LLM(Large Language Model)大語言模型,升級進入智能流水線時代。我們考慮從以下方面拓展:
智能編排:目前流水線整體流程編排由人工完成,鏈路固化,缺乏靈活性,后期考慮引入人工智能,根據流水線任務實際運行狀態(tài)及整體資源使用情況,動態(tài)調整編排,充分利用資源,提高整體效率。
智能測試:借助大模型賦能單元測試、接口測試用例、UI自動化測試用例自動生成,通過智能裝配流水線質量測試任務,提升測試覆蓋率與效率。
智能部署:根據業(yè)務情況和應用服務常用部署方式進行有效推薦,部署失敗時智能化修復,保障軟件發(fā)布穩(wěn)定高效運行。
4. 總結
平臺流水線從傳統(tǒng)發(fā)布到現(xiàn)在經歷兩個大的階段,基礎流水線實現(xiàn)持續(xù)集成、持續(xù)部署,將研發(fā)、運營工作有效地結合在一起;考慮到服務質量的重要性,質效流水線進一步團結 QA 人員,將自動測試融入各個環(huán)節(jié);未來平臺應用會不斷增長,各種細節(jié)處理會不斷增多,這會給研發(fā)、運維、QA 人員帶來很大壓力,幸運的是我們處于AI高速發(fā)展的時代,大語言模型可以輔助我們快速實現(xiàn)功能開發(fā)、服務測試、編排部署等各種任務,這是一件美妙的事情,也是我們共同期待的智能時代。
作者簡介
錢磊
■ 云平臺部-平臺運營組
■ 2021年加入汽車之家,目前主要負責之家云A-One平臺相關研發(fā)工作,旨在提供穩(wěn)定、高效、保質的自動化流水線服務。
陸艷
■ 云平臺部-平臺運營組
■ 2016年加入汽車之家,目前主要負責之家云平臺CI/CD、日志、監(jiān)控、測試工具等相關產品工作。
來源:微信公眾號:之家技術
出處:https://mp.weixin.qq.com/s/y72V_Y-t0s5Yp2AJdgk6ug