跳轉到

微服務重構概述

一個不要使用的策略是「爆炸式」重寫。就是將所有的開發工作都集中在從頭開始構建新的基於微服務的應用。雖然這聽起來很吸引人,但非常危險,有可能會失敗。「爆炸式重寫的唯一保證就是大爆炸!」("the only thing a Big Bang rewrite guarantees is a Big Bang!")。

你應該逐步重構單體應用,而不是通過爆炸式重寫來實現。你可以逐漸添加新功能,並以微服務的形式創建現有功能的擴展 —— 以互補的形式修改單體應用,並且與單體應用共同運行。隨著時間推移,單體應用實現的功能量會慢慢減少,直到它完全消失或變成另一個微服務。這種策略類似於在 70 公里/小時的高速公路上維修一輛汽車,很有挑戰性,但至少比嘗試爆炸式重寫的風險要小得多。

將遺留的應用 (也被稱為 Brownfield 應用) 遷移到微服務架構是具挑戰性的任務,接下來就來介紹可以簡化遷移過程的策略。

實現策略:提取模塊

img

將龐大的現有模塊轉變為獨立的微服務。每次提取一個模塊並將其轉換成微服務時,單體就會縮小。一旦你轉換了足夠多的模塊,單體應用將不再是問題。它將完全消失,或者變得小到可以被當做一個服務看待。

Reference