

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

# 服務探索
<a name="discovery"></a>

前端探索模式可改善開發、測試和交付微型前端時的開發體驗。模式使用可共用組態，描述微型前端的進入點。可共用組態也包含額外的中繼資料，用於使用 Canary 版本在每個環境中進行安全部署。

現代前端開發需要使用各種工具和程式庫，以在開發期間支援模組化。傳統上，此程序包含將程式碼綁定到可在 CDN 中託管的個別檔案中，目標是在執行時間保持網路呼叫最少，包括初始負載 （當應用程式在瀏覽器中開啟時） 和用量 （當客戶執行動作時，例如選擇按鈕或插入資訊）。

## 分割套件
<a name="split-bundles"></a>

微型前端架構可解決由個別綁定大量功能所產生的非常大型套件所造成的效能問題。例如，非常大型的電子商務網站可以綁定到 6 MB JavaScript 檔案中。儘管壓縮，該檔案大小可能會在載入應用程式並從邊緣最佳化 CDN 下載檔案時，對使用者體驗造成負面影響。

如果您將應用程式分割為首頁、產品詳細資訊和購物車微型前端，您可以使用綁定機制來產生三個個別的 2 MB 套件。當使用者使用 首頁時，此變更可能會將第一次載入的效能提升 300%。只有在使用者造訪項目的產品頁面並決定購買時，產品或購物車微型前端套件才會以非同步方式載入。

許多架構和程式庫是根據此方法提供，對客戶和開發人員都有優勢。若要識別可能導致程式碼中相依性解耦的業務界限，您可以將不同的業務職能映射到多個團隊。分散式擁有權帶來獨立性和敏捷性。

當您分割建置套件時，您可以使用組態來映射微型前端，並驅動初始載入和載入後導覽的協同運作。然後，組態可以在執行期間使用，而不是在建置期間使用。例如，用戶端前端程式碼或伺服器端後端程式碼可以對 API 進行初始網路呼叫，以動態擷取微型前端的清單。它也會擷取合成和整合所需的中繼資料。您可以設定容錯移轉策略並快取可靠性和效能。映射微型前端有助於透過 shell 應用程式協調的先前部署的微型前端來探索微型前端的個別部署。

## Canary 版本
<a name="canary-release"></a>

Canary Release 是建立良好且熱門的模式，用於部署微服務。Canary 會將發行版本的目標使用者儲存貯體為多個群組，並逐步發行變更，而不是立即替換 （也稱為藍/綠部署）。Canary Release 策略的一個範例是向 10% 的目標使用者推出新的變更，每分鐘增加 10%，總持續時間為 10 分鐘，達到 100%。

Canary Release 的目標是取得有關變更的早期意見回饋，監控系統以減少任何問題的影響。當自動化到位時，內部系統可以監控業務或系統指標，以停止部署或啟動復原。

例如，變更可能會引入錯誤，在發佈的前幾分鐘，會導致收入損失或效能降低。自動化監控可以啟動警示。透過服務探索模式，該警示可以停止部署並立即復原，僅影響 20% 的使用者，而不是 100%。業務受益於問題的縮小範圍。

如需使用 DynamoDB 做為儲存體實作 REST Admin API 的範例架構，請參閱 GitHub [上的 AWS 解決方案上的前端服務探索](https://github.com/awslabs/frontend-discovery-service)。使用 AWS CloudFormation 範本將架構整合到您自己的 CI/CD 管道中。解決方案包含 REST Consumer API，可將解決方案與您的前端應用程式整合。