【小宅按】 對於任何企業,MSA的實施都不能一蹴而就。企業在實施MSA的過程中應該避免教條主義、理想化、低估必需的投資、邊學習新流程邊變更架構、擔憂失敗等風險與陷阱。企業可以在MSA實施指導框架的指引下,進一步建立MSA的戰略目標、原則、實踐、工具平臺視圖,以更好地指導MSA落地。
隨著領域驅動設計(DDD,Domain Driven Design)、持續交付、雲計算、小型自治團隊、大型集羣系統等實踐的發展與流行,微服務架構(MSA,Microservices Architecture)也應運而生。在數字化轉型時代,許多組織為了提升業務敏捷性(Business Agility),發現MSA或許是幫助自己更快地交付軟體的強大武器,因為MSA有望在靈活的變更交付、技術靈活性、更精準的彈性等方面帶來益處。
然而企業卻很快發現,單純將MSA視為靈活的架構模式,往往難以保障MSA的成功實施。因而,若要成功實施MSA,除了改變軟體交付物的結構化方式,企業必須在以下方面進行改變:
- 應用開發、交付與運維的組織方式
- 維持流動性同時確保質量與彈性的流程
- 微服務相關模式與實踐所必需的新工具與平臺
那麼,企業到底應該如何實施MSA才能提升成功率呢?有沒有一種指導性框架為MSA實施保駕護航呢?在探討此問題之前,也許明確一下MSA的適用場景更為緊要。在《人月神話》中,Fred Brooks曾指出「軟體沒有銀彈」。此論斷對於MSA仍然適用。企業不應該將MSA視為軟體交付的銀彈。從嚴格意義上來講,MSA的優勢在於幫助企業解決軟體領域的複雜問題(Complex Problem)。一般來講,複雜問題具有以下幾個特徵:(1)沒有足夠的數據進行決策;(2)必須進行探索;(3)需要浮現式設計與實踐;(4)面向行動的方法。關於複雜問題的詳細闡述,可以參考Cynephin框架(https://www.mindtools.com/pages/article/cynefin-framework.htm)。當然,在企業面對複雜問題或者系統時,如果同時需要頻繁部署來快速響應市場需求、需要高可用以及快速彈性神作,MSA將成為優先選項。
基於MSA的適用場景,並結合諸多企業實施MSA的實踐,形成了如下圖所示的實施指導框架,稱之為「3PSD」。