精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

前端大規(guī)模構(gòu)建演進實踐

新聞 前端
好的架構(gòu)不是設(shè)計出來⽽是演進出來。在未來,構(gòu)建任務(wù)可能會越來越多,項⽬也越來越復(fù)雜化,我們就 會考慮容器化⽅案,根據(jù)實際情況去考慮,容器構(gòu)建,鏡像發(fā)布,盡可能的節(jié)約資源。

[[395088]]

掌⻔教育⾃動化構(gòu)建歷程

在業(yè)內(nèi)前端構(gòu)建,⼀般分為三種:

  1. ⼿動觸發(fā)構(gòu)建:這個階段⾮常原始,需要我們⾃⼰在本地進⾏ git pull/npm install/npm run build 等 等操作,也容易出現(xiàn)問題;
  2. 虛擬機 Jenkins 集群分布式構(gòu)建:通過 Master 將任務(wù)分配到對應(yīng)的 Slave 機器上執(zhí)⾏構(gòu)建,能極⼤ 的均衡資源,利⽤性能,同時解放雙⼿;
  3. 容器集群構(gòu)建:容器構(gòu)建,鏡像發(fā)布,可以進⼀步的節(jié)約資源;

不過掌⻔教育在 2019 年之前,前端研發(fā)更多是在本地進⾏構(gòu)建,再通過運維的腳本來進⾏部署,也容易 導致出現(xiàn)⽣產(chǎn)故障。所以我們收集反饋,結(jié)合實際情況,開發(fā)出 v1.0 構(gòu)建模式,也取得了很好的成果。但 并沒有以此就認為⾼枕⽆憂,也對很多痛點進⾏持續(xù)的優(yōu)化,最后迭代出 v2.0 的⽅案。在這個過程中,前 端業(yè)務(wù)壯⼤,CI 構(gòu)建經(jīng)過 400+ 多應(yīng)⽤,每周 2000+ 次構(gòu)建,300+ 次的⽣產(chǎn)發(fā)布的⼤考,持續(xù)的成 ⻓。

v1.0 ⾯對的挑戰(zhàn)

v1.0 前端構(gòu)建狀況,⼀種是通過 webhook 來觸發(fā)流⽔線構(gòu)建,第⼆種是通過在 cd 上新建構(gòu)建單來觸構(gòu) 建。如果構(gòu)建任務(wù)⽐較多,按照單臺機器的是遠遠不夠,在這種情況下就需要借助 Jenkins 的 Master/Slave 的主從模式,來解決服務(wù)器的資源壓⼒。讓 Master 的服務(wù)器來進⾏調(diào)度資源,指定空閑 Slave 機器進⾏構(gòu)建。當 Slave 機器上構(gòu)建任務(wù)滿了,構(gòu)建任務(wù)繼續(xù)在 Master 排隊池中繼續(xù)等待,等 Slave 空閑后,再進⾏分配。

存在的挑戰(zhàn)

v1.0 不是最好的⽅案,同時暴露出第⼀次構(gòu)建慢、錯誤⽇志反饋不明確等問題,另外⼀點就是 job 維護困 難。要解決這些問題,就需要重新開始,重新設(shè)計。

⾸先就是 JOB 維護困難,v1.0 的任務(wù)模式是多個應(yīng)⽤對應(yīng) 1 個 job,這就導致⼏個問題,如果 job 發(fā)版 導致掛了,影響到全部。假如需要復(fù)⽤該 job,進⾏定制化開發(fā)也⽐較困難。

其次第⼀次構(gòu)建慢的問題,更多在資源調(diào)度上和⽆法復(fù)⽤ Workspace,根據(jù)之前的資源調(diào)度模式,當我們 把任務(wù)分配到 A 機器,該任務(wù)被執(zhí)⾏成功,那么下次的任務(wù)也會⾛⼊到這臺 A 機器。以此觀察,就會發(fā) 現(xiàn)⼤部分任務(wù)都會優(yōu)先去搶占 A 機器。這家就導致了⼏個問題:

  1. 資源調(diào)度不均衡;
  2. npm 緩存越來越⼤;

