大廠的供應鏈採購系統設計

来源:https://www.cnblogs.com/JavaEdge/p/18016695
-Advertisement-
Play Games

關註我,緊跟本系列專欄文章,咱們下篇再續! 作者簡介:魔都技術專家兼架構,多家大廠後端一線研發經驗,各大技術社區頭部專家博主,編程嚴選網創始人。具有豐富的引領團隊經驗,深厚業務架構和解決方案的積累。 負責: 中央/分銷預訂系統性能優化 活動&優惠券等營銷中台建設 交易平臺及數據中台等架構和開發設計 ...


關註我,緊跟本系列專欄文章,咱們下篇再續!

作者簡介:魔都技術專家兼架構,多家大廠後端一線研發經驗,各大技術社區頭部專家博主,編程嚴選網創始人。具有豐富的引領團隊經驗,深厚業務架構和解決方案的積累。

負責:

  • 中央/分銷預訂系統性能優化
  • 活動&優惠券等營銷中台建設
  • 交易平臺及數據中台等架構和開發設計

目前主攻降低軟體複雜性設計、構建高可用系統方向。

參考:

0 前言

公司發展面臨商業環境變化,如流量模式、競爭格局和公共衛生事件。採購系統作為供給端核心系統之一,做好頂層設計並持續進行系統演進,才能適應劇烈的業務變化,服務好最終用戶。本文從定義巨集觀設計藍圖落地系統持續演進展開整個採購系統架構過程,看業務系統架構設計過程。

1 定義巨集觀

不斷聚焦,推演採購系統的底層架構關鍵點。

1.1 最大的變化和不變

商業定位,確定架構底層邏輯:

  • 變化:企業面臨商業環境變化及自身發展訴求。企業商業定位面臨調整,業務範圍可能擴張或收縮,業務模式可能微調或顛覆。架構重心發生極大變化,需提前規劃調整,不然系統和業務發展間隙越大
  • 不變:商業定位決定公司長期走向,商業定位一旦確立有長期穩定性,以一個明確定位來占領用戶心智,同時業務都圍繞定位展開

如定位平臺模式和品牌模式的電商公司,業務特點和架構特點匹配如下:

業務特點 架構特點
平臺模式(如:天貓) 撮合大量商家和消費者,關註交易量,關註GMV。入駐品牌多,品類廣,更關註商品交易屬性,基本不關註生產製造 起量快,得確保系統設計易擴展,無論表拆分、機器擴容。營銷玩法多變,為快速響應業務,需靈活前臺設計和堅實中後臺
品牌模式(如:嚴選) 關註忠誠用戶,關註利潤率,以品為核,從設計製造環節抓起,到商品交付給用戶,乃至售後都兼顧。但品類數量增長慢,資產重 需向多渠道鋪貨,業務前端要匹配各平臺玩法。業務後端從商品企划到設計、生產、製造、運輸、倉儲的鏈條極長,流程聯動,數據準確性保障都要考慮。為匹配業務前端,往往要做渠道庫存、渠道訂單這樣的抽象設計

1.2 全鏈路視角:深度協同 &雙向驅動

  • 商業鏈條極長,選品,採購溯源,計划下單,合同簽署,備料協同,生產製造,品質管控,物流運輸,倉儲管理,退供翻新,金融結算等環環相扣
  • 協同角色極多,從商品開發,採購,計劃,品控,關務,財務等密切合作
  • 層次錯綜複雜,從傳統的供應鏈三流:實物流、信息流、資金流和商流,縱橫交錯

供應鏈業務和技術是互咬齒輪:

  • 前期業務驅動,大量場景需線上化,完成初期流程閉環和數據積累
  • 發展一定階段,大量技術驅動場景,展現數智化特征,如服務供需平衡的銷量預測、智能補貨,服務庫存平衡的採購分倉、倉間調撥

整體供應鏈採購發展是技術和業務雙驅。架構設計過程,要認清當前系統和業務的發展階段,平衡好當前訴求和未來發展,做好業務支撐同時,挖掘數智化機會,為變化留有餘地同時拒絕過渡設計。

1.3 找準系統演進關鍵特征

以準確性、可用性為基:

img

理清業務特點後,需圈出採購系統關註的技術特征及這些關鍵特征的演進目標:

  • 可用性。作為履約核心鏈路,多角色日常工作需頻繁操作線上系統,能全天候完整為用戶提供服務能力是基礎和關鍵
  • 準確性。業務鏈路長(從計划下單到採購請款結算中間要經多個關鍵流程),業務完結周期長(短則幾天,長則一年多),數據準確有很大挑戰。又因採購是關鍵的成本結算鏈路,所以對數據準確性有很高要求

