如何從單體架構平滑過渡到微服務

  一旦決定在開發實踐中引入微服務架構,如何將積累下來的龐大的巨無霸系統潤物細無聲的過渡到微服務架構將是一個巨大的挑戰。同程旅遊微服務開發團隊給出了他們的建議。
  他們認爲推倒重來不可取,架構師們最想通過微服務化取代的部分,往往是公司的主要盈利核心,改造難度不亞於飛行中更換引擎。從業界公開的信息來看還沒有哪家做到了完美升級, 更多的可能無外乎兩種:
  • 第一種改造後苟延殘喘,研發疲於奔命;
  • 另一種則是改造中就直接休克。
  因此爲使微服務能順利的應用,架構師從不應該幻想一蹴而就,可以從以下三個方面採取行動。

1. 培訓先行

  技術人都善於把面臨的問題變成技術問題,然後在自己最擅長的領域去把它解決。這就造成一個悖論:能用技術解決的問題就不是問題,真正的問題在受限的情景下僅靠技術是解決不了的,實施微服務最大的攔路虎也不是技術本身。
  從同程微服務團隊的實踐來看,最大的問題不是如何做好微服務,而是就微服務應該是怎麼達成一致的看法。
  因此,可以在實施前通過多數人蔘與大討論或培訓,使認知達成一致。這類似編碼規範中的命名規範,使用那種命名方法不重要,重要的是人人都使用同一種命名方法。

2. 絞殺者模式

  絞殺者模式是指,對於無法通過修繕者模式改進的系統,在系統外重新構建新功能來逐步剝離重構,對功能服務逐個絞殺。好處是不影響原來的環境,一旦條件成熟就能快速切換。而缺點是可能需要一段時間同時維護兩套系統,付出額外的開發維護成本。

3. 監獄模式

  這是同程內部的叫法,允許一些短期無力改動的系統通過監獄窗口(MicroProxy)接入微服務平臺並委託 Proxy 將其暴露成微服務,單體架構往往擁有龐大的服務接口梳理, 往往需要開多個監獄窗口。
每個監獄窗口都會被包裝分割成微服務,條件成熟了能很方便的替換成原生微服務,稱爲刑滿釋放。
  以上就是今天的內容,希望能對你有所幫助。
來源:極客時間
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章