天天看點

世紀聯華的 Serverless 之路一、世紀聯華超市簡介二、技術架構演進三、設計架構演進總結四、函數計算簡介

世紀聯華的 Serverless 之路一、世紀聯華超市簡介二、技術架構演進三、設計架構演進總結四、函數計算簡介

作者 | 朱鵬(旻蒼)

來源 |

Serverless 公衆号

一、世紀聯華超市簡介

1. 公司簡介

世紀聯華的 Serverless 之路一、世紀聯華超市簡介二、技術架構演進三、設計架構演進總結四、函數計算簡介

杭州聯華華商集團有限公司成立于 2002 年 7 月,主要業務涵蓋購物中心、大賣場、超市、便利店等零售業态,G20 杭州峰會食材總倉建設、保障機關,是浙江省商貿龍頭企業。

集團 200 多家門店中,主要涉及 POS 機交易、聯華超市、CITY LIFE、天華世紀城等,除此之外還有線上精選 APP,提供線上購買、送貨到家服務,還會不定時推出優惠券領取、限時秒殺等活動。

2. 世紀聯華技術架構演進方案

世紀聯華的 Serverless 之路一、世紀聯華超市簡介二、技術架構演進三、設計架構演進總結四、函數計算簡介
  • 2002 年,公司成立後一直使用實體單機架構。
  • 2014 年,因為雙十二事件,導緻公司不得不做出改變,将業務遷移到中央機房。
  • 2018 年,随着國内公共雲的發展,開始部署全面上雲。
  • 2019 年 6 月,公共雲上出現資料庫壓力過大,世紀聯華由此開始探索新架構方式。
  • 到 2019 年 11 月,僅用大概 4 個月時間,世紀聯華就把一部分業務搬到了阿裡雲的 Serverless 上,包括 API 網關、函數計算、表格存儲,在 雙11 期間,這三款産品的應用表現非常優異,使得世紀聯華決定 All in Serverless。
  • 截至 2020 年 11 月,All in Serverless 使得整個公司的開發效率得到極大提高,成本大幅節省。

二、技術架構演進

1. 實體單機架構

世紀聯華的 Serverless 之路一、世紀聯華超市簡介二、技術架構演進三、設計架構演進總結四、函數計算簡介

2014 年及以前實體單機架構下,一個超市通常隻有 2~20 台 POS 機,最多 20 個用戶端,架構非常簡潔,隻要在一台實體機上部署好本地資料庫,交易系統、會員系統、商品管理全都放在一個程序上就足夠。如果要做相關操作,比如調取某個交易、給使用者注冊相關資訊、調整商品價格,隻要通過 Admin 用戶端連接配接程序再做相應改動即可。通常來說,一個大型超市隻要買一台性能足夠強的機器,就可以服務好幾十個 POS 機發起的請求。

單機架構優劣勢比較:

1)優勢

  • 架構簡潔;
  • 不受外界網絡環境的影響;
  • POS 機分散後單機沖擊相對小。

2)劣勢

  • 資料遷移查詢彙總困難

2014 年問題逐漸暴露,比如在杭州的總部,想查詢湖州某個門店的實時交易量,基本不可能,跨網絡查詢和資料量大是難以解決的問題。

  • 資料分發靠定期同步

比如客戶在 a 門店注冊的會員卡,很難去 b 門店消費,隻能靠定期同步,把 a 門店的資料定期拷貝到 b 門店去,這其中存在很多問題,對消費者來說也非常麻煩。

  • 故障時很難第一時間維護修複

我們不可能每個門店都派一名專業的維護人員,如果機器出了故障,隻能打電話給總部的工程師,這種情況就很難做到第一時間趕到現場修複,這是很嚴重的問題。

  • 單點故障容災困難

因為所有的業務都包含在一個程序裡面,如果程序出現異常, 也沒辦法把業務交給另一個程序處理。

  • 更新困難