需進一步量化這些架構特征,用以觀察和保證系統是向目標方向拉動。如關註服務可用性,可用線上率、故障率倆指標。指標構建落地要結合公司技術,若有SLA/SLO/SLI相關服務質量平臺,可直接借力,把指標納入架構觀察大盤,而非重覆構建。類似也可借力自動化測試平臺,構建一些性能、安全性的架構特征的量化觀察指標。

2 設計藍圖

確定階段性目標架構。理清關鍵底層邏輯後,可開始確定階段性目標架構藍圖。如RUP 4+1視圖,本文談如下視角

2.1 限界上下圖

分治之基、扯皮之盾:

分治,大系統小做。採購系統包含跨境採購、採購執行、退供/翻新等大量業務,同時要和大量外部系統如商品中心、供應商、財務等交互,這種業務場景多,和外部聯動多的系統,只有界定好內外部邊界,才能將系統和人員職責拆分到位。

系統的服務化粒度可直接映射參考內部子域劃分。如系統大小合適,系統負責人和系統之間一對一配比最好。

2.2 業務架構圖

業務場景和系統能力平滑匹配:

業務架構圖要將業務、系統思考清,圖要明確橫向縱向的意圖。

① 橫向:表達業務流程

  • 利益相關者:可通過用戶利益關註點不同做用戶群體劃分,可通過角色來抽象劃分後的用戶
  • 橫向業務閉環:業務最終必定服務用戶,所有利益相關者的關註點應該在每個橫向層次上得到承載和體現

② 縱向:表達能力分層

  • 縱向關註拆解,從“業務願景”不斷拆解到一個個細小的‘業務能力’載體
  • 分層,對拆解過程進行抽象,歸納,提煉 4 層表達結構:場景層、產品功能層、系統能力層、業務模型層

場景分析是關鍵。業務架構產出靠不靠譜,其中一個因素就是業務域下的作為輸入場景是否考慮清晰,是否覆蓋全面,即‘場景分析’是否到位。該層是基礎,至於分層業務架構產出,如L0,L1,L2層可在該基礎做抽象和結構化。

3 落地系統

有層次,有節奏的構建系統:

3.1 一層:橫向擴張

以域為核心,打造系統版圖:

搭建業務和系統大的框架結構,做業務域級別的覆蓋和服務系統級別的落地。供應鏈採購作為相對成熟的業務,可參考業務側整體版圖來預判系統形態。

然後結合當前系統和業務現狀,規劃系統發展路徑。若新需求不在當前子域,可考慮將新的系統直接構建出來,承接這塊業務需求,以滿足未來發展。若有板塊內的關鍵子域落入其他板塊,可邊界治理,劃回業務和系統能力,划出不屬於採購系統的,以保證規劃整體性和系統內聚。

3.2 二層:垂直深挖

精細化場景覆蓋:

多角度驗證場景完整性,做場景級業務覆蓋和系統能力級別的補全。業務域初步搭建成型後,在支撐基本業務流程基礎上,不斷挖掘用戶在成本控制、提效、體驗的深度訴求,迭代細分場景以豐富系統。如審批域:

  • 可提供專門服務緊急場景的緊急審批能力,除了幾個關鍵節點審批,其他日常審批節點都繞過,極速完成審批
  • 也可根據便攜化審批訴求,提供移動審批

3.3 三層:自動化 &數智化

當前的終極階段,需長期思考探索。在精細化做了段時間後,系統有一定成熟度基礎,團隊也對業務有深入理解,可挖掘自動化&數智化機會。

如探索個性化流程場景:為不同業務方個體搭建個性化採購流程。關鍵思路,採購是重流程系統,而有些流程節點的設計是在風險控制和效率間博弈,如某些審批節點。而每個業務人員個體靠譜度不同,若能為某些靠譜業務人員跳過某些主要基於風險控制考量的節點,極大提升流程效率。

4 持續演進:動態平衡

img

