<cite id="ffb66"></cite><cite id="ffb66"><track id="ffb66"></track></cite>
      <legend id="ffb66"><li id="ffb66"></li></legend>
      色婷婷久,激情色播,久久久无码专区,亚洲中文字幕av,国产成人A片,av无码免费,精品久久国产,99视频精品3
      網易首頁 > 網易號 > 正文 申請入駐

      上線卡半夜、出 bug 只能硬扛?前端自動化部署 + 秒級回滾方案來了

      0
      分享至

      點擊下方“JavaEdge”,選擇“設為星標”

      第一時間關注技術干貨!

      本文已收錄在Github,關注我,緊跟本系列專欄文章,咱們下篇再續!

      • 魔都架構師 | 全網30W技術追隨者

      • 大廠分布式系統/數據中臺實戰專家

      • 主導交易系統百萬級流量調優 & 車聯網平臺架構

      • AIGC應用開發先行者 | 區塊鏈落地實踐者

      • 以技術驅動創新,我們的征途是改變世界!

      • 實戰干貨:編程嚴選網

      0 前言

      項目上線前最后一步,把開發好的代碼部署到線上。

      “npm run build不就行”。這只是在本地把代碼打包,想在線上也可訪問這些代碼,還需部署。所以在下面,如今的前端代碼部署時的難點在哪呢?

      1 部署難點 jQuery時代之前

      前端項目中所有內容都是一些簡單的靜態資源。網站還沒部署的概念,網站上線前,直接把開發完的項目打包發給運維,再由運維把代碼直接上傳到服務器的網站根目錄下解壓縮,完成項目部署。

      jQuery時代

      項目的入口頁面被后端管理,模板部署到后端,CSS、js和圖片等靜態資源依然是打包到后端之后,再解壓處理。但現在,對前端的性能和穩定性的要求也越來越高,jQuery時代那種簡單部署模式不足以應對性能優化、持續部署。

      當下主要面臨的代碼部署難點

      • 咋高效地利用項目中的文件緩存

      • 咋能讓整個項目的上線部署過程自動化,盡可能避免人力的介入,提高上線穩定性

      • 項目上線之后,如果發現有重大Bug,要考慮咋盡快回滾代碼

      當我們面對這些代碼部署上的難點,特別是在團隊協作的項目中遇到時,我們就可以考慮對項目進行自動化部署了,這樣代碼部署的速度和穩定性會給項目研發效率帶來很好的提升。

      2 上線前的自動化部署

      如下是大部分團隊部署項目時的邏輯:


      完成打包壓縮,即開發完項目后,代碼推送到GitHub,就算完成任務。但打包代碼后,把代碼上傳服務器也是這步,對于前端開發者,很少能接觸,但卻很重要。

      咋把打包好的代碼上傳服務器,需好的解決方案。

      • 先需一臺獨立機器進行打包和構建,該機器需獨立于所有開發環境,為保證打包環境穩定

      • 部署任務啟動的時候,需拉取遠程代碼,并切換到需部署的分支,然后鎖定Node版本進行依賴安裝、單元測試、ESLint等代碼檢查工作

      • 最后,在這臺機器,執行經過編譯產出的打包后的代碼,并打包上傳代碼到CDN和靜態服務器

      • 完成這些操作后,還要能通過腳本自動通過內部溝通軟件通知團隊項目構建的結果

      項目部署過程可能遇到如下

      問題

      • 在什么os環境中執行項目的構建?

      • 由誰觸發構建?

      • 咋管理前面所述的把代碼上傳CDN時,CDN賬戶的權限?

      • 咋自動化執行部署的全過程,若每次都由人工執行,就得消耗一個人力守著編譯打包,且易引發問題,如測試的步驟遺漏或部署順序出錯。咋提升構建速率,是部署功能中需解決的重要問題。

      解決方案

      如采用能保證環境一致性的Docker;自動化構建觸發可通過GitHub Actions;GitHub的actions功能相當于給我們提供了一個免費的服務器,可以很方便地監控代碼的推送、安裝依賴、代碼編譯自動上傳到服務器。


      這是用GitHub Actions部署項目后的項目開發流程。現在靜態資源管理已完成,也實現自動化部署。提交代碼后,項目就可自動推送到服務器,網站第一次上線成功。

      3 上線后的自動化部署

      后續的持續上線咋辦?直接發到生產環境,面臨極大風險。但不直接發布到生產環境,我們就不能在本地和測試的前端環境去連接生產環境的數據庫。

      需預發布的(Pre)環境,只能讓測試和開發訪問,除了訪問地址的環節不同,其他所有環節都和生產環境一致,提供最真實的回歸測試環境。

      又面臨

      3.1 問題

      若確定下周一零點發布,就只能晚上12點準時守在電腦前等結果?若npm安裝依賴失敗或上線后發現重大Bug,就只能迎投訴?

      隨node_modules體積越來越大,構建時間越來越長。若每次構建都需30min甚至更長,即使Bug在項目剛上線時就發現,且秒級響應修復,但重新部署項目時,也要等服務器慢慢編譯。時間就是金錢,若你在修復Bug和重新部署項目上耗時長,就導致項目故障時間過長。

      解決方案

      需一種機制,讓我們發現問題后,盡快回滾版本,且在回滾過程,盡可能無需人力介入。所以,需靜態資源的版本管理,即讓每個歷史版本的資源都保留,且有唯一版本號,如故障,能瞬間切換版本。這個過程由具體代碼實現后,只需點擊回滾的版本號,系統就自動恢復到上線前版本。

      該機制下,如業務流量特大,那直接全量上線的操作就會被禁止。為減少上線時,部署操作對用戶的影響,需先選擇一部分用戶做灰度測試,即上線后的項目的訪問權限,暫時只對這些用戶開放。或做AB測試,如給北京的同學推送Vue課,給上海推薦React課等。我們要做的,是把不同版本代碼分開打包,互不干涉。之后,再設計部署的機器和機房去適配不同用戶。

      Gtihub中可用actions配置打包功能,下面的代碼是actions的配置文件。Ubuntu作服務器的打包環境,拉取GitHub最新master代碼,并把Node版本固定14.7.6,執行npm install后,再執行npm run build代碼打包壓縮。

      通過GitHub Actions自動化打包一份準備上線的代碼:

      name: 打包應用的actions
      on:
      push:# 監聽代碼時間
      branches:
      -master# master分支代碼推送的時候激活當前action
      jobs:
      build:
      # runs-on 操作系統
      runs-on:ubuntu-latest
      steps:
      -name:遷出代碼
      uses:actions/checkout@master
      # 安裝Node
      -name:安裝Node
      uses:actions/setup-node@v1
      with:
      node-version:14.7.6
      # 安裝依賴
      -name:安裝依賴
      run:npminstall
      # 打包
      -name:打包
      run:npmrunbuild

      然后配置上線服務器和GitHub Actions服務器的信任關系,通過SSH密鑰可實現免登錄直接部署。直接把build后的代碼打包壓縮,通過SSH直接上傳到服務器,并且要進行代碼文件版本的管理,就完成代碼部署。

      部署成功后的結果通知。釘釘、飛書都提供推送結果,可隨時通過群機器人接口把消息推送到群內,把版本號、部署日期、發起人等信息推送到對應接口,就完成自動化部署。


      編程嚴選網:http://www.javaedge.cn/ 專注分享AI時代下軟件開發全場景最新最佳實踐~

      特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關推薦
      熱點推薦
      馬來西亞今年將全面查封電子煙,衛生部長:吸電子煙會造成爆米花肺

      馬來西亞今年將全面查封電子煙,衛生部長:吸電子煙會造成爆米花肺

      爆角追蹤
      2026-01-06 22:18:53
      周一,委內瑞拉股市暴漲

      周一,委內瑞拉股市暴漲

      跟著老李看世界
      2026-01-06 15:56:58
      頂級后衛視野?拉拉維亞救球后直接坐在多名女球迷身邊

      頂級后衛視野?拉拉維亞救球后直接坐在多名女球迷身邊

      懂球帝
      2026-01-07 12:00:09
      氣價補貼退坡,河北農村居民反映取暖貴

      氣價補貼退坡,河北農村居民反映取暖貴

      第一財經資訊
      2026-01-06 21:20:45
      難怪美軍長驅直入,中俄雷達全都停止搜索,委內瑞拉把好牌打爛

      難怪美軍長驅直入,中俄雷達全都停止搜索,委內瑞拉把好牌打爛

      詩意世界
      2026-01-05 19:54:53
      年薪50萬遭妻子嫌棄后續:丈夫身份曝光,工資全上交,挨罵是日常

      年薪50萬遭妻子嫌棄后續:丈夫身份曝光,工資全上交,挨罵是日常

      單手搓核彈
      2026-01-06 13:44:21
      14天3零封!齊達內二公子成隊史第1人 非洲勁旅119分鐘絕殺進8強

      14天3零封!齊達內二公子成隊史第1人 非洲勁旅119分鐘絕殺進8強

      風過鄉
      2026-01-07 07:55:34
      杭州公安重要提醒:1960年至1980年出生的市民,請盡快查看身份證有效期限,提前準備換領

      杭州公安重要提醒:1960年至1980年出生的市民,請盡快查看身份證有效期限,提前準備換領

      都市快報橙柿互動
      2026-01-06 22:27:49
      王石與田樸珺視頻流出!她沒了仰慕和愛意,他的眼睛透出一股寒意

      王石與田樸珺視頻流出!她沒了仰慕和愛意,他的眼睛透出一股寒意

      火山詩話
      2026-01-07 06:53:05
      連續4年破萬!梅毒成日本亞文化,年輕人竟追當潮流?

      連續4年破萬!梅毒成日本亞文化,年輕人竟追當潮流?

      湊近看世界
      2026-01-06 15:41:43
      輿論炸鍋!網傳煙草連夜下發命令,嚴禁員工曬工資…

      輿論炸鍋!網傳煙草連夜下發命令,嚴禁員工曬工資…

      慧翔百科
      2026-01-06 09:04:26
      亞洲杯首輪就亂了:東南亞球隊領跑,東道主多打一人險勝無緣榜首

      亞洲杯首輪就亂了:東南亞球隊領跑,東道主多打一人險勝無緣榜首

      側身凌空斬
      2026-01-07 04:22:06
      12勝0負!聯盟第1!全聯盟都說你要退役了,你卻天神下凡再創神跡

      12勝0負!聯盟第1!全聯盟都說你要退役了,你卻天神下凡再創神跡

      老侃侃球
      2026-01-07 03:30:03
      梅西:新一代阿根廷球員會集體等我吃飯;我不擅長溝通和表達

      梅西:新一代阿根廷球員會集體等我吃飯;我不擅長溝通和表達

      懂球帝
      2026-01-07 10:24:19
      伊朗抗議者完整拿下首個城市,距離成功又近了一步

      伊朗抗議者完整拿下首個城市,距離成功又近了一步

      金召點評
      2026-01-07 08:01:29
      蘇A0000A號牌有主了!

      蘇A0000A號牌有主了!

      魯中晨報
      2026-01-07 10:57:05
      為什么要遠離社會底層?網友的話讓我陷入了沉思

      為什么要遠離社會底層?網友的話讓我陷入了沉思

      霹靂炮
      2026-01-06 22:39:13
      邊打麻將邊吸氧?長三角富豪周末新玩法,業內:有錢中年男最愛

      邊打麻將邊吸氧?長三角富豪周末新玩法,業內:有錢中年男最愛

      金錯刀
      2026-01-06 16:50:04
      不是輸給烏克蘭,而是輸給數學:俄羅斯戰爭機器的極限在哪?

      不是輸給烏克蘭,而是輸給數學:俄羅斯戰爭機器的極限在哪?

      七分日記
      2026-01-04 00:16:40
      白宮直說了:拿下格陵蘭島,不惜動武

      白宮直說了:拿下格陵蘭島,不惜動武

      觀察者網
      2026-01-07 08:15:10
      2026-01-07 12:20:49
      JavaEdge incentive-icons
      JavaEdge
      Java 技術
      465文章數 457關注度
      往期回顧 全部

      科技要聞

      馬斯克殺瘋了!xAI官宣200億美元融資

      頭條要聞

      河北農村居民:"煤改氣"后 160平空間燃氣費最少8千元

      頭條要聞

      河北農村居民:"煤改氣"后 160平空間燃氣費最少8千元

      體育要聞

      全明星次輪票數:東契奇票王 詹皇超KD升西部第8

      娛樂要聞

      2026年央視春晚彩排:沈騰確定回歸

      財經要聞

      茅臺為何要和分銷商徹底說拜拜?

      汽車要聞

      蔚來2025百萬臺收官 一場遲到的自我修復

      態度原創

      時尚
      本地
      游戲
      藝術
      公開課

      冬天穿衣既要有溫度又要有風度!看看這些穿搭,優雅又顯瘦

      本地新聞

      云游內蒙|初見呼和浩特,古今交融的北疆都會

      曾因暴力引爭議!賽車爽游新作上架PS5商店

      藝術要聞

      David Grossmann:不一樣的風景畫

      公開課

      李玫瑾:為什么性格比能力更重要?

      無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 在线无码国产精品亚洲а∨| 大渡口区| 91久久偷偷做嫩草影院免费看 | 3Pav图| 亚洲video| 精品久久久久久亚洲精品| 亚洲精品国产自在久久| 国产亚洲天堂另类综合| 无码人妻h动漫| 中文字幕日韩熟女av| 天天鲁一鲁摸一摸爽一爽| 99人妻| 少女たちよ在线观看| 精品国产青草久久久久福利| 最新成免费人久久精品| 夏邑县| 亚洲成人精品免费| 99久久无色码中文字幕人妻| 午夜黄色影院| 99国产精品免费视频观看8| 亚洲亚洲人成综合网络| 天堂网国产| 衣服被扒开强摸双乳18禁网站| 91精品91久久久久久| 国产精品毛片完整版视频| 一起草av| 国产中年熟女高潮大集合| 亚洲Av综合日韩精品久久久| 精品乱码久久久久久中文字幕| 亚洲av熟女| 中文字幕精品久久久人妻| 成人3d动漫一区二区三区| 国产资源站| 把腿张开ji巴cao死你h| 渝中区| 久久久天堂国产精品女人| 亚洲国产精品成人网站| 亚洲鲁丝片AV无码多人| 国产精品久久久久久人妻精品动漫| 五月综合激情婷婷六月| 久久综合九色综合欧洲98|