O2O 生鮮 SaaS 創(chuàng)業(yè)記·系統(tǒng)篇(六)

1 評論 2323 瀏覽 10 收藏 15 分鐘

編輯導語:云時代 SaaS 產品創(chuàng)業(yè)有著大學問,想要學會就更是不容易,這篇文章是O2O 生鮮 SaaS 創(chuàng)業(yè)記中的系統(tǒng)篇,從系統(tǒng)這個層面進行講解,一起看看吧。

一、系列簡介

這是一部云時代 SaaS 產品創(chuàng)業(yè)記,講述一位技術創(chuàng)業(yè)者如何從零開始系統(tǒng)完整建設滿足行業(yè)客戶產品,從戰(zhàn)略到戰(zhàn)術,從產品到技術到組織,從定位到定價到盈利,從云到中臺到 SaaS,共計八個篇章內容涵蓋行業(yè)/客戶/友商、市場/增長、產品/中臺、云服務/微服務/系統(tǒng)、組織/協(xié)同,力求全面清晰講透云時代下 SaaS 產品建設。

二、系統(tǒng)篇序

系統(tǒng)架構從來都是頂層設計,自上而下進行分而治之,本質是領域邏輯和業(yè)務邏輯的分類。云時代架構關注復用和彈性,簡單說是中臺和 SaaS 化。

三、云系統(tǒng)架構

在云時代中如何設計和落地符合時代和行業(yè)需要的系統(tǒng)架構,如何匹配業(yè)務模式更好的支撐業(yè)務發(fā)展和響應市場變化以及指導組織架構,是業(yè)務系統(tǒng)架構師首要思考的問題。

這里業(yè)務系統(tǒng)是指支撐業(yè)務運營并賺錢或省錢的系統(tǒng),可以是我們講的外賣平臺管理系統(tǒng),也可以是滴滴出行那樣打車服務系統(tǒng),這些都是業(yè)務系統(tǒng),應用云計算特性,做到復用和彈性則是業(yè)務系統(tǒng)首要考慮事情。

高性能/高可用/可擴展架構是面向具體系統(tǒng)穩(wěn)定性的解決方案,是解決大流量、高并發(fā)、穩(wěn)定性問題,采取策略是讀寫分離、分庫分表、高性能緩存、服務集群等。我們需要先架構業(yè)務系統(tǒng),再針對具體業(yè)務流量進行高性能/高可用/可擴展架構。

業(yè)務系統(tǒng)架構最直接產出是中臺和 SaaS 化系統(tǒng),中臺解決業(yè)務運營能力復用,大致分為技術中臺、業(yè)務中臺、數(shù)據(jù)中臺,SaaS 化系統(tǒng)解決客戶分層和彈性服務。

云時代架構首先要理解什么是云計算,根據(jù) NIST(美國國家標準與技術研究院)以及微軟、IBM、阿里云等對云計算定義為三種服務模式,LaaS(Infrastructure as a Service 基礎設施即服務)、PaaS(Platform as a Service 平臺即服務)、SaaS(Software as a Service 軟件即服務)。

LaaS 是云計算基礎服務層,基礎服務包括云主機、虛擬機、黑金物理計等,主要提供 CPU/內存等計算資源,國內供應商阿里云/華為云/騰訊云,是所有云計算基礎能力,業(yè)務架構中了解基礎知識即可無需特別深入。

PaaS 是云計算平臺組建服務層(可以理解為技術中臺),以 docker、kubernets 為代表容器化技術提供容器集群計算,用于建設技術中臺,通過容器編排服務,可以快速建立滿足高性能、高可用、可擴展的數(shù)據(jù)庫、緩存、mq、logs、網(wǎng)關等,需要重點關注和理解。

SaaS 是云計算業(yè)務服務層(可以理解為具體實現(xiàn)業(yè)務邏輯層,包含業(yè)務中臺/數(shù)據(jù)中臺),以建設業(yè)務中臺、數(shù)據(jù)中臺等業(yè)務系統(tǒng)為核心,包括第三方供應商系統(tǒng)和后臺系統(tǒng)。同樣是由 docker、kubernets 容器技術提供應用運行環(huán)境,做到服務隔離和服務彈性。

所有的業(yè)務系統(tǒng)都是部署在服務器上,需要 CPU 和內存運行業(yè)務應用,需要接入互聯(lián)網(wǎng)對外服務,需要 VPN 虛擬內網(wǎng)隔離服務,需要保存數(shù)據(jù)/圖片/視頻等資源,LaaS 提供的計算、網(wǎng)絡、存儲資源滿足這些需求。