最后是⽆法復(fù)⽤ Workspace 模式,在 v1.0 情況下,不復(fù)⽤ Workspace 模式是會帶來以下優(yōu)勢:保證 node_module ⽆污染問題,同時也避免了 npm run build 的各種因為 node_module 包污染的問題,導 致的意外錯誤。所以在 v2.0 就需要應(yīng)對污染的問題。同時也要考慮在復(fù)⽤ Workspace 后,如何最⼤化 的利⽤其特點,⽐如,從 node_module 緩存、npm install 跳過等。

v2.0 優(yōu)化⽅案

資源調(diào)度

⾸先需要對資源調(diào)度進⾏優(yōu)化,那就需要重新設(shè)計,把⼀組機器分為多個切⽚組,每個切⽚組調(diào)度順序不 同。當應(yīng)⽤觸發(fā)構(gòu)建時,分配對應(yīng)的 key值:

  1. 1 AppNodeKey = AppId%nodes 

再根據(jù)劃分的 key,尋找對應(yīng)的機器組,如 [0,1,2,3,4],構(gòu)建任務(wù)去尋找 0 號機,尋找對應(yīng)的 AppId 的 Workspace ⽬錄地址去執(zhí)⾏構(gòu)建任務(wù),假如任務(wù)被占⽤(默認是 2 個任務(wù),這樣可以優(yōu)化資源不會被⼤ 量任務(wù)搶占),會再尋找下⼀臺機器,這樣機器資源調(diào)度就會均衡化。

構(gòu)建 job 流⽔線化

我們對不同的⼯程項⽬進⾏了模板化,⽐如 PC項⽬、H5 項⽬、游戲項⽬、hybrid 項⽬等等,在模板基 礎(chǔ)上,我們⼜封裝出來打包流⽔線模板,這樣的好處是,我們可以⾃⼰去針對各個類型的⼯程模板做⼀些 定向的配置優(yōu)化,⽐如說我們的游戲類型項⽬,我們?nèi)プ?#12032;個構(gòu)建、打包,我們就可以在對應(yīng)的開發(fā)組件 庫依賴這⼀塊,做⼀些對應(yīng)的緩存、通知、報告等等。

流⽔線同時也帶來了⼀些好處:

  • 第⼀,我們把構(gòu)建任務(wù)進⾏了⽣命周期化,git cone、npm install、npm build,把這些階段全部進⾏拆 開,讓整個任務(wù)流程顆粒化,這樣的好處是,我們可以在每⼀個顆粒之間找到優(yōu)化空間,⽐如是不是可以 不進⾏npm install,⽐如上傳制品倉庫的邏輯優(yōu)化等等。
  • 第⼆,可以指定DSL,我們可以實時監(jiān)聽打包排隊的情況,在資源調(diào)度層⾯做⼀些優(yōu)化。同時可以做⼀些 埋點進⾏采集數(shù)據(jù),給后續(xù)進⾏深⼊分析。
  • 第三,我們甚⾄可以在構(gòu)建、打包過程中,做⼀些交互的相關(guān)操作,⽐如,我們打包⼀個 h5 項⽬,需要測試同學來進⾏審核,只有測試審核通過完之后,才進⼊到下⼀流程,下⼀個流程可能是進⾏ UAT 打包、 ⽣產(chǎn)打包等等。
  • 第四,針對項⽬依賴拉取,最開始的時候,我們做的是全量的拉取,我們現(xiàn)在可以優(yōu)化為增量拉取,這 樣,服務(wù)器的壓⼒會減輕很多

錯誤治理

不管是在本地還是 cd 平臺上進⾏構(gòu)建,也容易出現(xiàn)各種意想不到的錯誤。⽐如開發(fā)的疏忽,流⽔線的 git commit 未經(jīng)過驗證進⾏提交代碼,都可能在 npm run build、或者 npm install 這兩個階段報出不同的 錯誤,所以就需要對⽇志提示進⾏分級集,劃分為兩種類型:

  1. warning 類型:沒有 package-lock.json 提示,不影響到任務(wù)構(gòu)建;
  2. error 類型:導致 job 任務(wù)退出,⽐如依賴包未找到等; 4

