精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

日本在线不卡视频一二三区| 精品av导航| 亚洲欧美国产三级| 国产日本一区二区三区| 久久永久免费视频| 国产精品久久观看| 亚洲国产欧美精品| 91 在线视频观看| 97天天综合网| 国产精品成人免费在线| 国产一区二区三区免费不卡| 午夜一区二区三区四区| 欧美成人嫩草网站| 亚洲天堂日韩电影| 中文字幕无人区二| www.一区| 色综合av在线| 三上悠亚久久精品| 成a人片在线观看| 91色.com| 国产精品久久亚洲| 国产视频手机在线观看| 首页国产欧美久久| 久久久久久久成人| 999福利视频| 亚洲黄页网站| 精品成人一区二区三区四区| 欧美 日韩 国产 激情| 免费在线看污片| 亚洲欧洲日韩综合一区二区| 欧美大香线蕉线伊人久久| 国产白浆在线观看| 捆绑调教美女网站视频一区| 奇米成人av国产一区二区三区| 久久精品视频免费在线观看| 日韩激情图片| 亚洲网在线观看| 先锋资源av在线| av成人综合| 日韩一二三区视频| 三日本三级少妇三级99| 成人国产激情| 欧洲一区二区av| 国产精品少妇在线视频| 中文字幕乱码在线播放| 亚洲第一狼人社区| 国产一区二区三区小说| 亚洲无线看天堂av| 亚洲综合偷拍欧美一区色| 自拍偷拍亚洲色图欧美| 欧美96在线| 成人免费小视频| 中文字幕色一区二区| 婷婷成人激情| 亚洲色图视频免费播放| 亚洲欧美一二三| 黄色动漫在线| 亚洲另类一区二区| 高清无码视频直接看| 欧美四级在线| 亚洲成人动漫av| 国产二区视频在线| 日韩av影片| 色综合欧美在线| 欧美激情国产精品日韩| 欧美电影免费观看网站| 色94色欧美sute亚洲13| 亚洲天堂网一区| 免费日韩成人| 欧美一级黄色大片| 亚洲一二三四五| 欧美韩一区二区| 亚洲乱码国产乱码精品精| 一区二区精品免费| 爽成人777777婷婷| 乱亲女秽乱长久久久| 久草网视频在线观看| 亚洲精品极品| 国产999精品| 亚洲中文字幕一区二区| 国产精品一区二区不卡| 久久精品国产理论片免费| 国产福利第一视频在线播放| 中文字幕一区二区三区精华液| 永久免费网站视频在线观看| h片在线观看下载| 色综合久久综合网| 黄色小视频免费网站| 91九色鹿精品国产综合久久香蕉| 亚洲国产日韩精品在线| 内射毛片内射国产夫妻| 欧美色图麻豆| 国产精品成人在线| 精品人妻一区二区三区换脸明星| 99久久久精品免费观看国产蜜| 欧洲成人一区二区| 主播国产精品| 欧美日韩中文字幕在线| 人人干人人干人人| 大型av综合网站| 伊人精品在线观看| 国产真人真事毛片| 奇米精品一区二区三区四区| 国产成人精品免费视频大全最热 | 久久九九视频| 9色在线观看| 精品人伦一区二区三区蜜桃免费 | 国产又色又爽又黄的| 日韩精品乱码免费| 国产精品久久久久久免费观看| 高清在线观看av| 婷婷久久综合九色综合绿巨人 | 伊人精品久久| 正在播放欧美一区| 日韩欧美一级视频| 国产成人综合网| 日韩一区二区电影在线观看| sm捆绑调教国产免费网站在线观看 | 亚洲天堂网在线观看| www.av视频在线观看| 极品尤物av久久免费看| 日韩精品福利视频| 忘忧草在线日韩www影院| 日韩视频中午一区| 五月激情四射婷婷| 丝袜亚洲精品中文字幕一区| 国产视频99| 欧美日韩色网| 日韩视频一区二区三区| 中文字幕电影av| 久久99久久精品欧美| 欧美一区国产一区| 末成年女av片一区二区下载| 欧美va天堂va视频va在线| 国产福利在线导航| 免费人成在线不卡| 日韩亚洲欧美精品| 国产精品久久亚洲不卡| 亚洲久久久久久久久久久| 日本a在线观看| 成人免费黄色在线| 91九色丨porny丨国产jk| jizz性欧美23| 久久人人爽人人爽人人片av高请 | 性欧美xxxx视频在线观看| 亚洲av无码国产精品永久一区| 1000精品久久久久久久久| 污视频免费在线观看网站| 日韩欧美视频| 成人国产精品久久久| 免费网站免费进入在线| 91精品国产综合久久婷婷香蕉| 中文字幕无码日韩专区免费| 精品一区二区三区蜜桃| 天天在线免费视频| 国产免费av国片精品草莓男男| 久久人人爽人人爽爽久久| 99er热精品视频| 亚洲资源在线观看| 在线观看av中文字幕| 亚洲主播在线| 欧美中日韩一区二区三区| 成人影院在线免费观看| 久久天天躁狠狠躁夜夜爽蜜月 | 国产成人精品综合在线观看| 91黄色在线看| 亚洲精品国模| 国产精品尤物福利片在线观看| 欧美69xxxx| 精品久久久久久久久久久久久久久| 日韩成人高清视频| 国产视频在线观看一区二区三区 | 激情欧美一区二区三区黑长吊| 日韩中文字幕久久| 国产丰满美女做爰| 精品露脸国产偷人在视频| 在线小视频你懂的| 国内精品伊人久久久久av影院| 蜜臀av性久久久久蜜臀av| 国产+成+人+亚洲欧洲在线| 97精品视频在线观看| 东热在线免费视频| 日韩视频一区二区三区| 欧美另类一区二区| 国产精品久久久久久久久快鸭| 精品国产午夜福利在线观看| 亚洲欧美视频一区二区三区| gogogo免费高清日本写真| 日本韩国欧美超级黄在线观看| 国产精品普通话| 国精一区二区三区| 亚洲性av网站| 亚洲精品网站在线| 在线视频综合导航| 久久婷婷国产麻豆91| 亚洲国产成人一区二区三区| 折磨小男生性器羞耻的故事| 日韩高清在线电影| 亚洲人精品午夜射精日韩| 久久中文视频| 麻豆精品视频| 91麻豆精品激情在线观看最新 | 高潮一区二区三区| 国产视频亚洲| 黄色片免费在线观看视频| 精品久久国产| 激情一区二区三区| 日韩成人在线观看视频| 国产精品免费久久久久影院| 97在线超碰| 欧美裸体男粗大视频在线观看| 国产午夜精品一区理论片| 精品成人a区在线观看| 国产又粗又黄视频| 色婷婷精品大在线视频| 久久高清免费视频| 一区二区三区在线视频观看58| 精品成人无码一区二区三区| av在线播放一区二区三区| 男人操女人下面视频| 麻豆国产91在线播放| 男女av免费观看| 99精品国产在热久久婷婷| 天天做天天躁天天躁| 亚洲精品二区三区| 亚洲一区二区三区加勒比| 欧美另类69xxxxx| 欧美福利精品| 亚洲三级精品| 精品无人区一区二区三区| 91九色鹿精品国产综合久久香蕉| 成人黄色中文字幕| 国产亚洲人成a在线v网站| 日本欧美爱爱爱| 成人免费看黄| 日本欧美黄网站| 写真福利精品福利在线观看| 欧美在线性视频| 手机在线观看av| 午夜精品久久久久久久99热浪潮| 国内小视频在线看| 久久久久久久久久国产精品| 欧美精品videosex| 久久久久久久久久婷婷| 视频在线这里都是精品| 欧美国产日韩一区二区三区| 国产乱码在线| 欧美亚洲激情在线| 欧美三级网址| 国产精品男女猛烈高潮激情| 成人av色网站| 91在线视频免费| 日韩亚洲精品在线观看| 99精彩视频| 精品福利一区| 日本免费高清一区二区| 日韩一级毛片| 日韩video| 亚洲毛片一区| 亚洲人成色77777| 日本美女视频一区二区| 天天摸天天舔天天操| 国产大陆精品国产| 亚洲第一黄色网址| 国产日韩欧美精品在线| 美女福利视频网| 一个色综合网站| 久久夜色精品国产噜噜亚洲av| 色婷婷av一区二区三区软件| 夜夜躁很很躁日日躁麻豆| 欧美一区二区三区男人的天堂| 免费国产精品视频| 亚洲欧洲xxxx| 大片免费在线看视频| 97国产一区二区精品久久呦| 亚洲精品粉嫩美女一区| 亚洲综合中文字幕68页| 香蕉视频一区二区三区| 亚洲一卡二卡| 在线成人www免费观看视频| 久久久久国产精品熟女影院| 国产一区免费电影| 99久久人妻无码中文字幕系列| 国产欧美精品一区二区色综合 | 欧美精品欧美精品| 999成人精品视频线3| www.xxx麻豆| 日本va欧美va瓶| 超碰caoprom| 国产精品久久久久影院亚瑟| 成人免费看片98| 欧美在线免费播放| 亚洲精品国产手机| 中文字幕国内精品| www.youjizz.com在线| 91精品一区二区| 免费av一区| 青青草免费在线视频观看| 久久精品道一区二区三区| 日本一本在线视频| 国产欧美日产一区| av黄色在线看| 欧美xxxxxxxxx| 在线观看免费版| 茄子视频成人在线| 91精品短视频| 日本美女爱爱视频| 日本va欧美va瓶| 亚洲自拍偷拍一区二区| 亚洲最大色网站| 一级做a爰片久久毛片16| 日韩av影视综合网| 国语对白在线刺激| 亚洲自拍偷拍在线| 久久国产成人精品| 国产极品美女高潮无套久久久| 福利一区二区在线观看| 男人的午夜天堂| 在线观看亚洲一区| 你懂的视频在线| 97在线免费观看视频| 丁香5月婷婷久久| 男人j进女人j| 极品少妇xxxx精品少妇偷拍| 国产传媒在线看| 欧美午夜不卡在线观看免费| 日本一卡二卡四卡精品| 国产91精品不卡视频| eeuss鲁片一区二区三区| 波多野结衣 作品| 国产精品自拍在线| 夫妻性生活毛片| 欧美精品丝袜中出| 最新97超碰在线| 91精品国产综合久久久久久蜜臀 | 污视频网址在线观看| 欧美激情一区二区三区在线| 成人毛片一区二区三区| 亚洲男人天堂网站| 国产高清不卡| 欧美性xxxx69| 巨乳诱惑日韩免费av| 波多野结衣 在线| 91国偷自产一区二区三区观看| 国产一二三在线观看| 国产精品久久久久一区二区| 精品国产1区| 国产一线二线三线在线观看| 亚洲国产高清在线| 97视频免费在线| 久久精品福利视频| 亚洲图色一区二区三区| 久久av综合网| 久久一二三国产| 亚洲视屏在线观看| 久久九九国产精品怡红院| 欧美第一在线视频| 黄色一级片在线看| 91丨porny丨国产| a片在线免费观看| 久久久99免费视频| 成人看片黄a免费看视频| 日韩a∨精品日韩在线观看| 久久久久亚洲蜜桃| 在线播放一级片| 色综合视频一区中文字幕| 大桥未久女教师av一区二区| 97xxxxx| 国产精品久久久久三级| 国产成人精品一区二三区四区五区| 欧美国产精品人人做人人爱| 亚洲综合福利| 成年人三级黄色片| 亚洲午夜激情av| 精品av中文字幕在线毛片| 成人日韩av在线| 一本不卡影院| 国产午夜精品久久久久久久久| 欧美一级久久久久久久大片| 偷拍自拍在线看| 亚洲第一精品区| 99久久综合色| 亚洲一区 中文字幕| 久久久久久久久久婷婷| 欧美丝袜丝交足nylons172| 国产视频1区2区3区| 亚洲福利视频导航| 91caoporm在线视频| 国模精品娜娜一二三区| 麻豆国产欧美日韩综合精品二区| 国产亚洲精久久久久久无码77777| 亚洲欧美日韩国产中文专区| 成人污版视频| 黄色a级片免费| 亚洲最大色网站| 日本视频在线免费观看| 精品国产一区二区三区麻豆小说| 久久国产麻豆精品| 日本一区二区免费电影| 色综合天天综合网国产成人网|