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

1 評(píng)論 2215 瀏覽 10 收藏 15 分鐘

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

一、系列簡(jiǎn)介

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

二、系統(tǒng)篇序

系統(tǒng)架構(gòu)從來(lái)都是頂層設(shè)計(jì),自上而下進(jìn)行分而治之,本質(zhì)是領(lǐng)域邏輯和業(yè)務(wù)邏輯的分類(lèi)。云時(shí)代架構(gòu)關(guān)注復(fù)用和彈性,簡(jiǎn)單說(shuō)是中臺(tái)和 SaaS 化。

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

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

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

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

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

云時(shí)代架構(gòu)首先要理解什么是云計(jì)算,根據(jù) NIST(美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院)以及微軟、IBM、阿里云等對(duì)云計(jì)算定義為三種服務(wù)模式,LaaS(Infrastructure as a Service 基礎(chǔ)設(shè)施即服務(wù))、PaaS(Platform as a Service 平臺(tái)即服務(wù))、SaaS(Software as a Service 軟件即服務(wù))。

LaaS 是云計(jì)算基礎(chǔ)服務(wù)層,基礎(chǔ)服務(wù)包括云主機(jī)、虛擬機(jī)、黑金物理計(jì)等,主要提供 CPU/內(nèi)存等計(jì)算資源,國(guó)內(nèi)供應(yīng)商阿里云/華為云/騰訊云,是所有云計(jì)算基礎(chǔ)能力,業(yè)務(wù)架構(gòu)中了解基礎(chǔ)知識(shí)即可無(wú)需特別深入。

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

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

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

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

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

四、業(yè)務(wù)中臺(tái)架構(gòu)

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

客戶(hù)端是 vue、react 為主 pc/h5 頁(yè)面和小程序客戶(hù)端、安卓、ios 客戶(hù)端,以及開(kāi)放給第三方 open API SDK。

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

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

這個(gè)時(shí)候有一個(gè)需求需要在客戶(hù)添加商品成功后推薦類(lèi)似商品給客戶(hù)繼續(xù)添加,這個(gè)具體的業(yè)務(wù)邏輯應(yīng)該寫(xiě)在【前臺(tái)業(yè)務(wù)】中,而不是中臺(tái) API 中。因?yàn)檫@個(gè)業(yè)務(wù)邏輯不是宏流程模型中的邏輯,不符合通用業(yè)務(wù)標(biāo)準(zhǔn),同時(shí)也無(wú)法直接復(fù)用,因?yàn)橥扑]選項(xiàng)可能是商品類(lèi)目推薦、也可能是商品名稱(chēng)相似推薦。

如果這個(gè)推薦業(yè)務(wù)上線后受到客戶(hù)歡迎,是可以考慮納入中臺(tái) API 中的。但是不應(yīng)該修改宏流程模型,因?yàn)橥扑]不屬于外賣(mài)平臺(tái)管理的行業(yè)標(biāo)準(zhǔn),準(zhǔn)確來(lái)說(shuō)這個(gè)屬于數(shù)據(jù)中臺(tái)的推薦能力,應(yīng)該納入數(shù)據(jù)中臺(tái)中實(shí)現(xiàn)推薦 API。如果沒(méi)有建設(shè)數(shù)據(jù)中臺(tái),那可以考慮新增一個(gè)中臺(tái)推薦 API 模塊,再修改【前臺(tái)業(yè)務(wù)】把原有邏輯改為調(diào)用中臺(tái)推薦 API 邏輯即可完成,這樣中臺(tái)推薦 API 成為可復(fù)用的能力。

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

五、微服務(wù)技術(shù)棧

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

dubbo 是阿里開(kāi)源微服務(wù)框架,提供一攬子微服務(wù)組件,包括 nacos、dubbo admin、dubbo rpc 等。

spring cloud 是 spring 家族中微服務(wù)框架,spring boot 算是 Java 開(kāi)發(fā)應(yīng)用標(biāo)準(zhǔn)框架,國(guó)內(nèi)應(yīng)用廣泛。

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

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

六、SaaS 化的彈性服務(wù)

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

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

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

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

在資源有限情況下更應(yīng)該保證每個(gè)決策和動(dòng)作都是有效的,每一個(gè)動(dòng)作都應(yīng)該計(jì)算單項(xiàng)成本,計(jì)算階段性總成本,區(qū)分哪些動(dòng)作是有效動(dòng)作能帶來(lái)收益,那些不是應(yīng)該剔除。

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

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

充分應(yīng)用云計(jì)算特性發(fā)揮三種模式架構(gòu)特點(diǎn),構(gòu)建復(fù)用能力的中臺(tái)服務(wù)和彈性的 SaaS 化服務(wù)是云時(shí)代產(chǎn)品優(yōu)勢(shì)也是市場(chǎng)競(jìng)爭(zhēng)利器。

九、組織篇預(yù)告

康為定律告訴我們組織架構(gòu)會(huì)影響系統(tǒng)架構(gòu)和業(yè)務(wù)架構(gòu),如何在云時(shí)代進(jìn)行逆康威定律,做到業(yè)務(wù)架構(gòu)指導(dǎo)系統(tǒng)架構(gòu)進(jìn)而指導(dǎo)組織架構(gòu)。

 

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

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

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 作者勘誤,laas應(yīng)該是iaas。

    來(lái)自廣東 回復(fù)