寫在前面
最近在推產品SaaS化的工做,之前雖然用過不少SaaS產品,但系統落地過程的經驗仍是空白,並且SaaS某種程度是產品完整性的解決方案,技術維度的挑戰其實不是最大的。如何產品化,如何模塊化這些纔是重點。作好一個大型系統的架構很重要的一點是要作行研,看看業界你們怎麼作,我通常會看有贊和京東,順道買了點有讚的股票。架構
SaaS服務平臺
今天先簡要總結下對於京東的一個SaaS平臺的瞭解,其實SaaS上次可支撐的業務有不少,好比面向C端的娛樂工具產品,面向B端的運營平臺,還有面對開發者的服務平臺。異步
京東的這款SaaS是專一於產業數智化的解決方案,經過京東多年沉澱下來的零售領域技術及方法論,集成並打通了技術、業務、用戶、數據的四大能力,知足客戶多業態多模式的場景化需求。編輯器
其實上面這段能夠忽略,任何一個面向B端的SaaS產品都是這麼說的。模塊化
挑戰
先說下一個服務平臺類的SaaS產品的挑戰會有哪些呢?工具
從開發者角度來講,SaaS化產品均須要帳號、員工、權限、審批流等通用服務,獨立開發成本高。可是SaaS自己的商業能力體現確是千差萬別的,好比有不一樣的訂價、訂購、履約的流程。有的時候須要和客服存量系統打通,好比客戶自有的帳號體系,自有的鑑權邏輯,若是這種解決不了,其實SaaS產品很難規模化。測試
解決方案
針對於以上的挑戰,咱們總結來講就是:如何下降開發中打造商業SaaS應用的成本。接下來看下怎麼作。優化
一個好的SaaS產品是分層的,他是基於PaaS之上而造成的商業能力,京東的這一套解決方案是基於其積累下來的商業操做系統JNOS實現的。編碼
在其上的SaaS產品是」天璣「,包含了零售IDaaS,經營結構體系(租戶、業務單元、mis信息等),應用管理(商業能力的沉澱與模塊化配置化),通用能力(短信、流程編排、工單等),訂購服務的核心能力收斂。操作系統
下面的宙斯是京東的一套開放平臺,好比對接移動、聯通,快手之類的API,固然也承接了內部商業能力對外的開放。設計
最上層的場景層,就是經過下沉的各個能力編排而造成的流程,若是是2C的產品,咱們習慣是以用戶動線展開。
幾層銜接起來要作的就是:接進來--包裝好--賣出去的一條龍服務,最終爲開發者提供一站式解決方案,讓客戶獲得統一的體驗和服務。
詳細說明以下:
-
零售雲IDaaS:是一個ID as a Service(身份即服務),提供統一帳號管理、統一受權管理、統一身份認證服務。經過靈活用戶標籤,一個帳號能夠同時是企業、員工、開發者等身份,在不一樣場景進行切換,同時支持Oauth 2.0受權,打通不一樣應用之間的單點登陸。客戶還能夠基於IDaaS搭建獨立的身份服務池,實現靈活的私域用戶管理和運營;
-
經營結構體系:結合零售業態的經營管理模式,進行業務模型抽象,在多租戶架構基礎上打造多層級業務單元,知足主公司、子公司、連鎖、經銷商、供應商等多種企業模型的不一樣粒度權限和員工管理。同時在經營體系基礎上,將生態應用和業務進行綁定,從基於客戶維度升級到基於業務維度,方便開發者快速打造應用生態,並確保售賣的靈活性;
-
應用管理:幫助開發者進行商業化應用的生產,包括應用的入駐、接入和資源管理。同時提供了靈活的版本配置功能,支持開發者將應用打包成多形態版本(試用、基礎、高級等)面向客戶開放。將來應用管理可對外提供更多的商業能力接口;
-
訂購服務:支持應用開發者豐富、多樣的商業編寫和履約模式,結合多種計費方式售賣,如:使用時長、員工數量等,還能夠提供短信發送數量等單純按使用數量計費的服務。同時考慮到2B業務靈活性,訂購服務設定個性化價格,並定向到可購買的客戶。客戶購買應用或服務後履約方面,提供了過時管理、自動續費、開具發票等能力;
-
通用工具:爲讓開發者專一於應用系統業務實現上,SaaS還包含不少通用工具,如:審批流、消息服務、域名服務、統一審計、應用監控、工單及跨系統流程管理工具等,目的是下降開發者重複工做,將這部分能力歸入工具箱爲開發者賦能;
工具箱:
商業能力實現
接下來看下他的商業能力實現上有哪些值得借鑑的。
經營結構體系的精細化管理服務
首先引入了」租戶-多級業務單元「的架構。
舉個例子:
若是把店鋪、總部及分店抽象成經營結構中的一個業務單元,且業務單元可支持1〜N級靈活控制,這種結構知足了主子公司、一商多店等多種組織模型的管理,好比,在單店模式下可基於每一個店鋪管理,在連鎖模式下可在總部也可在分店進行管理。
其次,對於三方應用間的員工及權限對接方式上,行業內廣泛作法是僅支持應用受權及同步員工數據到第三方應用,而每一個應用內的權限需單獨開發,爲了最大程度下降開發者的工做量,可開放了基於三方不一樣場景下的角色權限服務,減小重複開發的工做。
如圖:
訂閱式與非訂閱式彈性權限管理
非訂閱式SaaS稱爲永久許可SaaS,功能是固定不變的,在進行權限管理時,都是基於這些功能進行控制;
訂閱式SaaS,訂購者可購買不一樣版本,使用功能有所不一樣,再給員工設置權限時,也必須基於訂閱的功能進行設置。這種實現通常是基於RBAC(Role-based Access Control,基於角色的訪問控制)並結合應用訂購場景和三方集成實現。
靈活可擴展的跨系統流程管理工具
在面對複雜的多系統交互時,能夠經過跨系統流程管理工具實現多系統的流程協同。好比一鍵開店功能,客戶在頁面感知到的操做很是簡單,只有四個輸入框和一個提交按鈕,但在服務端作了不少初始化的工做,好比帳號建立、業務單元生成、租戶建立、主帳號建立、訂購流程試用執行、管理員角色初始化等,其中涉及到多個系統之間的交互,有複雜多樣的步驟和執行順序。
因此咱們須要有個流程管理工具,以流程引擎爲核心,基於模型驅動設計理念,提供系統間複雜流程的建模能力,開發者無需複雜編碼便可搭建流程並快速使用。
全部功能特性包含如下幾部分:
- 靈活配置執行順序
- 可定義是否關鍵步驟
- 支持同步及異步執行兩種方式
- 執行結束可接收反饋結果
之後還將繼續迭代優化工具,支持可視化拖拽流程編輯器,接入各類服務接口進行高效集成,一站式完成流程設計、發起、測試、發佈等動做。
後記
基於此,對於一個偏研發的SaaS化產品的全貌有了必定認識,相信不少功能在將來的SaaS化架構實現和商業能力落地上有必定的幫助。