為保存具體的業(yè)務數(shù)據(jù)需要數(shù)據(jù)庫,為應對大流量需要緩存和負載均衡,為應對高并發(fā)需要 mq 和容錯等,為快速發(fā)布版本需要 devops,為排查 bug 需要 logs,為保證應用正常運行需要監(jiān)控,PaaS 提供通用的技術平臺組建,不論是什么業(yè)務都會用到這些組件做到復用平臺組建,通過容器化技術可以快速建立滿足高性能、高可用、可擴展的數(shù)據(jù)庫、緩存、logs、網(wǎng)關等等。

用微服務框架實現(xiàn)的業(yè)務邏輯,具體有用戶管理、商品管理、訂單管理、財務管理、售后管理等。有客戶端代碼、有 API 接口代碼、有宏流程模型代碼。SaaS 就是具體實現(xiàn)業(yè)務邏輯地方。

四、業(yè)務中臺架構

我們在 SaaS 層實現(xiàn)具體業(yè)務邏輯,有客戶端、API、前臺業(yè)務、中臺 API、第三方供應商、后臺系統(tǒng)(財務審核、OA 審批、客戶管理)等。

客戶端是 vue、react 為主 pc/h5 頁面和小程序客戶端、安卓、ios 客戶端,以及開放給第三方 open API SDK。

網(wǎng)關是所有服務的統(tǒng)一和唯一 API 請求入口,擁有負載均衡、驗證權限、分流請求、熔斷請求、監(jiān)控請求、公共服務統(tǒng)一邏輯處理等,網(wǎng)關組件往往會搭配 oauth2 作為登錄授權驗證,用戶權限驗證,搭配 erueka 作為 API 接口服務注冊和發(fā)現(xiàn),搭配 apollo 作為配置中心。可以發(fā)現(xiàn)下圖中藍色部分都是 PaaS 層定義平臺組件部分,這些組件承擔系統(tǒng)中公用和部分非業(yè)務邏輯事情。

中臺 API 可以理解為宏流程模型具體實現(xiàn)代碼,關注的整個宏流程模型的具體實現(xiàn),例如中臺 API 中有一個【外賣平臺商品管理 API】接口,這個 API 做了外賣平臺接口封裝,調用這個接口就可以完成三個平臺的商品管理。因為這個接口實現(xiàn)宏流程模型,除了基本的商品管理新增、修改、刪除外不包含其他的業(yè)務邏輯。

這個時候有一個需求需要在客戶添加商品成功后推薦類似商品給客戶繼續(xù)添加,這個具體的業(yè)務邏輯應該寫在【前臺業(yè)務】中,而不是中臺 API 中。因為這個業(yè)務邏輯不是宏流程模型中的邏輯,不符合通用業(yè)務標準,同時也無法直接復用,因為推薦選項可能是商品類目推薦、也可能是商品名稱相似推薦。

如果這個推薦業(yè)務上線后受到客戶歡迎,是可以考慮納入中臺 API 中的。但是不應該修改宏流程模型,因為推薦不屬于外賣平臺管理的行業(yè)標準,準確來說這個屬于數(shù)據(jù)中臺的推薦能力,應該納入數(shù)據(jù)中臺中實現(xiàn)推薦 API。如果沒有建設數(shù)據(jù)中臺,那可以考慮新增一個中臺推薦 API 模塊,再修改【前臺業(yè)務】把原有邏輯改為調用中臺推薦 API 邏輯即可完成,這樣中臺推薦 API 成為可復用的能力。

通過前臺業(yè)務和中臺 API,即業(yè)務和領域模型邏輯分離,做到中臺 API 的穩(wěn)定性、復用性大大提高,前臺業(yè)務具備快速響應市場變化和低成本試錯能力。

五、微服務技術棧

技術棧沒有最好只有最適合,根據(jù)技術團隊對技術棧了解程度選擇市面上成熟可靠有大廠在生產環(huán)境中使用過最好,中小企業(yè)微服務選型上以阿里、Google 成熟組建為主,我們以 Java 為例。

dubbo 是阿里開源微服務框架,提供一攬子微服務組件,包括 nacos、dubbo admin、dubbo rpc 等。

