思考如何保障系統的穩定性

公司的SaaS平臺中,有一條產品線 --- 外賣(此外賣非彼美團、餓了麼外賣)姑且稱之為“雲平臺外賣”,我們在哪些方面做了穩定性、又是如何落地的?我們從一個用戶視角的訂單全生命週期流程中,來看下我們“雲平臺外賣”處在什麼環節:

思考如何保障系統的穩定性

  • 以普通用戶的視角來看,一個外賣訂單從下單後,會經歷支付、商家接單、配送、用戶收貨、售後及訂單完成多個階段。
  • 以技術的視角來看,每個階段依賴於多個子服務緊密配合,確保訂單順利完成。

2. 挑戰

  • 流程較長且實時性要求高
    外賣訂單業務是一個需要即時送的業務,對實時性要求很高。從用戶訂餐到最終送達用戶,一般在1小時內。如果最終送達用戶時間變長,會帶來槽糕的用戶體驗。
  • 訂單量高且集中
    一天內訂單量會規律變化,訂單會集中在中午、晚上兩個“飯點”附近,而其它時間的訂單量較少。這樣,飯點附近系統壓力會相對較大。

我們的“雲平臺外賣”是處在商家接單的環節;商家接單,也是一個非常複雜的處理流程,我們抽象成簡單的流程:

思考如何保障系統的穩定性

我們面臨的挑戰:

  • “實時”接單無延遲
  • “實時”接單無丟單

任何一種情況發生,客戶都會面臨著營業額減少甚至客戶門店被外賣平臺關閉的風險。

二、何為系統穩定性

思考如何保障系統的穩定性

軟件系統的穩定性,很難有一個恰當的模型表述。如果採用數字量化的話,我們也可以採用SLA服務協議說明系統的穩定性。
正所謂“千里之堤,潰於蟻穴”,看似無關緊要的代碼片段可能會帶來整體軟件系統的崩潰。

三、影響系統穩定性因素

思考如何保障系統的穩定性

軟件系統穩定性影響因素比較多,我們從軟件工程開發過程中,梳理出常見的因素:
我們要在軟件設計的階段,要充分考慮系統穩定性因素;一旦考慮不周,當線上系統面臨快速增長的業務時,噩夢就會連連。

四、如何保障系統的穩定性

1. 系統穩定性保障的指導思想

  • 負反饋調節法
  • 確定目標,並加入控制條件;根據反饋結果不斷調整,朝著可能性空間縮小的方向發展,使目標差在一次次控制中慢慢減少

2. 系統穩定性保障的基本準則

  • 規範流程
  • 自己不作死
  • 不被隊友搞死
  • 多部門間的協作聯動

3. 系統穩定性保障的技術措施

思考如何保障系統的穩定性

我們從多個方面通過嚴謹的流程、架構、技術、測試以及運維保障系統等手段來保障系統的穩定性。但是,要保障系統的持續健康運行,還需要多部門間的積極的協助聯動。

五、總結

上述梳理,我們知道線上系統故障主要是:

  • 自身系統的問題
  • 外部系統的問題
  • 基礎設施的問題

所有的軟件系統問題,最終癥結在於架構、產品質量和技術工程方面的問題。


分享到:


相關文章: