3大系統(tǒng)架構設計-工具&服務系統(tǒng)篇
當產(chǎn)品經(jīng)理升職后,一般都會要求負責系統(tǒng)架構的設計。之前沒有接觸過這種,如何快速處理?本文寫給已負責或即將獨立負責系統(tǒng),為系統(tǒng)架構設計苦惱的產(chǎn)品人&曾經(jīng)的自己:
系統(tǒng)架構系列目錄:
- 三大系統(tǒng)架構設計-業(yè)務系統(tǒng)篇(上一篇)
- 三大系統(tǒng)架構設計-工具&服務系統(tǒng)篇(本篇)
一、困惑
我所在的大部門內(nèi)部是樂于分享的,此前能聽到很多產(chǎn)品對自己負責的業(yè)務&系統(tǒng)進行分享,有幸看過了很多系統(tǒng)架構圖,有意思的是,不同產(chǎn)品經(jīng)理負責分享時的系統(tǒng)架構圖都不太一樣,舉2個明顯差異化的例子:
催收系統(tǒng)架構圖如下
認證中心架構圖如下
可以看到上述2個系統(tǒng)架構圖有明顯差異:
- 前者按照業(yè)務主線橫向拆分階段,模塊化來體現(xiàn)系統(tǒng)架構;
- 后者按照關聯(lián)業(yè)務&業(yè)務應用&服務組件縱向分層,模塊化來體現(xiàn)系統(tǒng)架構;
從2021年到現(xiàn)在,期間有過幾次困惑:系統(tǒng)架構圖是非標的嗎,為什么每個人的系統(tǒng)架構圖都,各有千秋呢?隨著主導各類系統(tǒng)從0到1或系統(tǒng)重構的項目經(jīng)歷不斷豐富,對于系統(tǒng)架構的理解才有了自己的答案;
在互聯(lián)網(wǎng)中,公司商業(yè)模式的主營業(yè)務流往往需要多個系統(tǒng)支撐串聯(lián),而支撐業(yè)務的系統(tǒng)都有自己的側重,不同側重類型的系統(tǒng),其架構表達形式自然有差異;
從眾多系統(tǒng)全盤看,系統(tǒng)可以分為3類,每一類都有各自的特點;
一、系統(tǒng)分類&特點
名詞解釋:
核心能力:指系統(tǒng)中提供可直接使用的功能;以各類系統(tǒng)的核心能力舉例
- 決策引擎:策略配置&信息決策;
- 訂單中心:創(chuàng)單&訂單流轉&訂單查詢;
- 呼叫中心:軟電話點呼&預測試外呼&語音機器人;
名詞拆解:
在此補充2個新的名詞,本質上是對系統(tǒng)核心能力的拆解細分;
- 基礎能力:代表了系統(tǒng)最基礎的原子級別的功能,作為應用能力的核心組成部分,或是應用能力的前置條件;
- 應用能力:代表了系統(tǒng)對基礎能力包裝后可直接對外提供服務的功能;
在筆者所接觸的風控業(yè)務系統(tǒng)中,基本沒有區(qū)分應用能力和基礎能力,而工具&服務系統(tǒng)則重點對基礎能力和應用能力進行區(qū)分;其差異化的原因下文會詳細說明。
二、系統(tǒng)架構設計思路
系統(tǒng)架構是產(chǎn)品經(jīng)理梳理出來,面向人員(其他相關產(chǎn)品經(jīng)理、開發(fā)人員、測試人員),讓其能夠清晰的明白系統(tǒng)的定位和能力以及系統(tǒng)邊界(其與上下游外部系統(tǒng)的關系);
通過明確系統(tǒng)架構的價值,反向推斷一個系統(tǒng)架構圖中應當具備的元素和內(nèi)容,這樣系統(tǒng)架構需要做什么,就很明確了:
- 系統(tǒng)定位和能力→定位的本質是核心能力的概述,能力的本質是功能點的具象化;
- 系統(tǒng)邊界→系統(tǒng)與上下游外部系統(tǒng)的關聯(lián)關系;
而系統(tǒng)功能點的來源,是將線下的執(zhí)行事件,轉化到線上系統(tǒng)進行支持體現(xiàn);系統(tǒng)關聯(lián)關系,則可以明確系統(tǒng)內(nèi)部能力的同時,按照上下游外部業(yè)務接入方進行劃分。
因此要想無遺漏的梳理功能點,同時明確系統(tǒng)內(nèi)外部關聯(lián)關系的前提,需要對調用系統(tǒng)能力的多條業(yè)務線,在實際調用的相關業(yè)務環(huán)節(jié)進行全盤梳理;
為此,我將整個系統(tǒng)架構設計分5步:
明定位(敲定基礎能力)→抽線盤點定標準(梳理多條業(yè)務線流程各階段執(zhí)行事件,定義對接標準)→抽象(提煉功能點)→分層(服務拆分)→劃分邊界(區(qū)分上層調用方&依賴的下游系統(tǒng)能力)。
0、為何要先明確定位
系統(tǒng)定位是什么?本質上定位是核心能力的極簡體現(xiàn),它約束了后續(xù)的迭代方向。
沒有明確定位的系統(tǒng),在系統(tǒng)迭代過程中沒有方向,往往會越做越亂,變成一個大而全甚至與外部系統(tǒng)耦合的功能集合體,比如系統(tǒng)會做一些定制化功能,違背通用特性。
舉個有趣的實際案例:
幾年前我負責貸后催收系統(tǒng)時主導一個催收先還款后返現(xiàn)的需求中,就曾任性的要求支付系統(tǒng)的產(chǎn)品經(jīng)理,在提供的退款接口中,需要對催收請求的返現(xiàn)金額按照一定邏輯進行拆分后在進行對應訂單進行原路退款,最后被對方直接了當?shù)木芙^了,拒絕理由清晰明了:支付系統(tǒng)的定位就是提供通用的支付應用能力,返現(xiàn)金額拆分屬于僅催收特定場景,屬于不通用的定制化業(yè)務邏輯,其不該由服務系統(tǒng)承接。
這就是清晰的系統(tǒng)定位,為產(chǎn)品經(jīng)理在需求對接和設計過程中帶來的判斷依據(jù)。我現(xiàn)在想起來還記憶深刻。
所以“工具系統(tǒng)”&“服務系統(tǒng)”在未確定系統(tǒng)定位之前,不要想系統(tǒng)架構設計,先明確一個清晰的系統(tǒng)定位,才能保證系統(tǒng)規(guī)劃設計不會跑偏。
1、明確定位→敲定基礎能力
明確系統(tǒng)定位:除了約束后續(xù)的迭代方向,最重要的是敲定核心能力的地基-基礎能力,即系統(tǒng)最基本的原子能力,它是核心應用能力的組成部分或前置條件。
分別以筆者主導0~1建設的呼叫中心,參與重構設計的訂單中心舉例:
工具系統(tǒng)-呼叫中心:
- 定位:圍繞外呼相關場景,提供呼入呼出的通用應用能力
- 基礎能力:通過硬件實現(xiàn)瀏覽器&線路的通話信令的轉化&傳輸;
外呼中心相對比較特殊,需要由特定的硬件去實現(xiàn)基礎能力的支撐,所以相對常規(guī)系統(tǒng)多了一個硬件層體現(xiàn)信息流;由于軟交互機在通訊領域是一個很復雜且相對成熟的硬件,這里就不做展開說明。在整個系統(tǒng)架構設計之前,首要了解的就是呼叫中心最底層能提供什么樣的基礎能力。否則,上層應用的建設就是沒有支撐的空談。
服務系統(tǒng)-訂單中心
- 定位:提供訂單全生命周期的管理能力;
- 基礎能力:收單創(chuàng)單、訂單流轉&更新、訂單查詢;
敲定基礎能力的重點在于:上層應用能力的建設無法脫離底層基礎能力。因此明確定位后,就需要產(chǎn)品經(jīng)理將定位轉化為具象的底層基礎能力,這是為什么定位能約束系統(tǒng)后續(xù)迭代方向,實際產(chǎn)生約束作用的,還是具體的基礎能力。
2、抽線→盤點→定標準
抽線:是指抽出本系統(tǒng)服務外部業(yè)務線的局部環(huán)節(jié)(流程);
盤點:是指抽線后的流程中,按照階段性拆分,找到多條業(yè)務都有哪些事件需要支持,最終基于事件挖掘出對用系統(tǒng)需要提供的功能點;
定標準:定義外部接入層對接標準。
其中工具類系統(tǒng)&服務類系統(tǒng)在這一步存在明顯差異:
- 工具類系統(tǒng),針對于特定場景,外部的業(yè)務系統(tǒng)將工具拿來即用,不存在流程or業(yè)務路徑依賴;例如呼叫中心的呼叫面板、合同系統(tǒng)的電子簽等等工具可拿來即用。
- 服務類系統(tǒng),針對于某個環(huán)節(jié)進行全周期服務,內(nèi)部是存在信息流閉環(huán)的,正如訂單中心,用戶中心,分別管理了訂單、用戶賬號的全生命周期,提供的能力也是整個環(huán)節(jié)流程中的一系列鏈路支持,且服務存在鏈路依賴關系。比如閉單的前提肯定是已經(jīng)創(chuàng)單過了。
工具系統(tǒng):先盤點→再定對接標準
在工具類系統(tǒng)架構設計步驟中,抽線盤點可以簡化為對外部涉及工具的應用場景進行重點挖掘即可確定清楚功能點。
當然除了功能點以外,還需要針對工具對接流程也是需要制定一套標準:
服務系統(tǒng):先抽線→再盤點
在服務類系統(tǒng)架構設計步驟中,則需要先抽線:完成環(huán)節(jié)內(nèi)部流程梳理。再盤點:通過各條業(yè)務線的各階段性事件來找出對應功能點;以訂單中心舉例
3、抽象
抽象:是指從眾多的事物中抽取出共同的、本質性的特征,而舍棄其非本質的特征的過程。
抽象的價值在于避免系統(tǒng)中出現(xiàn)很多同質化的功能,這樣系統(tǒng)就越輕量,系統(tǒng)建設的總人力投入成本越少;
舉例:
- A前置條件,執(zhí)行M事件,假設開發(fā)“A條件”需投入1人日,開發(fā)執(zhí)行事件需投入1人日;
- B前置條件,執(zhí)行M事件,假設“B條件”需投入1人日,開發(fā)執(zhí)行事件需投入1人日;
這2個事件最終實現(xiàn)為2個功能點,總計投入4人日;
當我們將A&B前置抽象為一類條件,將這2類事件合并為1個事件:(A或B前置條件)執(zhí)行M事件,其中開發(fā)執(zhí)行M事件僅需投入1人日,總計投入3人日,即可完成1人日的人力節(jié)省。
投入的對比可以直觀的體現(xiàn)出抽象精煉功能點的重要性,那么具體應該怎么抽象呢?
當工具類&服務類系統(tǒng)經(jīng)過抽線盤點后,通過比對各業(yè)務線是否需要相同的功能點,若功能在系統(tǒng)服務流程或場景中,被2+業(yè)務線應用且功能不會導致系統(tǒng)與業(yè)務耦合,就可以考慮將功能統(tǒng)一納入到工具&服務系統(tǒng)范圍實現(xiàn);
例如:訂單中心的閉單的后置動作:恢復優(yōu)惠券&恢復額度
常規(guī)上來看,訂單中心只需要關注訂單狀態(tài),數(shù)據(jù)變更,至于被閉單后請求優(yōu)惠券恢復,請求已被扣減的額度恢復,理應由業(yè)務線自己發(fā)起請求執(zhí)行閉單后的動作。
但由于閉單后3條業(yè)務線都存在恢復優(yōu)惠券、恢復額度的邏輯,此時這2項后置動作可以統(tǒng)一做成閉單組件,由訂單中心閉單后,對外觸發(fā),這樣一來就避免多個外部接入系統(tǒng)重復造輪子。
4、分層
分層:是指將系統(tǒng)內(nèi)部服務拆分不同層級(可理解為不同區(qū)域的服務)
通常來說工具類/服務類系統(tǒng)可以拆分為2層:
- 基礎服務層覆蓋系統(tǒng)最底層的基礎能力,它幾乎不直接對外提供服務(不絕對,需要根據(jù)單一或多業(yè)務形態(tài)進行適配)。
- 通用應用層通過組合&調度基礎能力,來對外提供應用能力。
最終實現(xiàn)應用與基礎拆分的解耦合方案,這樣后續(xù)上層業(yè)務線有變化,通用應用層針對調整即可,基礎服務層無需變動。
不同類系統(tǒng)分層的差異性
在我接觸的所有系統(tǒng)中,無論是業(yè)務系統(tǒng)、工具系統(tǒng)還是服務系統(tǒng),底層服務都是進行了分層,只不過分層的考慮維度不同,差異性在于系統(tǒng)服務范圍不同:
- 業(yè)務系統(tǒng)服務單條業(yè)務線的全鏈路流程,核心功能都是針對業(yè)務團隊定制化做出來,基本做出來就是1個獨立的功能供單方業(yè)務應用;在這種系統(tǒng)內(nèi)大量以定制化服務為主的,按照基礎能力、應用能力拆分顯然是不合適的。
- 工具系統(tǒng)服務多條業(yè)務線的某些具體場景,而服務系統(tǒng)服務多條業(yè)務線的局部環(huán)節(jié),它倆都必須具備通用性,這時系統(tǒng)為了快速響應上層接入系統(tǒng)的需求,同時保持底層服務純粹,不因外界變化而頻繁調整,所以將基礎能力拆分出來放在底層隔離,而新增一個中間層作為通用應用層,為上層接入系統(tǒng)提供調度或組合,支撐外部接入系統(tǒng)應用。
以催收&呼叫中心&訂單中心,對比業(yè)務系統(tǒng) & 工具系統(tǒng) & 服務系統(tǒng) 的分層維度側重:
1)業(yè)務類-催收系統(tǒng)-底層技術服務主要分為2套:服務分層側重于性能穩(wěn)定,保障系統(tǒng)易用性。
- 一套work服務:主要應對核心的定時任務,包括主流程的進件數(shù)據(jù)組裝功能、以及批量數(shù)據(jù)結果例如減免/劃扣/短信等數(shù)據(jù)的拉取;
- 一套web服務,主要針對頁面操作,列表數(shù)據(jù)查詢;這樣以保證高頻查詢不占用核心定時任務的性能資源;
2)工具類-呼叫中心-底層技術服務分為2套:服務分層側重于解耦,保障快速響應業(yè)務變化的同時避免高耦合導致后期復雜的維護成本;詳見下方圖例
- 一套基礎服務-軟交換:主要提供線路連接、呼出&呼入&通話記錄&媒體記錄這些最基礎的服務;
- 一套通用應用服務:主要提供的點呼&團隊預測試外呼&智能語音機器人&號碼池路由,這種外部可以直接調用的應用功能;
3)服務類-訂單中心-底層技術服務分2套,分層側重同上呼叫中心,詳見下方圖例
工具類–呼叫中心分層圖例如下
服務類-訂單中心分層圖例如下
5、劃分邊界
劃分邊界:是指將工具&服務系統(tǒng)的上下游關聯(lián)關系體現(xiàn);
當系統(tǒng)完成服務分層后,通過接入層體現(xiàn)上游接入業(yè)務線或調用系統(tǒng),通過外部依賴層鏈接下游提供能力支持的系統(tǒng)即可完成系統(tǒng)關聯(lián)關系的表達。
最終呼叫中心的完整系統(tǒng)架構表達如下:
三、總結
系統(tǒng)分類特點上
工具系統(tǒng)與服務系統(tǒng)雖然都具備通用性,但兩者在細分服務類型上存在差異
- 工具系統(tǒng)聚焦具體場景服務,無論這個場景是屬于N條業(yè)務線還是1條業(yè)務線,它不關心。系統(tǒng)對外提供工具化能力,拿來即用。
- 服務系統(tǒng)聚焦業(yè)務流程中的局部環(huán)節(jié),系統(tǒng)內(nèi)部能形成一條服務鏈路,對外提供通常是一系列能力支持。
系統(tǒng)架構設計思路上
工具系統(tǒng)和服務系統(tǒng)設計區(qū)別在于是否需要盤點業(yè)務流程,其他思路一致
1)先明確系統(tǒng)定位:通過定位敲定系統(tǒng)基礎能力
2)抽線→盤點→定標準:
- 工具類系統(tǒng):直接盤點未來接入業(yè)務線的應用場景,再通過定義對接標準,完成全部功能點的挖掘;
- 服務類系統(tǒng):先梳理內(nèi)部服務流程鏈路,階段化對服務的多業(yè)務線進行事件挖掘,找出功能點;
3)抽象:比對接入業(yè)務線的功能點,若功能在系統(tǒng)服務流程或場景中,被2+業(yè)務線應用且功能不會導致系統(tǒng)與業(yè)務耦合,就可以考慮將功能統(tǒng)一納入系統(tǒng)實現(xiàn)為公用組件。
4)分層:不同維度進行服務分層,通常以基礎服務、通用應用拆分,保證低耦合度的同時可以快速響應多方業(yè)務變化。
5)劃分邊界:鏈接上游接入層,下游外部依賴層。
拓展閱讀:
- 相關閱讀:3大系統(tǒng)架構設計-業(yè)務系統(tǒng)篇
- 風控系列1.信貸法催業(yè)務模式與系統(tǒng)架構
- 風控系列2.信貸電催業(yè)務模式與系統(tǒng)架構
- 風控系列3. 關于互聯(lián)網(wǎng)金融風控的思考
作者:橙言,互金風控產(chǎn)品經(jīng)理;公眾號:橙言(ChenYan_515)
本文由 @橙言 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉載
題圖來自 Unsplash,基于CC0協(xié)議。
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務。