Bootstrap

从京东产品学搭建SaaS架构

写在前面

最近在推产品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,基于角色的访问控制)并结合应用订购场景和三方集成实现。

灵活可扩展的跨系统流程管理工具

在面对复杂的多系统交互时,可以通过跨系统流程管理工具实现多系统的流程协同。比如一键开店功能,客户在页面感知到的操作非常简单,只有四个输入框和一个提交按钮,但在服务端做了很多初始化的工作,比如账号创建、业务单元生成、租户创建、主账号创建、订购流程试用执行、管理员角色初始化等,其中涉及到多个系统之间的交互,有复杂多样的步骤和执行顺序。

所以我们需要有个流程管理工具,以流程引擎为核心,基于模型驱动设计理念,提供系统间复杂流程的建模能力,开发者无需复杂编码即可搭建流程并快速使用。

所有功能特性包含以下几部分:

  1. 灵活配置执行顺序

  2. 可定义是否关键步骤

  3. 支持同步及异步执行两种方式

  4. 执行结束可接收反馈结果

以后还将继续迭代优化工具,支持可视化拖拽流程编辑器,接入各种服务接口进行高效集成,一站式完成流程设计、发起、测试、发布等动作。

后记

基于此,对于一个偏研发的SaaS化产品的全貌有了一定认识,相信很多功能在未来的SaaS化架构实现和商业能力落地上有一定的帮助。

;