我們在浙江省有上百家門店,每一次更新都需要專業的運維人員把新代碼包部署到不同的機器上。

  • 新業務部署在單機上沖擊巨大

舉個案例,2014 年雙十二,支付寶推出了使用支付寶錢包付款可以打 5 折的線下優惠活動,當時全國線下近百個品牌、2 萬多家門店都參與其中,世紀聯華也有參與,但是當天卻出現了大量消費者無法結賬在超市排起長隊的情況。

世紀聯華的 Serverless 之路一、世紀聯華超市簡介二、技術架構演進三、設計架構演進總結四、函數計算簡介

因為我們剛剛引入一個新的支付方式,所有的業務都在單個程序上,耦合度過高,當時大家集中結賬通路量過大,導緻支付出現問題,整個單機通路無法進行下去,其他的業務子產品也是以受到影響,最後隻能重新開機機器。因為這個問題,世紀聯華開始嘗試做出新的改變。

2. 中央機房部署架構

單機最大問題是如果門店出現問題,相關工程師無法第一時間趕到現場,尤其是多個機器、多個門店同時出現問題的情況,這時最好的辦法是把所有機器集中在一起,做集中的資料修複、運維管理和軟體更新。

2014 年到 2018 年期間,世紀聯華逐漸把單機架構整個遷移到了中央機房。中央機房是自建的,做法就是把資料庫、交易系統、會員系統、商品管理全部拆分到多個程序當中。這樣一來,如果會員系統挂掉了還可以暫時匿名購買;商品管理臨時出問題但隻要交易系統沒問題就還可以頂上。耦合一旦降低,對于整個門店的業務保障來說,有了很大的提升。

世紀聯華的 Serverless 之路一、世紀聯華超市簡介二、技術架構演進三、設計架構演進總結四、函數計算簡介

在這裡我們做了一個 node 節點,node 節點連接配接中央機房的資料庫以及各個系統子產品。如果出現問題,隻需要在中央機房做相關修複即可。除此以外,如果需要調整商品價格,也隻需在中央機房上直接設定,然後同步到所有門店的 node 節點上就可以了。

中央機房部署架構的改進和不足:

1)改進

  • 問題可集中維護處理;
  • 商品價格調整下發全部走網絡;
  • 資料可集中查詢統計彙總。

2)不足

  • 管理者需要掌控機器細節;
  • 當機斷網事件調查困難應急方案薄弱;
  • 硬體更新成本高;
  • 需要提前采購大量硬體備災;
  • 軟體、系統批量部署成本高;
  • 資源預算困難。

3. 全面上雲

世紀聯華的 Serverless 之路一、世紀聯華超市簡介二、技術架構演進三、設計架構演進總結四、函數計算簡介

2016 年以後,随着國内公共雲的迅速發展,全面上雲勢不可擋。在此期間,阿裡雲在技術上取得了許多突破與提升,例如 ECS 的對外釋出。世紀聯華在 2018~2019 年期間,把自建機房中的各個系統子產品逐漸遷移到了公有雲,整體架構沒有太大改變,是以遷移工作相對順利。

全面上雲的改進和不足:

主要有以下三個方面:

  • 不再需要關心網絡、作業系統的硬體細節

比如阿裡雲的 ECS 會提前做排程和預警,把使用者資料轉移并做多份資料的備災,防止磁盤壞掉的情況發生。

  • 硬體更新快捷簡單

比如使用者使用的是 4 核的機器,當發現業務增長迅速需要做硬體更新時,就隻需要做一個鏡像。比如在夜間做一個磁盤快照,重新申請一台新機器,然後把快照恢複上去,就可以完成一鍵遷移。對世紀聯華來說,這是非常快捷的方式,對開發者來說也是比較好的體驗。

  • 機器擴容時間大幅縮短

上面提到的是單機擴容,比如 4 核升到 8 核、16G 升到 32G 的記憶體。除此之外還有橫向的擴容,例如使用者交易系統的 API 接口,随着業務的發展需要由原來的 2 台機器擴到 8 台機器,這種情況下使用者隻需去申請機器,然後将鏡像擴充到不同的機器上即可。

