從單體遷移到微服務的7個重要原則

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","marks":[{"type":"strong"}],"text":"本文要點"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"即使到了2020年,你仍然很有可能在使用遺留系統。如果真的是這樣,你可能會考慮是否要將其遷移到微服務架構。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在某些情況下,最好不要進行遷移——例如,如果你的大部分開發都是在新系統中進行的,而且很少有開發人員需要與遺留代碼打交道。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"由於評估方面存在複雜性和難度,通常不適合進行正式的帶有開始和結束日期限定的“項目”重構。但仍然需要得到自上而下的認可,需要安排好工作,這樣才能取得持續的進展。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在重構之前先編寫自動化測試用例,這是簡化重構過程並確保新系統按照預期方式運行的最佳方法之一。"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在構建已知的系統時,堅持使用已知的模式,並抑制直接走向危險邊緣的衝動。開創一種全新的微服務方法成本很高,重構會讓你忙得不可開交。"}]}]}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"多年來,我多次參與並密切觀察了將單體遺留系統遷移到微服務架構的工作。通過這些痛苦的經歷,我學到了很多,掉進過很多陷阱,也遇到過很多挑戰。其中的一次嘗試讓我個人損失了一大筆錢,同時也是毀掉一家相關公司的一個關鍵因素。在這裏我不詳述細節,但我肯定不想讓別人也經歷這樣的痛苦。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我試着總結出我所學到的一些經驗教訓,希望你在重構這片艱難的土地上能夠順利地進行遷移。對於這個話題,人們已經說了很多,但還是有一些建議(我多麼希望之前就有人能給我這些建議),其中有一些是我以前從未聽說過的。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"我是"},{"type":"link","attrs":{"href":"https:\/\/garden.io\/","title":"","type":null},"content":[{"type":"text","text":"Garden"}]},{"type":"text","text":"公司的聯合創始人。我們的目標是讓開發人員能夠更容易地測試、審查和診斷雲原生微服務應用程序(我們的核心產品是開源的——如果感興趣,可以"},{"type":"link","attrs":{"href":"https:\/\/github.com\/garden-io\/garden\/","title":"","type":null},"content":[{"type":"text","text":"看看"}]},{"type":"text","text":"),所以我花了很多時間與正在經歷遷移的用戶一起工作。通過這些互動,我總結了一些重要的並且值得分享的經驗教訓。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章