架構師成長系列:高層架構設計之落地設計第一步(方法經驗總結)

雲飛龍行2021 發表於 2021-10-21
架構師

  前面講到了架構師在高層架構設計階段要做的事情,以及基本的方法。

  接下來具體地看看如何把設計落地:

  首當其衝的就是要確定系統邊界,

  下面就來聊一聊確定系統邊界要做什麼,以及如何確定系統邊界。

一:確定系統邊界,架構師需要做什麼,包含但不限於:

1:明確系統該做什麼,而不做什麼

  這個非常重要,清晰的邊界,有助於整個系統的架構設計和開發實現,能更好地幫助我們達成軟體建設的目標。

  比如我們的系統,只需要做到下完訂單過後生成出貨單,後續的業務就不需要我們的系統來處理了,可能就是推送出貨單到ERP或WMS(倉儲管理系統)等第三方系統就可以了。

  那我們就不能瞎做,把出貨單後面的業務也做了,美其名曰業務閉環,胡做一通,該做的沒做好,不該做的做了一大堆,浪費人力、物力、財力和時間。

  這就是說,我們必須明確的知道,系統該做什麼,而不做什麼。

2:明確系統與周邊系統的關係

  系統與周邊系統的關係,指的就是我們的系統和相關的第三方系統,相互呼叫、互動的關係。

架構師成長系列:高層架構設計之落地設計第一步(方法經驗總結)

 

  比如上面提到的例子,我們的系統負責生成出貨單,然後推送ERP,那麼ERP就要有相應的介面,並且給出資料結構的要求,也就是說我們生成的出貨單,裡面需要哪些資料,要組織成什麼形式,都是由ERP來決定的。

  同樣,呼叫ERP介面過後,我們需要獲取返回的結果,一種是同步等待,另一種是非同步獲取,那我們就需要提供非同步回撥的介面,並規定好需要返回哪些資料,以及資料的組織形式,這個是由我們系統來決定的。

  我們的系統並不是孤立的,可能只是大業務場景中的一個環節,必然要和其它相關係統進行互動,否則很多業務也就無法完成了。

  所以,我們系統和所有協作完成業務的第三方系統,之間的這種互動關係,是一定要明確出來的。

3:明確系統在整個大業務場景下的定位

  這個就是要理解,在使用者整個業務場景中,我們的系統,承載的是那一部分。

  客戶的業務,可能有生產的、設計的、製造的、銷售的、客服的、物流的、財務的等等大業務場景。

  我們做的系統,假設是電商系統,那麼實際上做的就是銷售這個大業務場景裡面的一部分,那麼這裡面就不會涉及什麼生產、設計、製造等業務。

  就算在銷售這個大業務場景,可能我們做的也只是其中的一部分,比如客戶的銷售又分成線上銷售和線下銷售,線上又有to B的、to C的、B2B平臺銷售等等的,而我們可能只是做了其中to B的部分。

  大家可以看到,明確系統到底在哪個大業務場景下,具體承載哪部分功能,對於我們理解系統的業務,明確系統的邊界,都是非常有幫助的。

4:明確系統的執行環境以及前置條件

  我們需要知道,未來我們的系統執行在什麼環境下,比如:部署環境、伺服器多少、軟硬體情況、網路頻寬的多少、其它配備的資源的多少等。

  這直接影響到我們架構設計的選型,還有對質量約束中的一些關鍵元素的達成,比如效能、穩定性等等。

  另外,我們還需要知道,要讓我們的系統正常執行起來,需要哪些系統,因為我們的系統只是整個大業務場景中的一部分,需要從第三方系統去獲取一些資料,也需要把一些資料傳遞給第三方系統,否則業務是無法完成的。

  因此,我們需要明確系統的執行環境以及前置條件。

5:明確系統與相關係統的互動:

(1)互動方式

  是同步呼叫還是非同步呼叫,是我們去呼叫相關係統,還是相關係統調回來。

  同步方式是採用資料庫同步,或者是採取非同步訊息同步,還是採用OpenAPI的形式等。

  這些互動的方式都要明確下來。

(2)互動頻次

  多長時間互動一次,有些可能是實時互動,有些可能是定時互動,比如一天互動一次等,這些都要明確下來。

(3)互動資料量

  每次互動,大概會有多大的資料量,最大資料量可能是多少,需要進行壓縮、加解密等處理嗎,這些也是要明確的,這對架構設計是有影響的。

(4)互動限制和約束

  跟其它系統互動,有沒有什麼限制,比如一分鐘最多互動次數,最大傳輸的資料量,每次互動處理最長的時間等,這些也是會影響到架構設計的,都需要確定下來。

二:如何確定系統邊界

架構師成長系列:高層架構設計之落地設計第一步(方法經驗總結)

 

1:首先是找到相關係統

  這個相對比較簡單,在需求調研或需求分析的時候,通過分析業務功能的實現,以及涉及的資料來源和去向,就能容易地找到相關係統。

2:確定系統邊界

  找到相關係統後,就按照前面講的需要明確的內容,一個一個互動功能點的去細化,把所有的內容都確定好過後,基本上我們們系統的邊界也就確定好了。

 

  差不多到這兒,我們就能確定好系統邊界了,終於邁出了高層架構設計落地的第一步,恭喜恭喜!

  有問題或者意見、建議,請評論留言或者私信,大家一起探討,一起進步!

  當然,如果你覺得本系列文章還不錯,能夠給你一些啟發和思考的話,請關注、點贊、收藏加轉發,讓更多的朋友加入到我們的行列,謝謝啦!

  更多架構師之路乾貨文章,已在路上,稍後就到!

架構師成長系列:高層架構設計之落地設計第一步(方法經驗總結)