主要有以下六個方面:

  • 資源預算困難

由于無法預估業務遇到大促等活動時所能達到的體量,是以無法準确計算出所需硬體的數量。

  • 水準擴充

水準擴充對研發有較高的要求。比如資料是否要做到無狀态,無狀态的話水準擴充會比較容易,而如果是有狀态,資料可能就需要做緩存,這就會涉及到資料庫相關的問題,例如資料過期、一緻性等。如果對這些了解不夠透徹,做水準擴充就會比較困難。

  • 水位監控

許多開發者在水位監控上處理得并不完善,如果将各個業務系統混在一台機器上,當遇到機器水位較高,想要快速排查問題并及時進行流控、拆分、臨時修複等就顯得尤為困難。

  • 财務預算困難

與資源預算困難類似。

  • 硬體更新成本高

要做到使用者無感無損更新,可能會涉及到連接配接上的處理與資料庫一緻性的問題。如果多個子產品需要同時更新,還要注意資料結構的相容問題。

  • 資料庫單點故障

許多廠家将資料全部放在一個資料庫中,如果處理不妥當可能會造成單點故障。這就要做資料拆分,粗拆的話,需要注意事務和鎖相關的問題,效率會大打折扣;細拆的話,做查詢和排序時就會比較困難,給業務實作造成一定麻煩。

4. Serverless 的探索和嘗試

1)線上不可控業務上的預防

世紀聯華的 Serverless 之路一、世紀聯華超市簡介二、技術架構演進三、設計架構演進總結四、函數計算簡介

2019 年年中大促時,由于線上業務使用者通路不可控,資料量過大,MySQL 單機通路被打爆,導緻了存儲資料庫出現問題,影響到了多個系統,造成了一定的損失。

此事件之後,世紀聯華就想直接把 MySQL 替換掉,這時我們發現阿裡雲有一款産品叫“表格存儲”,表格存儲最大的優點是使用者不需要關心通路量和機器數的比例關系。隻要通路量擴大,背景會自動擴容增擴機器,滿足高并發的資料讀取;在資料并發請求降低處于低峰期時,背景就會将機器回收,使用者不再需要關心機器的數量及如何調動。

世紀聯華的 Serverless 之路一、世紀聯華超市簡介二、技術架構演進三、設計架構演進總結四、函數計算簡介

針對使用者流量不可控問題,世紀聯華引入了阿裡雲的産品“API 網關”,API 網關可以針對不同管道商做管控釋出及流量控制。比如發現微信管道流量有異常,就可以借助 API 網關進行限流。

另外計算也是一個非常重要的問題,世紀聯華經過探索發現阿裡雲的“函數計算”非常契合我們的業務場景。比如定時搶購、優惠券投放等活動造成巨大的 burst 沖擊,當發現計算資源不夠的時候再去買機器肯定是來不及的,而函數計算及時擴容的功能就很好地解決了這個問題。另外其資料觀測和異常報警功能,也吸引到了世紀聯華。

世紀聯華将這三個産品相結合,替換掉了原來的會員查詢功能,最終得以成功渡過 2019 年的 雙11 大促難關。

2)Serverless 帶來的新曙光

世紀聯華的 Serverless 之路一、世紀聯華超市簡介二、技術架構演進三、設計架構演進總結四、函數計算簡介
  • 快速疊代部署

Serverless 研發效率快、運維效率高、架構解耦。

  • 高并發、高彈性

Serverless 不需要人工擴容和運維管控。

  • 穩定、可靠、安全

Serverless 使搶購活動和大促的整體體驗都非常流暢。

  • 資料、營運、成本控制

Serverless 提供了完整的運維觀測和報警監控功能,運維工程師可以輕松很多;另外按使用資源計費,資源使用率可達 100%。

