使用微型前端撰寫頁面和檢視 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用微型前端撰寫頁面和檢視

您可以使用用戶端構成、邊緣端構成和伺服器端構成來撰寫應用程式的檢視。組成模式在必要的團隊技能,容錯能力,性能和緩存行為方面具有不同的特徵。

下圖顯示構成如何發生在微型前端架構的用戶端、邊緣端和伺服器端層。

在用戶端、邊緣端和伺服器端層中具有微前端的來源、CDN 和用戶端。

客戶端,邊緣端和服務器端層將在以下各節中討論。

用戶端合成

在用戶端 (瀏覽器或行動網頁檢視) 上以文件物件模型 (DOM) 片段的形式動態載入和附加微前端。微型前端成品 (例如 JavaScript 或 CSS 檔案) 可從內容傳遞網路 (CDN) 載入,以減少延遲。用戶端構成需要下列項目:

  • 擁有和維護 shell 應用程序或微型前端框架的團隊,以便在瀏覽器中的運行時發現,加載和渲染微型前端組件

  • HTML、CSS 和前端技術的高技能水平,以及 JavaScript對瀏覽器環境的深入了解

  • 優化頁面中 JavaScript 加載的量,以及避免全局命名空間衝突的紀律

下圖顯示無伺服器用戶端組成的範例 AWS 架構。

Web 應用程式會透 CloudFront 過微型前端探索服務和 Amazon S3 連線。

客戶端構成通過 shell 應用程序發生在瀏覽器環境中。此圖表顯示下列詳細資訊:

  1. 殼層應用程式載入後,它會向 Amazon 發出初始請求,以探索 CloudFront要透過資訊清單端點載入的微前端。

  2. 資訊清單包含每個微型前端的相關資訊 (例如名稱、URL、版本和後援行為)。這些清單由微前端探索服務提供服務。在圖中,此探索服務是由 Amazon API Gateway、 AWS Lambda 函數和 Amazon DynamoDB 表示。shell 應用程序使用清單信息來請求單個微前端在給定的佈局中構成頁面。

  3. 每個微型前端包都是由靜態文件(例如 JavaScript CSS 和 HTML)組成。這些文件託管在亞馬遜簡單存儲服務(Amazon S3)存儲桶中,並通過提供 CloudFront。

  4. 團隊可以部署新版本的微前端,並使用他們擁有的部署管道來更新資訊清單資訊。

邊緣側組成

使用邊緣端包含 (ESI) 或伺服器端包含 (SSI) 的外包技術,例如原始伺服器前方的某些 CDN 和 Proxy 所支援的伺服器端包含 (SSI) 來撰寫網頁,然後再透過網路傳送至用戶端。ESI 需要下列條件:

  • 具有 ESI 功能的 CDN,或伺服器端微前端前端的代理部署。代理實現,例如哈代理,清漆和 NGINX 支持 SSI。

  • 瞭解 ESI 和 SSI 實作的使用與限制。

開始新應用程式的團隊通常不會為其構成模式選擇邊緣構圖。但是,此模式可能會為依賴於包含的舊版應用程式提供途徑。

伺服器端合成

使用原始伺服器在邊緣快取頁面之前撰寫頁面。這可以通過傳統技術來完成,例如 PHP,雅加達服務器頁面(JSP)或模板庫,通過包括微前端的片段來構成頁面。您也可以使用在伺服器上執行的 JavaScript 架構,例如 Next.js,透過伺服器端轉譯 (SSR) 在伺服器上撰寫網頁。

在服務器上呈現頁面後,可以在 CDN 上緩存它們以減少延遲。部署新版微前端時,必須重新轉譯頁面,且必須更新快取,才能將最新版本提供給客戶。

伺服器端構成需要深入瞭解伺服器環境,以建立用於部署、探索伺服器端微前端和快取管理的模式。

下圖顯示了服務器端組成。

伺服器端構成分為七個步驟。

此圖表包含下列元件與程序:

  1. Amazon CloudFront 提供了一個獨特的入口點的應用程序。該發行版有兩個來源:第一個用於靜態文件,第二個用於 UI 作曲家。

  2. 靜態檔案託管在 Amazon S3 儲存貯體中。它們由瀏覽器和 UI 撰寫器用於 HTML 模板。

  3. UI 撰寫器會在中的容器叢集上執行AWS Fargate。透過容器化解決方案,您可以視需要使用串流功能和多執行緒轉譯。

  4. 參數存放區 (的 AWS Systems Manager功能) 可做為基本的微前端探索系統使用。此功能提供 UI 撰寫器用來擷取要使用的微型前端端點的索引鍵值存放區。

  5. 通知微型前端會將最佳化的 JavaScript 服務包存放在 S3 儲存貯體中。這會呈現在用戶端上,因為它必須對使用者互動做出反應。

  6. 評論微型前端由 Lambda 函數組成,而使用者評論則儲存在 DynamoDB 中。評論微前端完全呈現在服務器端,並輸出一個 HTML 片段。

  7. 產品詳細信息微前端是使用的低代碼微前端。AWS Step FunctionsExpress 工作流程可以同步呼叫,它包含用於呈現 HTML 片段和快取層的邏輯。

如需伺服器端構成的詳細資訊,請參閱部落格文章伺服器端轉譯微前端 — 架構。