spring cloud 是 spring 家族中微服務框架,spring boot 算是 Java 開發(fā)應用標準框架,國內應用廣泛。

kubernetes 是 Google 開源容器集群管理服務,具備服務發(fā)現(xiàn)、API 網(wǎng)關、配置中心組件功能,可以替代微服務框架來使用,云架構中 PaaS 和 SaaS 都可以用容器構建應用服務,做到服務彈性和隔離,降低業(yè)務運營成本,是當前市場上容器技術應用標準框架。

技術棧選擇應該根據(jù)團隊能力和人力資源成本考慮,優(yōu)先選擇技術上成熟穩(wěn)定和資料豐富的,這樣基本上不會遇到技術上難題,選擇團隊成員都能上手的,否則培訓成本太高容易踩執(zhí)行不規(guī)范的明坑,最后選擇市場面廣的好招聘人員。

六、SaaS 化的彈性服務

市場變化會直接影響系統(tǒng)的穩(wěn)定性/可用性,首先是流量變化,當某一模塊面對高漲流量時通過容器技術很容易建立多節(jié)點應對,例如美團外賣訂單量這天指數(shù)級增加帶來超出現(xiàn)有訂單系統(tǒng)能承受最大峰值,我們可以通過 kubernets kubectl 快速新增一個訂單中臺模塊 pod 節(jié)點,通過網(wǎng)關動態(tài)調整應對峰值流量,當流量下降后我們可以刪除掉新增這個 pod 節(jié)點,做到需要時實例化,不需要就刪除,不會浪費資源和成本。

其次是創(chuàng)新業(yè)務低成本試錯,很多時候我們會嘗試進入其他行業(yè)或熱門市場中,需要產品研發(fā)團隊能快速響應需求開發(fā)和上線,項目需要控制整個投入成本,例如是對業(yè)務基礎上進行微創(chuàng)新,只需要多啟動一個 pod 節(jié)點做前臺業(yè)務實現(xiàn),剩下復用中臺接口 API。如果是全新項目沒有可復用的,我們同樣是啟動 pod 節(jié)點,部署需要的平臺組件和前臺業(yè)務實現(xiàn),成為一個獨立的系統(tǒng)環(huán)境,后期就算失敗也可以快速注銷掉,不會影響其他系統(tǒng)。

七、產品研發(fā)成本

產品研發(fā)團隊一直是企業(yè)成本中心,如何有效提高效率和降低成本,是所有互聯(lián)網(wǎng)企業(yè)一直追求的命題,最直觀的要求就是投入少、產出多、質量高,特別是創(chuàng)業(yè)公司在資源有限情況下,市場雄心很大,需求特別多,投入產品研發(fā)資源非常少,這種情況下也很難招聘符合要求和滿意人才去實現(xiàn)業(yè)務中臺、技術中臺、數(shù)據(jù)中臺,更別說云系統(tǒng)架構做到整個系統(tǒng)的復用和彈性。

在資源有限情況下更應該保證每個決策和動作都是有效的,每一個動作都應該計算單項成本,計算階段性總成本,區(qū)分哪些動作是有效動作能帶來收益,那些不是應該剔除。

云計算三種模式帶來產品研發(fā)成本降低,LaaS 為我們帶來一個月五百元的四核云主機,早期項目流量不多情況下, 可以暫時放棄用作高性能/高可用雙節(jié)點和雙備份,等流量上來需要穩(wěn)定性時,通過 PaaS 可以幾分鐘內搭建起多節(jié)點和主從備份等,通過宏流程模型可以獲得穩(wěn)定業(yè)務中臺 API,當需要快速響應需求和試錯時候,可以實例化模型,生產具體前臺業(yè)務邏輯滿足市場需求。

八、系統(tǒng)篇總結

充分應用云計算特性發(fā)揮三種模式架構特點,構建復用能力的中臺服務和彈性的 SaaS 化服務是云時代產品優(yōu)勢也是市場競爭利器。

九、組織篇預告

康為定律告訴我們組織架構會影響系統(tǒng)架構和業(yè)務架構,如何在云時代進行逆康威定律,做到業(yè)務架構指導系統(tǒng)架構進而指導組織架構。

 

本文由 @徐小威 原創(chuàng)發(fā)布于人人都是產品經理,未經許可,禁止轉載

題圖來自 Pexels,基于CC0協(xié)議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 作者勘誤,laas應該是iaas。

    來自廣東 回復