5. 函數計算 2.0 及 All in Serverless

世紀聯華的 Serverless 之路一、世紀聯華超市簡介二、技術架構演進三、設計架構演進總結四、函數計算簡介
  • 曲線圖 1:類似 ECS 方案,曲線顯示有資源不足和資源浪費的情況。
  • 曲線圖 2:機器擴容,有延遲和誤差,需要提前操作,它的實時性和伸縮性都比較差。
  • 曲線圖 3:函數計算 2.0 預留模式,有預留資源和彈性資源,可以實時擴容。
  • 資源管理層面:人工運維 → 雲平台工具運維 → Serverless 免運維,實作完全自動化。
  • 資源使用率:預算采購低使用率 → 有限彈性高使用率 → Serverless 100% 資源使用率。
  • 資源成本:固定成本支出 → 根據資源政策伸縮 → Serverless 根據業務政策适配。
世紀聯華的 Serverless 之路一、世紀聯華超市簡介二、技術架構演進三、設計架構演進總結四、函數計算簡介

2019 年 雙11 過後,世紀聯華快速上雲,将線上核心業務改造為全 Serverless 架構的中台模式,采用“函數計算+API 網關+OTS”作為計算網絡存儲核心,彈性支撐日常和大促峰谷所需資源,輕松支撐 618 / 雙11 / 雙12 大促。

世紀聯華的 Serverless 之路一、世紀聯華超市簡介二、技術架構演進三、設計架構演進總結四、函數計算簡介

圖:2020 年 雙11 大促

2020 年 雙11 大促,世紀聯華線上業務實作 All in Serverless,上為流量&時間的曲線圖,下為調用延遲&時間的曲線圖。

世紀聯華的 Serverless 之路一、世紀聯華超市簡介二、技術架構演進三、設計架構演進總結四、函數計算簡介

圖:Serverless 助力世紀聯華降本提效

三、設計架構演進總結

從實體單機到 All in Serverless 的架構演進:

  • 實體單機
    • 架構簡單
    • 高度耦合
    • 資料同步難
    • 無法橫向擴容
  • 自建機房
    • 統一維護更新
    • 資料同步統一
    • 系統部署困難
    • 硬體成本高
    • 非業務調查難
    • 臨時擴容
  • 全面上雲
    • 硬體更新簡單
    • 擴容能力提升
    • 備災能力提升
    • 設計要求高
    • 監測告警原始
    • 資料庫單點
    • 流控問題
  • Serverless 嘗試
    • 資料庫單點問題
    • 流控問題解決
    • 橫向擴容
    • 監控告警
    • 費用免預算
    • 部分延遲較大
  • All in Serverless
    • 解耦
    • 冷啟動體驗提升
    • 研發效率提升
    • 成本費用下降

四、函數計算簡介

1. 阿裡雲函數計算産品全景

函數計算是國内生态最完整、功能最豐富的 Serverless 産品,開發者一步上雲、一鍵 Serverless 化将成為現實。

世紀聯華的 Serverless 之路一、世紀聯華超市簡介二、技術架構演進三、設計架構演進總結四、函數計算簡介

2. 業界發展趨勢

誰在使用函數計算?

世紀聯華的 Serverless 之路一、世紀聯華超市簡介二、技術架構演進三、設計架構演進總結四、函數計算簡介

作者簡介:

朱鵬,花名:旻蒼,函數計算一線技術專家,專注函數計算資源排程設計研發。

本文整理自【Serverless Live 系列直播】1 月 28 日場

直播回看連結:

https://developer.aliyun.com/topic/serverless/practices

Serverless 電子書下載下傳

本書亮點:

  • 從架構演進開始,介紹 Serverless 架構及技術選型建構 Serverless 思維;
  • 了解業界流行的 Serverless 架構運作原理;
  • 掌握 10 大 Serverless 真實落地案例,活學活用。

下載下傳連結:

https://developer.aliyun.com/topic/download?id=1128