本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
絞殺無花果模式
到目前為止,本指南中討論的設計模式適用於分解綠地項目的應用。那麼涉及大型整體應用的棕地項目呢? 將先前的設計模式應用於它們將很困難,因為在積極使用時將它們分成較小的部分是一項艱鉅的任務。
絞殺無花果圖案是由馬丁·福勒
這種模式通常用於通過用新服務替換特定功能,以增量方式將整體應用程序轉換為微服務。我們的目標是讓舊版和新的現代化版本共存。新系統最初由現有系統支援並包裝。這種支持使新系統有時間成長,並可能完全取代舊系統。
通過實現扼殺程序圖案從整體應用程序轉換到微服務的過程包括三個步驟:轉換,共存和消除:
-
轉換 — 透過與舊版應用程式 parallel 移植或重寫元件,識別並建立現代化的元件。
-
共存 — 保留整體應用程式以進行復原。在整體式的周邊加入 HTTP 代理伺服器 (例如 Amazon API Gateway),以攔截外部系統呼叫,並將流量重新導向至現代化版本。這可協助您逐步實作功能。
-
消除 — 當流量從傳統整體重定向到現代化服務時,將舊功能從整體式退出。
AWS Migration Hub Refactor Spaces是增量應用程序重構到微服務的起點AWS。重構空間提供了一個應用程序,該應用程序將絞殺程序圖案模式進行增量重構。重構 Spaces 應用程式會協調 API Gateway、Network Load Balancer 和資源型AWS Identity and Access Management (IAM) 政策,讓您可以透明地將新服務新增至外部 HTTP 端點。
下表解釋了使用絞殺程序圖案的優缺點。
優點 | 缺點 |
---|---|
|
|
下圖顯示了如何通過將扼殺程序圖案應用於應用程序體系結構來將整體式分割為微服務。這兩個系統 parallel 運作,但是您將開始將功能移到整體代碼庫之外,並使用新功能對其進行增強。這些新功能讓您有機會以最適合您需求的方式建構微服務。您將繼續從整體式中剝離功能,直到它全部被微服務取代為止。此時,您可以消除整體應用。這裡要注意的關鍵點是,整體式和微服務都會共同生活一段時間。