博客 / 詳情

返回

如何接手一個新系統

在平時的工作中,接手別人的系統上一個一年還是會有幾次的工作,本期我們就來梳理下,一般接手一個新系統都要從哪些方面來儘快熟悉下,保障自己不掉隊。
接手一個新系統,一般要從這幾個方面來熟悉:
一、業務知識;
二、技術知識:
1、邏輯架構
邏輯架構主要要了解以下這幾部分:
1.1系統整體和每個子系統的架構圖、核心領域模型;
1.2幾塊核心模塊和業務流程、時序圖;
1.3每個系統的上下游系統依賴、核心聯繫人、交互協議方式
2、開發架構
開發架構主要關注使用的框架、第三方 SDK、中間件、工具包
3、物理部署
4、數據架構
5、系統運維
下面我們就來詳細看下每部分應該如何做:

一、業務知識

1、系統有哪些領域概念?梳理下系統的領域模型;
系統的關鍵業務流程有哪些?關鍵業務流程是怎樣?
系統的非功能性需求有哪些?如性能、質量、擴展性、安全性等;
系統未來的發展規劃是怎樣?
2、系統有什麼業務價值?有哪些指標可以衡量系統業務價值?
系統有哪些功能模塊,大的模塊系統的目標用户是?規劃平均有多少人在使用?
高峯期多有少人在用?有多少 DAU(daily active user)、MAU(monthly active user)?

二、技術知識:

1、邏輯架構

邏輯架構主要要了解以下這幾部分:
1.1系統整體和每個子系統的架構圖、核心領域模型;
1)架構圖主要描述總體架構、系統模塊、子系統模塊定位;
2)子系統模塊主要描述子系統定位和其架構和子系統之間的關係;
3)系統集成關係:側重跟外圍系統之間的關聯和交互;
4)核心領域模型可以按照ddd的模式來梳理,並和數據庫的表對應;
5)網絡架構圖;
6)系統部署圖;
1.2幾塊核心模塊和業務流程、時序圖;
1)每個大的功能系統操作頁面、入口類和其業務流程圖;
2)對應的接口或者入口類及從頁面到數據庫的線,從接口到數據的線、主模塊設計細節圖例如靜態的包圖和類圖,動態的有序列圖、協作圖、狀態圖、活動圖;
3)與其他系統之間關鍵流程扭轉,狀態流轉圖等;
4)本模塊能做的需要監控的核心業務流程和其監控告警策略;
5)需要幾個子系統間甚至系統間進行數據分析驗證的數據庫表和分析邏輯;
6)公共模塊、核心模塊或者影響面大的模塊是哪些;
7)各個模塊的非功能性現狀大致是怎樣的,例如:性能、擴展性、安全性等;
1.3每個系統的上下游系統依賴、聯繫人、交互協議方式
1)本系統的上線遊依賴,內部交互方式是rpc、http、http?同步還是異步?聯繫人?
2)和外部交互的也需要整理進來,和各個核心交互能處理的閾值和失敗處理方式(是指在正常情況下的閾值,非其他業務不運行,單獨某個接口的處理閾值)

2、開發架構

開發架構主要關注使用的框架、第三方 SDK、中間件、工具包,具體如下:
1)使用技術框架、前端和後端都列;
2)對接使用的第三方sdk列表;
3)用了哪些開源工具包和對應版本號;
4)用了哪些中間件和其版本,還有對應的java引用的客户端類型,例如redis是Jedis 還是Lettuce 、還是Redisson ,中間件加載使用所在的包和類和其行業通用解決方案梳理,例如redis分佈式鎖的代碼;
5)各個子系統依賴內部什麼資源才能啓動,
依賴公司內部或者其他平台的什麼資源才可以正常運行核心功能,啓動時間大致多少;

3、物理部署

1)系統如何發佈部署?和系統各自有多少台機器?
2)系統怎麼部署的?接入層,部署方式,如集羣部署、分佈式部署等
3)假設系統擴容,所依賴的資源例如網絡、機器等申請多少,假設做異地多活或者單元化架構有哪些改造點

4、數據架構

1)所用的數據庫類型,承擔了什麼功能,已經使用容量、總容量、告警類型和閾值,
可能的限制因素和數據硬件部署方式和軟件架構,例如mysql的mma還是mgr還是mha等,有無和其他系統混合部署情況?
2)梳理表之間的E-R 圖;
3)核心表現有數據量有多少?每日增量多少,業務投放對現有容量的影響?是否需要分庫分表?
4)用了哪些 nosql 庫?和1)一致的問題,是否有使用nosql做存儲的情況;
5)有哪些數據同步任務?不僅本系統的主庫從庫同步和延遲,還有業務系統和大數據的同步和延遲情況,
和大數據同步後對方提供的接口是否有其特殊邏輯處理?

5、系統運維

1)什麼時間容易出問題?對關鍵功能是否有監控?需要看系統有配置了哪些報警項,監控了哪些方面;
出了問題怎麼解決?日誌在哪?是否有全鏈路跟蹤?是否有一些緊急操作,比如開關配置、降級、限流配置;
解決後怎樣保障如何不出同樣或者類似的問題,類似保障手冊、應急預案、資損盤點之類的內容
2)研發同事總結的歷史問題case;
3)運營、客服、技術支持、政府事務組、公關、財務、其他上下線遊反饋的常見問題有哪些?
4)遺留線上 Bug 清單和 Owner 分配
有參考:如何熟悉一個系統?(內含知識大圖) - 掘金

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.