天天看點

持續部署單頁應用的7大技巧

然而,傳遞靜态資源的過程并不都是如此順利的。在開始持續部署靜态資源之前,你的團隊必須注意托管和傳遞中的陷阱。 以下是一些有關高效部署靜态托管應用的技巧,幫助你實作持續、安全,以及最重要的,高效的傳遞流程。

一旦你的建構和測試過程不受伺服器架構限制,也就釋放了傳遞過程。一旦前端應用通過了內建測試,ci 伺服器就可以建構一個正式版(參見技巧2),直接傳遞并進行釋出(參見技巧5)。

鑒于最近的趨勢是将視圖元件與樣式定義放在一起,這一點可能稍有争議。但是,你需要權衡樣式和代碼捆綁後的利弊。

雖然多個檔案會使傳遞過程稍顯複雜,但檔案縮小後帶來的性能優勢是值得我們這樣做的。

持續部署單頁應用的7大技巧

除非你是個極端的純粹主義者,每個打包應用都應該是由庫子產品和應用代碼組成的。通常,你的應用代碼比庫子產品更改得更為頻繁。當你提供巨大的級聯包時,用戶端被迫下載下傳每一次更新,哪怕改動很小。應用程式包通常推送3mb 的資料量,這又需要下載下傳大量的代碼,而僅僅是因為幾行應用代碼的更改。

使用内容分發網絡釋出靜态應用。隻要保留語義緩存,cdn 就允許用戶端繼續指向相同的 url。此外,在釋出新代碼時,即使缺乏資源指紋,也支援執行主動失效。主動失效會更新每個邊緣伺服器(也就是向用戶端釋出應用的伺服器)上緩存的應用版本。

不要期望使用者會重新加載浏覽器。假設一些使用者會運作舊版本的應用,并做好準備,處理一些已棄用功能的請求。将版本釋出看作是一個連續的變化,并決定你的釋出周期。

總會某一階段,繼續支援所有舊版本及它們可能包含的各種錯誤,是不切實際的。除非你部署的是一台自助服務機,更新周期非常不頻繁,你可以放心地假設使用者會每周重新加載一次。

在釋出伺服器端代碼時,通常也會使用同樣的方法,但是靜态托管單頁應用的風險更高。循序漸進的方法是至關重要的,因為復原代碼的速度取決于 cdn 的失效期。這意味着你若是釋出了一個錯誤版本,它至少在生産環境中運作10分鐘以上,而無法立即撤銷。

應用資源和伺服器代碼若是綁定,部署單頁應用就變得既簡單又穩定。此外,你可以利用原生javascript 工具的優勢,而不管應用架構是什麼。核心是,伺服器/浏覽器的關系是一個簡單的分布式系統。通過在伺服器端單獨部署單頁面應用,你的團隊可以獲得微系統架構帶來的靈活性,專注度以及優先度。

繼續閱讀