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