架構的持續演進,是系統和團隊成長和成功的關鍵。將有幾篇文章來分享一些想法。上一篇(鏈接),講了持續演進架構的組織模式,這一部分,講講總體機制設計。

要點都體現在最下面的圖裡(解析度足夠,打開可以放大)。以下文字是對圖的一些說明。

兩個維度

兩個維度將整個涉及到領域劃分為了四個象限。縱向方面,有執行層和治理層兩個層面。橫向方面,有設計時和運行時的劃分。各個象限的負責人和側重點不同,跨越象限的信息交流可能有相對高的成本。

五個箭頭

箭頭表示的是信息的流向,同時也是影響力的流向。圖上箭頭標註了序號,與下面的序號對應。

  1. 架構決策的執行,手段上可以是直接下發設計的詳細結果。但在」湧現架構「風格下,更多可能是制定設計守則、確立重構行動項等更有空間的方式。
  2. 架構執行的結果在設計時的反饋,可能通過架構治理者的主動review、工具的掃描等手段,對詳細設計和系統結構(此時多體現為代碼結構)進行觀察評價。
  3. 通過一些運行時工具和技術組件,採集系統在運行時的特徵,包括結構特徵和質量指標。比如通過apm工具和log分析工具採集系統容量、性能指標。通過服務發現平臺、配置管理平臺採集系統間的動態依賴關係等等。
  4. 運行時觀察到的系統特徵,對它的評價和應對,成為架構決策的重要依據。3、4兩個箭頭,共同組成了架構執行的結果在運行時的反饋。
  5. 雙向箭頭,是具體的架構決策與架構原則架構規劃之間的作用。架構決策由架構原則和規劃指導,但架構決策的過程中也會將現場訴求反饋到架構原則和規劃中,推動原則和規劃演進和修正。

三個循環

上述的五個箭頭形成了三個循環。循環是這個機制的要點,只有形成循環,機制纔是一個持續運行的機制,才能達到驅動架構持續演進的目的。

  1. 最大的和最重要的循環,由箭頭1、3、4組成,覆蓋了整個領域四個象限。體現了系統最終運行時的特徵對架構演進的首要驅動作用。
  2. 第二個循環,橫跨在右邊的上下兩個象限,由箭頭1、2組成。體現了設計時在治理層和執行層的互相影響。
  3. 第三個循環,在右下象限,由箭頭5完成。體現在治理層內部,架構高層設計也是一個持續演進的過程。

兩個角色

執行層,主要是開發或稱現場架構角色來負責。治理層,則是由全局架構角色負責。這裡的全局與現場,是相對概念,全局是相對全局,並不是說就一定是整個公司整個系統羣。另外,在比較小的團隊,兩個角色是一個職位也是很有可能的。

(現場架構角色的定義見前一篇文章。)

另外

整個開發過程中,有些活動與圖中的活動是有交集的,比如運維/開發同樣對運行時指標有密切互動。但這類活動與架構演進的主題關係較弱,圖中沒有體現。


推薦閱讀:
相關文章