前面BaaS的文章铺垫了BaaS的体系,架构,和实践。 在本篇我们将关注如果在阿里的技术体系构建BaaS平台,如果把BaaS作为中台的实现架构之一, 并探讨什么样的中台系统可以满足我们的设计目标。
中台是以BaaS架构的能力超市
大中台战略形象的说就是要把内部的能力以类似现代化超市的方式管理起来。通过合理布局,统一管理,给客户(业务)最好的体验,对商品(能力)的采购能竞争和监控,对商品(能力)的消费实时计算监控统计分析。
按照这个思路,我们可以逐步构思大中台的所需要的规划。
梳理内部的能力布局,做好能力管理(布局)
为能力的管理统一标准
这些技术体系和能力需要有个方法学指导来梳理,使我们对自己目前的能力清晰可控,在此基础上我们在去规划重构,构建大中台,从而为这些能力的高效实用提供基础。
我们可以依赖领域对象设计和云计算架构两个维度来做梳理。领域对象设计用来梳理业务维度, 云计算架构用来梳理部署维度。
领域对象最重要的一点是对象包含属性和行为,将自身的状态和导致状态改变的行为都封装在该对象内。所以我们说领域对象时候,除了说这个对象实体本身外,还代表他的行为,也就是常说的"能力”。
后续我们说能力的时候,其实也代表这个领域对象,能力是有对象自有的。
首先梳理所属业务系统的整理工作,我们能够将内部系统所具有的能力按照清晰的层次维度划分出来。在此也提出自己觉得比较简单清晰的方法:
我们在设计一个系统的时候,会根据系统功能的层次,划分为基础平台,领域平台和业务平台。
基础平台会提供一些纯技术底层的功能,比如搜索,消息,数据存储等。
领域平台会提供某个行业领域的领域模型,比如电商的交易领域模型,社交的社交领域模型。
业务平台这是利用领域模型提供的能力,具体实现业务的平台。比如全球购是使用电商交易领域模型实现的一个电商业务平台。
为了更进一步方便理解, 我想用大学的学科设置来进行类比:
比如在大学里,
我们有一些基础学科:如数学系,物理系,化学系等,基本其他的所有学科都离不开这些基础学科提供的知识。这些系在一些综合性大学里会属于一个基础学院如“理学院”,培养一些基础研究人员。
在这些基础学院之外,各个工业科学领域都会有响应的学院设置,比如航空航天学院,包含航空航天领域的学科设置。电子工程学院,会包含电子行业领域的学科设计,医学院,代表医疗领域的学院。这些其实就是领域学院,代表某个行业领域的学科设置。 大家都知道,这种学院一般都讲授该行业领域的基础知识,培养行业领域专家。
在往上分层,有些学科会非常贴近就业市场,会有些和具体行业业务相关学科设置,比如一些专科院校常有的物流管理,旅游管理,航空管理等专业,培养具体业务人才。
这样类比可能会对大家理解业务系统分层有帮助,当你想不清楚时,就想想你该读什么院系。
能力大学
那么我们就假设我们需要对这座大学的院系学科进行划分,首先我们这个大学会有3个学院,
基础能力学院,领域能力学院,业务能力学院。
基础能力学院
在这个学院里,我们会根据能力种类的不同,设置不同的能力系,比如数据系,专门培养数据相关的基础能力。NPL系,培养算法相关的基础能力,规则系,培养规则相关的基础能力。
领域能力学院
在这个学院,主要按照行业领域来划分,比如电子商务行业,医疗健康行业,这些特定的行业里有自己特殊的领域对象。 在电商行业里,我们会有会员,店铺,商品,订单等领域对象,利用这些对象具有的能力来构建交易领域平台。利用招商活动等领域对象来构建招商平台。在旅游行业,我们会定义机票,度假,门票,火车票等领域对象,用来构建旅游领域平台功能。
这些领域平台可以作为内部业务的领域能力,同时也可以开发给外部的业务方。 比如我们可以把物流领域能力除了给菜鸟提供领域能力外,还可以给外部的物流企业如顺丰等快速开发物流相关的业务。
业务能力学院
在这个学院,面向的是具体的业务领域,培养特定的业务能力。比如我们会有个旅行系,利用旅行领域提供的机票能力,开发旅行的机票业务。菜鸟系,会利用物流领域提供的物流相关领域对象,开发菜鸟的物流业务。
另外一个维度,我们可以考虑云计算架构分层,并和领域对象分层对应起来,可以跟方便大家理解,清晰划分。
按照IAAS-> PAAS -> BAAS -> SAAS分层:
- IaaS提供系统的物理部署能力
- PaaS层主要提供基础平台的能力
- BaaS层主要提供领域平台的能力
- SaaS层也主要提供领域平台的能力,相对于BaaS提供更完整的领域能力,将整个领域的解决方案作为软件提供给业务方。
业务方应用这是寄主在BaaS或者PaaS的业务应用。BaaS和SaaS也会提供对业务应用的管理,保证多租户,数据隔离等。
按照这两种思路我们就可以更好的理解系统和定位,比如招商系统,他是依赖电商领域BaaS能力构建的SaaS方案,他应该属于领域能力学院的电商系,按照SaaS方式构建。
在业务能力学院的淘宝系,就可以在这个SaaS基础上创建淘宝招商业务系统,天猫系可以构建天猫招商业务系统。
为能力在系统中的实现建立标准封装载体(系统)
为能力的实现统一标准。
在上一节布局中,我们有了方法学指导我们规划,可以从宏观上布局集团的能力。现在我们要回到各个系统,为能力的承载实现提供指导办法。
中台的一个主要能力,需要对阿里的各个系统能力进行监控运维,比如我们需要把某个能力下线,从线上系统到代码,这就需要我们能有某种标准,这个能力是以某种约定形式封装,就像Eclipse的plugin&feature功能一样。
plugin是能力部件,用来封装具体能力的实现。
feature是功能部件,它里面没有实际的运行的库,它只是eclipse用来管理plugins的一种
途径. 比如你家装了电灯,总要有开关控制把,比如大堂的灯有一个开关控制, 卧室的灯
也有一个开关控制, 它们分别用来控制灯的亮与灭.
同样,功能部件就是用来控制插件的启动与否. eclipse的update透视图可以设定各个功
能部件的启用或禁用状态, 所以你可以通过禁用功能部件,来禁止插件的启动.
而plugin和feature的实现需要定义标准。
这样我们就有可能做到中台对系统平台的控制。
开发架构由PaaS升华到BaaS架构,保证能力以BaaS的方式输出(架构)
为能力的输出统一标准
上一节中系统实现了某种能力,当这种能力如何对外输出,需要一个统一的标准。 BaaS在这方便很好的解决的这个标注,以服务的方式对外输出能力。
建立能力之间的协作和数据共享标准(集成)###
为能力的协作统一标准
我们都知道复杂业务是需要协调多个功能一起工作,需要完成一些列流程,走过一系列的功能点。如果让这些系统可以很好的协同工作,也需要一个标准,在这个标准下,这些能力就像filter
chain一样被简单实用。 目前我们可以看到阿里的系统能力基本不可能简单调用,我们需要这这个系统用HSF调用另一个系统。这在架构上可以说是丑陋和高侵入的。
大家不妨想想比如Toc超时系统,按设计就应该处理超时相关的功能,可我们却必须在超时系统中调用IC,UIC等等。
在这方便,传统金融行业和企业中间件软件公司发展的EIP企业集成模式,可以很好的解决系统之间的协作问题。我们可以参考借鉴。
中台其他的一些特性###
中台是自运营的, 他是所有系统的portal系统,业务人员,开发人员,运维人员等不同角色都围绕中台行驶自己的职责。
中台是自监控的,业务系统通过中台输出运行状态,实时监控业务数据。
最后用一句话总结: