写在前面
最近在推产品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化架构实现和商业能力落地上有必定的帮助。