我們對 npm install、npm run build,及構(gòu)建的各個階段的觀察,可以把失敗歸納為 4 個觸發(fā) warning 或 error 類型:

  1. 語法錯誤:代碼沖突...
  2. 程序異常:內(nèi)存溢出…
  3. Install 失敗:未找到安裝包…
  4. 配置錯誤:構(gòu)建未按照規(guī)范輸出…

遵守“觀察⽇志-沉淀規(guī)則-修正反饋準確率”規(guī)則,來沉淀⽇志規(guī)則。

npm install 跳過

在復(fù)⽤ Workspace 的情況下,已經(jīng) install 好的 node_modules,就沒必要進⾏⼆次重復(fù) npm install, 就需要考慮只有依賴進⾏變更時,再重新 npm isntall。同時也容易帶來問題,node_modules 污染,我 們采取了多種⽅式來避免 node_modules 被污染掉。

  1. cache 定期檢查;
  2. 切換 node 版本時,執(zhí)⾏ npm rebuild,重新進⾏編譯⼀些需要依賴 gc++ 環(huán)境構(gòu)建的包,如 node- sass;
  3. CD ⻚⾯增加⼿動清理 Workspace 選項;

帶來的收益

⽬前,我們對⽐以前的 v1.0 ⽅案,整體有了 20%+ 構(gòu)建速度的提升,這對我們團隊來說,也算是⼀個不 ⼩的正向激勵,說明我們之前努⼒的⽅向是正確的。

遷移過程

在 v1.0 遷移到 v2.0,需要考慮如何進⾏平滑遷移,我們基于以下來進⾏遷移:

1:每個應(yīng)⽤建⽴獨⽴ v2.0 Job 任務(wù),⽅便快速變更及排查問題;

2:⻚⾯上⽀持快速回滾到 v1.0;

3:選擇 git commit、node 版本等信息保持不變,⽆感;

總結(jié)

好的架構(gòu)不是設(shè)計出來⽽是演進出來。在未來,構(gòu)建任務(wù)可能會越來越多,項⽬也越來越復(fù)雜化,我們就 會考慮容器化⽅案,根據(jù)實際情況去考慮,容器構(gòu)建,鏡像發(fā)布,盡可能的節(jié)約資源。

 

 

責任編輯:張燕妮 來源: 博客園
相關(guān)推薦

2023-11-20 07:27:00

云原生Spark

2023-09-08 10:13:35

存儲EC系統(tǒng)

2025-10-16 09:14:48

2025-06-10 08:15:00

LLM大語言模測試

2022-07-07 11:00:09

美團模型實踐

2013-03-22 14:44:52

大規(guī)模分布式系統(tǒng)飛天開放平臺

2025-03-06 10:33:04

2016-01-12 14:59:40

分布式存儲分布式存儲架構(gòu)

2023-06-28 08:23:41

搜索語義模型

2020-06-10 10:00:53

Serverless數(shù)據(jù)處理函數(shù)

2016-04-15 00:43:13

2022-03-15 18:33:34

URL重構(gòu)Dubbo3.0

2023-05-26 08:39:44

深度學習Alluxio

2021-09-06 11:15:05

數(shù)據(jù)治理字節(jié)跳動埋點

2014-04-27 10:16:31

QCon北京2014Andrew Bett

2017-01-11 15:54:53

SDN網(wǎng)絡(luò)數(shù)據(jù)中心中國移動

2024-09-26 10:41:31

2025-02-18 09:48:58

2024-01-10 18:49:47

點贊
收藏

51CTO技術(shù)棧公眾號