目標架構,只是某時間對架構的理想狀態的判斷,當一些關鍵因素變化,目標架構需及時調整,而變化是持續的,所以目標架構其實也是連續變化的。當目標架構變化後,會開啟新一輪定義、設計和落地,所以系統能力和需求的匹配一直處於一個動態平衡中。如雙十一說明市場環境變化導致業務變化,而業務變化後系統側需要做出調整:

  • 市場變化:本年雙十一銷售高峰除當天,還有‘11.1-11.3’,形成 2 個銷售波峰,波峰之間有 7 天緩衝

  • 業務變化:對採購側業務方,這市場變化,多‘一次復盤,一次補貨’

    • 一次復盤:‘11.1-11.3’大促後,可快速復盤下當前採購量和目標偏差,調整關鍵數據如大促繫數(大促期間對比平銷期採購量倍數)
    • 一次補貨:復盤後發現一些採購量偏差、一些爆品缺貨風險
  • 系統變化:一波大促變兩波,對流量、系統容量需重新評估設計。可提供一些數據輔助決策工具幫助業務快速‘11.1-11.3’復盤,和‘11.11’採購量重新預測。最後提供緊急補貨工具,縮短採購履約時間,完成偏差採購量補貨

5 總結

供應鏈這種B端系統門檻高,對架構師業務深度、技術深度提出雙向要求,埋頭做系統可不行。將業務敏感度和架構方法論結合,用發展動態眼光看,才能發現真正技術價值和業務價值。

本文由博客一文多發平臺 OpenWrite 發佈!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在Mysql資料庫中,模糊搜索通常使用LIKE關鍵字。然而,隨著數據量的不斷增加,Mysql在處理模糊搜索時可能面臨性能瓶頸。因此,引入Elasticsearch作為搜索引擎,以提高搜索性能和用戶體驗成為一種合理的選擇。 1、客戶的訴求 在ES中,影響搜索結果的因素多種多樣,包括分詞器、Match搜 ...
  • pandas的DataFrame功能強大自不必說,它可以幫助我們極大的提高統計分析的效率。 不過,使用DataFrame開發我們的分析程式的時候,經常需要列印出DataFrame的內容,以驗證和調試數據的處理是否正確。 在命令行中雖然可以直接列印出DataFrame的內容,但是閱讀比較困難。正好前段 ...
  • python編譯相關 具體編譯步驟 Python代碼的編譯和執行過程可以更詳細地描述如下: 詞法分析(Lexical Analysis)和語法分析(Syntax Analysis): Python解釋器首先會對源代碼進行詞法分析和語法分析。詞法分析器會將源代碼分解成詞法單元(tokens),這些單元 ...
  • 雲計算 - 負載均衡SLB方案全解與實戰,介紹SLB的核心技術、用戶最佳實踐、阿裡雲 SLB產品舉例、應用場景。 關註【TechLeadCloud】,分享互聯網架構、雲服務技術的全維度知識。作者擁有10+年互聯網服務架構、AI產品研發經驗、團隊管理經驗,同濟本復旦碩,復旦機器人智能實驗室成員,阿裡雲 ...
  • 1、定義 Go語言支持一種特殊的欄位只需要提供類型而不需要寫欄位名的欄位**,**稱之為匿名欄位或者嵌套欄位。 所謂匿名欄位實際上是一種結構體嵌套的方式,所以也可以稱作嵌套欄位。 這種方式可以實現組合復用,即通過匿名欄位,結構體可以直接訪問嵌套結構體的欄位和方法,而無需通過欄位名或類型進行嵌套。 2 ...
  • 目錄: OpenID 與 OAuth2 基礎知識 Blazor wasm Google 登錄 Blazor wasm Gitee 碼雲登錄 Blazor OIDC 單點登錄授權實例1-建立和配置IDS身份驗證服務 Blazor OIDC 單點登錄授權實例2-登錄信息組件wasm Blazor OID ...
  • 最近需要在伺服器上運行一些時間很長的命令,想讓伺服器自動通知我什麼時候命令完成,通過命令結束後發送郵件給我來提醒。 安裝 msmtp 和 mail # RedHat 系 sudo dnf install msmtp mailx # Debian 系 sudo apt install msmtp ma ...
  • 程式說明: 《幾何衝刺》是一款基於Scratch平臺開發的跑酷類游戲程式。在這個游戲中,玩家控制一個黃色的小方塊,在快速向前衝刺的過程中躲避各種障礙物。通過按下鍵盤上的上方向鍵,玩家可以操作小方塊進行跳躍,以避開途中的障礙。游戲的目標是儘可能讓黃色小方塊跑得更遠,挑戰玩家的反應速度和操作技巧。 小虎 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...