公司背景
公司融資10億,剝離B2B生鮮業務板塊為獨立公司運營。除部分核心產品經理,運營,採購角色外,諸如研發團隊等重新組建,並承接部分歷史系統重新打造一整套供應鏈平臺去支撐大規模業務擴張。全國70個左右倉(包含前置倉,中轉倉和實體倉),實際達到百億業務規模(營收),預計達到千億業務規模。
研發規模
研發團隊規模前期規劃約百人(大約在6個月以內),後期增長到近180人左右;
研發組織採用矩陣式架構管理,分別包含財務組,工廠組,倉儲組,採購組,大B銷售業務組,小B銷售業務組,資料分析組,架構組。
產品總監: 負責並統籌管理所有產品人員,為整個產品,流程,使用及體驗負責;
專案經理: 統籌所有專案進度和研發人員資源調配,為整個產品的研發進度和交付負責。
首席架構師: 統籌所有技術架構,支援所有專案技術和業務使用,構建技術中臺並支撐技術演變和運維,為整個產品的穩定性負責;
資料經理: 統籌所有資料和業務報表,打造資料中臺,支撐智慧化資料運營,為業務和高層管理決策提供資料支援。
應用架構
業務架構
技術架構
技術架構演進
研發基礎設施
運維自動化
資料庫運維
分散式基礎設施
1. 分散式任務排程平臺
xxl-job, 用於後臺/非同步任務等任務的掛載,確保一些耗時/耗資源/定時的任務和api分離,確保前端api的穩定。
2. 分散式服務中心
eureka-server, 用於服務的註冊,負載均衡,故障轉移,健康檢測等服務統一管理。
3. 分散式訊息佇列
rocketmq, 用於業務的非同步解耦,上下游訊息的轉發,異構業務的非同步通訊等。
4. 分散式日誌中心
elk, 用於應用日誌的統一管理,查詢,統計等。
5. 分散式檔案服務
七牛檔案服務, 用於檔案的上傳,下載,檔案生命週期的管理,圖片的動態縮放等。
6. CDN
騰訊cdn, 用於圖片,指令碼,css等檔案的cdn網路加速,加快前端資源的下載速度。
7. 分散式配置中心
apollo, 用於所有專案的配置分類,抽象,灰度釋出等管理。
8. 分庫分表中介軟體
sharding-jdbc, 用於對業務開發人員遮蔽資料庫的分庫分表,主從讀寫分離的拆分細節。
9. 搜尋服務
elasticsearch, 用於全文檢索,相似度文件(資料)的業務查詢。
10. 分散式快取
redis, 用於業務的分散式快取,從而加快業務的查詢速度。
分散式監控體系
1. 呼叫鏈監控
pinpoint, 用於所有服務的呼叫關係的監控分析,裡面也包含(cpu,記憶體,耗時)效能等。未來要遷移成skywalking。
2. 日誌監控
elk, 用於應用日誌的統一管理,查詢,統計等。
3. 伺服器監控
zabbix, 用於所有linux伺服器系統級別的效能監控。
4. DB監控
pmm,用於所有線上mysql資料庫的效能監控記錄,慢查詢等分析。
5. 應用監控(效能分析)
cat,用於所有線上順向和逆向呼叫鏈路的分析,資料庫和url耗時的效能分析,服務及伺服器的效能分析報表,bsf自研監控報表等。
分散式框架BSF
目標: 為了更好地支援業務開發,讓開發人員從中介軟體中解放出來,專注業務以提高開發效率。同時基礎框架集中統一最佳化中介軟體相關服務及使用,為開發人員提供高效能,更方便的基礎服務介面及工具,實踐過程可讓效率提升10倍。
開源地址: https://gitee.com/chejiangyi/free-bsf-all
底層框架bsf和業務框架business剝離,讓通用的底層框架剝離實際的公共業務類庫; 基於bsf和business之上,定義標準的專案腳手架csx-b2b-demo,用於快速構建專案服務。
業務基礎服務構建
對比現有服務市場架構
技術架構
業務架構
未來
- 業務服務拆分架構重構
- 大資料和讀寫分離
- ai 對於業務的應用
- bsf 對jdk17及21的支援
- 表單引擎及流程引擎
by 車江毅
2023-5-6
java研發團隊內部架構分享筆記