欧美日韩综合在线| 成人高清视频在线| 久久九九亚洲综合| 中文字幕在线播放视频| 三妻四妾完整版在线观看电视剧| 久久九九全国免费| 51国产成人精品午夜福中文下载 | 一本色道久久综合狠狠躁的番外| 日本精品一级二级| 糖心vlog在线免费观看| 偷拍自拍在线视频| 久久超碰97中文字幕| 国内精品视频久久| 麻豆av免费观看| 九九热这里有精品| 午夜精品久久久久久久蜜桃app| 日本不卡一区| www三级免费| 免费在线看成人av| 7m精品福利视频导航| 国产真实乱在线更新| 杨幂一区二区三区免费看视频| 91精品久久久久久久99蜜桃| 日韩网址在线观看| 哥也色在线视频| 久久精品视频一区| 国产色综合一区二区三区| 一二三区中文字幕| 久久人人超碰| 久久青草精品视频免费观看| 日韩在线一卡二卡| 亚洲激情播播| 亚洲风情亚aⅴ在线发布| 国产成人美女视频| 成人精品动漫| 91国产福利在线| 日日摸日日碰夜夜爽av| 日本在线视频中文有码| 国产精品国产三级国产aⅴ中文 | 国产色视频一区| youjizz在线视频| 亚洲麻豆一区| 欧美精品九九久久| 欧美日韩精品亚洲精品| 亚洲国产精品久久久久蝴蝶传媒| 中文字幕在线看视频国产欧美| 懂色av粉嫩av蜜乳av| 久久精品国产亚洲blacked| 日韩一区二区三区视频在线观看| 日本中文字幕观看| 久久精品97| 欧美性受xxxx黑人xyx性爽| 男人靠女人免费视频网站| 91九色porn在线资源| 亚洲国产精品一区二区久久恐怖片 | mm1313亚洲国产精品无码试看| 2022成人影院| 色婷婷亚洲精品| 欧美黄色一级片视频| 暖暖成人免费视频| 欧美视频一区二区三区四区 | 久久亚洲资源中文字| 欧美在线你懂的| 一级在线免费视频| 91国内外精品自在线播放| 欧美专区亚洲专区| 中文字幕亚洲欧洲| 成人动漫视频在线观看| 欧美一二三区在线| 中文字幕天堂网| 亚洲妇女av| 在线看日韩av| 四虎精品免费视频| 激情国产一区| 日韩av高清不卡| 伊人精品一区二区三区| 国产在线观看免费一区| 国产v亚洲v天堂无码| 少妇av一区二区| jiyouzz国产精品久久| 女女同性女同一区二区三区91| 成全电影播放在线观看国语| 一区二区中文视频| 国产欧美精品aaaaaa片| 三妻四妾的电影电视剧在线观看| 日本精品免费观看高清观看| 中文字幕免费高清在线| 日韩精品一区二区三区中文| 亚洲精品在线观| 欧美图片第一页| 91精品成人| 668精品在线视频| 中文字幕第2页| 丁香五精品蜜臀久久久久99网站 | aaaaaaaa毛片| 日韩电影不卡一区| 久久午夜a级毛片| 亚洲精品77777| 蜜乳av一区二区三区| 国产成人一区二区三区免费看| 精品av中文字幕在线毛片 | 亚洲天堂第一区| 成人福利视频| 精品国产人成亚洲区| 黑人巨大精品欧美| 你懂的国产精品| 国产www精品| 亚洲AV无码一区二区三区性| 国产三级一区二区三区| 人人妻人人澡人人爽欧美一区| 怡红院成人在线| 日韩精品在线网站| 99在线视频免费| 亚洲乱亚洲高清| 91影院在线免费观看视频| 精品999视频| 亚洲国产一区视频| 国产美女视频免费看| 国产亚洲一卡2卡3卡4卡新区 | 日韩国产高清视频在线| 69xx绿帽三人行| 免费人成在线不卡| 欧美18视频| www.51av欧美视频| 日韩色在线观看| 亚洲 欧美 国产 另类| 美女日韩在线中文字幕| 国产精品二区三区| 在线你懂的视频| 制服丝袜在线91| 久久久久久成人网| 丝袜美腿高跟呻吟高潮一区| 国产免费一区| 久久香蕉一区| 精品欧美久久久| 免费网站看av| 国产黄人亚洲片| 亚洲av首页在线| 国产视频一区二区在线播放| 在线午夜精品自拍| 午夜精品一区二| 久久精品人人爽人人爽| www.浪潮av.com| 视频福利一区| 97av在线视频| 日韩精品视频无播放器在线看| 亚洲777理论| 亚洲精品激情视频| 激情文学一区| 九九久久99| 老司机2019福利精品视频导航| 亚洲精品美女久久久久| 欧美精品亚洲精品日韩精品| 26uuu亚洲综合色欧美| 免费毛片小视频| 国产99亚洲| 国产成人综合亚洲| 一级毛片视频在线| 欧美一区二区三区在线观看视频| 99久久婷婷国产综合| 国产一区二区三区精品欧美日韩一区二区三区 | 最新国产精品自拍| 欧美日韩视频| 国内不卡一区二区三区| 成人教育av| 色噜噜国产精品视频一区二区 | 中文字幕成在线观看| 亚洲精品视频播放| 精品国产青草久久久久96| 国产精品电影院| 日本成人在线免费观看| 国内成人在线| 乱色588欧美| 亚洲精品一区三区三区在线观看| 色黄久久久久久| 精品国产一级片| 精品欧美aⅴ在线网站| 四虎影成人精品a片| 美腿丝袜亚洲综合| 男人草女人视频| 特黄特色欧美大片| 国产精品美乳在线观看| 在线观看av免费| 亚洲精品在线看| 91精品国产乱码久久久| 亚洲成人免费在线观看| 四虎国产精品成人免费入口| 精品一区二区免费看| 国产二级片在线观看| 日韩免费高清| 国产精品推荐精品| 2019年精品视频自拍| 久久国产精品网站| 久久av少妇| 91精品国产欧美一区二区18| 久久国产精品系列| 国产精品电影一区二区三区| 伊人久久一区二区三区| 免费看日韩精品| 久久久久久久午夜| 国产精品久久久久蜜臀| 久久综合九色99| 国产亚洲高清一区| 国产精品久久久久9999| gogo久久| 另类色图亚洲色图| 免费在线超碰| 精品国产乱码久久久久久免费| 中文字幕资源网| 精品国产乱码久久久久酒店| 中文字幕观看av| 国产欧美一区二区精品婷婷| 麻豆免费在线观看视频| 麻豆久久久久久| 浮妇高潮喷白浆视频| 午夜欧美精品久久久久久久| 深夜福利成人| 尤物tv在线精品| 成人综合色站| 国产美女亚洲精品7777| 国产精品久久久亚洲| 一个人看的www视频在线免费观看| 精品国产视频在线| 福利视频在线看| 国产视频自拍一区| 日韩一区二区三区在线观看视频| 91精品啪在线观看国产60岁| 波多野结衣视频观看| 日韩欧美精品免费在线| 国产精品suv一区二区| 一区二区三区在线视频观看58| 久久午夜精品视频| 欧美国产日产图区| 波多野结衣片子| 91色综合久久久久婷婷| 亚洲av成人精品一区二区三区| 国产一区三区三区| 国产一伦一伦一伦| 美女视频网站黄色亚洲| av五月天在线| 欧美aaaaa成人免费观看视频| 337p粉嫩大胆噜噜噜鲁| 国产欧美欧美| 日韩av三级在线| 欧美一级一区| 少妇高清精品毛片在线视频| 亚洲欧美卡通另类91av| 97成人在线观看视频| 亚洲影院在线| av网址在线观看免费| 青青草成人在线观看| 一区二区xxx| 精品一区二区三区影院在线午夜| 婷婷中文字幕在线观看| 国产精品一二三在| 好吊操视频这里只有精品| 成人性生交大合| 国产女人18毛片水真多18| 91污在线观看| 色噜噜日韩精品欧美一区二区| 久久麻豆一区二区| 国产三级黄色片| 国产精品成人午夜| 免费中文字幕在线| 亚洲电影一区二区| 日韩毛片一区二区三区| 日本高清不卡视频| 亚洲一级片免费看| 欧美一区二区三区在线看 | 亚洲图片在区色| 免费日本一区二区三区视频| 大胆人体色综合| 24小时免费看片在线观看 | 精品国产乱码久久久久久樱花| 亚洲专区中文字幕| 欧美日韩一区二区三区四区不卡 | 欧美裸体一区二区三区| a在线观看视频| 日韩成人在线网站| 91欧美在线视频| 色综合天天综合网国产成人网 | 欧美性天天影视| 欧美黑人xxx| 桃花岛tv亚洲品质| 亚洲综合在线小说| 丝袜久久网站| 中文字幕中文字幕在线中心一区 | 91av视频在线观看| jizz久久久久久| 国产精品一区二区免费| 波多野结衣一区| 中文精品无码中文字幕无码专区| 另类av一区二区| www激情五月| 久久综合久久鬼色| 91久久久久久久久久久久久久 | 欧美高清在线一区二区| 日本中文字幕免费在线观看| 日韩欧美一区二区三区久久| 国产绳艺sm调教室论坛| 日韩精品一区二区视频| 成人看片免费| 国产精品久久激情| 欧美亚洲国产日韩| 久久久久亚洲av无码专区喷水| 性一交一乱一区二区洋洋av| 一区二区三区四区毛片| 久久久国产午夜精品| 国产精品 欧美 日韩| 91超碰这里只有精品国产| 亚洲欧美日韩成人在线| 久久成人18免费网站| 成人精品国产亚洲| 麻豆传媒一区二区| 国产精品v一区二区三区| 天堂视频免费看| 久久婷婷成人综合色| 国产 日韩 欧美 成人| 91精品国产品国语在线不卡| 91porn在线观看| 清纯唯美亚洲综合| 日韩成人午夜| 国产乱淫av片杨贵妃| 国产一区不卡精品| 长河落日免费高清观看| 色偷偷一区二区三区| 五月婷婷久久久| 亚州欧美日韩中文视频| 91精品国产自产精品男人的天堂 | 国产视频不卡| 最新国产精品| 国产伦精品一区二区三区妓女下载| 欧美韩国日本综合| 国产性生活视频| 亚洲少妇激情视频| 自拍网站在线观看| 欧美日韩国产一二| 亚洲在线日韩| 亚洲一区二区三区无码久久| 亚洲国产成人高清精品| 亚洲精品视频91| 欧美激情aaaa| 国产66精品| 欧美男女爱爱视频| 成人av动漫在线| 国产成人在线观看网站| 337p日本欧洲亚洲大胆色噜噜| 激情图片在线观看高清国产| 高清日韩一区| 99精品国产一区二区青青牛奶| 国产黑丝在线观看| 偷拍一区二区三区| 三级黄视频在线观看| 欧美在线日韩在线| 精品毛片免费观看| www.激情小说.com| 国产精品萝li| 99热这里只有精品3| 欧美精品日韩三级| 国产精品qvod| 日本免费黄视频| 中文字幕欧美激情一区| 在线不卡免费视频| 欧美老少配视频| 精品国产午夜肉伦伦影院| 精品久久久久久久免费人妻| 国产拍欧美日韩视频二区 | 亚洲精品www久久久| 日韩免费福利视频| 色视频一区二区三区| 黑人巨大精品欧美一区| 麻豆一区产品精品蜜桃的特点| 亚洲精品电影在线观看| 台湾佬中文娱乐久久久| 国产免费一区二区三区四在线播放| 国产成人在线视频播放| 欧美一二三区视频| 色偷偷偷综合中文字幕;dd| 日韩精品一区二区三区中文字幕| 亚洲国产精品无码观看久久| 久久久久久久综合| 7777久久亚洲中文字幕| 久久久久久久一区二区三区| 亚洲综合小说图片| 欧美激情第四页| 第一福利永久视频精品| 日本网站在线免费观看视频| 国产精品永久入口久久久| 日韩成人伦理电影在线观看| 一区二区三区影视| 精品爽片免费看久久| 久久91视频| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 国产精品视频一二三区| 秋霞网一区二区| 成人福利在线观看| 国产视频一区三区| 午夜爽爽爽男女免费观看| 亚洲精品在线视频| 一区中文字幕|