面向云的流程平台
传统的工作流管理系统(WFMC模型及BPMN2.0模型)经过多年发展已经能够满足企业对于业务流程信息化的各种需求。但是传统的工作流管理系统需要多次部署,分别维护,而且部署和维护的成本较高,使得企业应用的门槛较高;交付能力跟不上业务需求的变化,无法高效的满足弹性变化的访问需求。为了降低传统工作流系统在部署和维护方面的开销,可以将传统的工作流管理平台云化,提供多租户、高并发、动态伸缩的能力。先让我们看下云时代企业面临的巨大挑战。
云时代企业面临挑战
业务集约化
目前电信、金融领域均面临数据大集中的集约化之路即经营的集团化、规模化;由原来的粗放型经营向精细化经营转变。同时在企业IT战略层面要求具备必须的技术基础构建能力,各种应用系统运行在同一的平台之上,业务迫切需要“需求一体化”、“运维一体化”等平台建设的要求。业务集约化同样面临IT资源使用效率问题,据统计目前大型数据中心的软硬件资源利用率、能源利用率以及维护效率多在40%以下。
业务融合与快速交付
全业务运营时代到来,大多数电信运营商业务支撑系统都是按照需求进行定制化开发的,系统能力总体来说滞后于市场部分的业务发展需求,而对新需求的支撑周期也比较长,随着业务量、业务种类的不断发展,系统稳定性、扩展性问题逐步显现,支撑风险逐步加大,这些情况都将影响全业务运营的顺利开展。
互联网带来了新的业务创新,改变了企业的IT系统建设模式,更加强调业务的快速交付,造成企业IT系统面临和互联网无缝融合的压力。目前互联网行业的业务创新速度比传统IT企业的业务创新速度快3-5倍,一般情况下企业推新业务是6个月,而互联网是2周到2个月。
高并发需求
随着互联网应用的普及,企业应用需要面对高并发的弹性需求,根据业务并发数量动态调整资源分配。目前传统的数据中心,服务器一般按照业务系统的吞吐能力来进行配置。这种配置方式下,服务器资源只能被本业务系统所独享。也就是说,即使不同业务系统的服务器能力有空余,其资源也无法被其它业务系统共享。由于服务器的处理能力一般按照业务系统的峰值需求来设计,因此服务器资源的平均利用率更低。面对高并发的需求,如何做到流程支撑能力的柔性伸缩?
云流程平台架构
云流程平台将所有流程平台功能开放到云端,包括流程建模设计、表单开发环境,规则开发环境,流程监控分析等功能。云流程平台主要包括云流程开发平台、云流程引擎、云流程治理平台,分别解决开发、运行、管理监控期问题。
云流程开发平台包括离线流程建模工具与在线流程建模工具,在线流程建模工具方便地支持在业务流程应用的运行期,以业务流程管理人员的身份,从业务化视角进行流程的业务建模、配置与调整,从而敏捷响应业务流程的变更和调优。在线流程建模工具通过浏览器(无需下载开发环境、SDK)的方式支持业务流程开发、管理、监控等,具体包括业务资源管理、业务流程配置、业务流程定制、参与者日历、业务规则等。。
云流程治理平台集中管理和监控业务流程的运行情况。帮助企业管理者及时掌握业务运行状况,并对客户或市场进行快速响应。通过对流程实例的图形化实时监控,业务流程管理人员可以及时掌握业务处理的最新动态,及时发现长时间滞留未处理的任务,并对发生异常的流程实例进行及时调整。
云流程引擎提供多租户能力、引擎动态伸缩、数据隔离、安全性、高性能访问架构。
IaaS资源适配器提供云流程Pass平台与基础设施层之间的交互能力,协助云流程平台完成引擎的动态伸缩功能。
云流程平台关键特性
云流程平台至少满足下面特性:多租户、动态伸缩、在线开发。
多租户
多租户四级成熟度模型
第一级:定制
每个租户有其特定版本的工作流引擎,这些工作流引擎的实例分别运行在软件应用提供商提供的运行平台上。所有租户只是共享了软件系统的运行平台,仍然分别使用独立的工作流引擎版本。
第二级:可配置
每个租户都有特定的工作流引擎的实例分别运行在软件应用提供商提供的运行平台上。但是所有租户使用相同的工作流引擎版本,也就是说所有租户使用相同的程序代码,根据租户需求不同进行单独配置即可。
第三级:可配置、多租户
软件应用提供商提供的运行平台上只运行工作流引擎的一份实例即可满足所有租户的需求。在这种情况下,租户共享了软件系统、运行实例和软件运行平台。降低了运行实例花费的开销,增加了软件运行平台的利用率,也节约了用户使用软件的成本。
第四级:可伸缩、可配置、多租户
软件应用提供商在第三级成熟度模型支持多租户的基础上,引入了负载均衡策略。租户的请求动态的派发到不同的工作流引擎实例来完成。通过这一策略,不需要对于工作流引擎本身进行修改,就可以动态的通过增加或者减少应用实例的数量来应对用户请求的变化。
云流程平台租户架构
云流程平台多租户架构采用第四级的多组户模型,所有的租户共享同一份云流程引擎中(云流程引擎可以是一个节点,也可以是多个集群节点,对租户是透明的),租户间的数据相互隔离,不同租户支持维护自己的组织机构、权限模型、工作日历;同时流程定义、流程实例所有的流程数据在不同的租户间也严格的隔离。在第四级多租户模型下的云流程平台租户架构,可以真正的以较低的成本满足租户对于企业业务流程的需求,实现自身经济利益的最大化。下图中不同的租户A、B、C共享云流程引擎,不同租户只能看到自身业务域中的业务数据,租户间的业务数据完全隔离。
租户间的数据安全性:
不同租户通过安全的令牌机制访问租户内部的数据,租户间的数据隔离包括流程定义隔离、流程实例数据隔离、任务实例隔离;租户数据隔离架构设计如下图:
租户A、B、C内部维护组织机构、工作日历,租户感觉不到其他租户的存在。例如某电信公司中搭建了自己的私有云流程平台,为两个网省(网省A、网省B)申请不同的租户,租户间的流程定义是不能户型访问的,即网省A发布的流程只有网省A下的用户可见,网省B不可见网省A发布的流程。
动态伸缩
云流程平台提供伸缩API,通过PAAS平台进行监控资源使用情况,根据监控资源的使用情况动态对云流程平台进行伸缩来满足业务的请求,充分利用IaaS层提供的计算资源;通过动态的伸缩,可以保证流程平台的高稳定、高可用,支持达到任意级别的SLA。
动态伸缩的关键点:
无状态流程或者轻量级状态流程;
云流程引擎与物理无关性;
提供轻量级的实例缓存;
云流程平台动态伸缩示意图:
0:客户访问云端流程服务;
1:平台实时监控资源使用情况;
2:云流程平台发现资源紧张,不能满足后续访问需求时候,申请动态扩容;
3:云流程平台根据镜像动态创建云流程引擎节点并启动;
4:新创建的节点统一注册到中信注册库中,方便统一管理;
5:通知云流程平台中其它兄弟节点进行状态通知和拓扑通知;
6:新的客户请求动态的分配到新增的云流程引擎节点;
整个动态伸缩过程用户端是不敏感的,而且不影响用户的正常访问,可以真正做到7*24小时服务。
在线开发
云流程开发平台支持将传统流程平台的所有功能在云端开放,提供用户在线开发能力,无需安装SDK。云流程开发平台为开发者提供了一个基于浏览器的业务开发、测试、发布、部署、监控的综合环境。
在线开发能力包括业务流程定制、表单开发、规则开发、脚本开发、集成外部服务等能力;在线运营负责运营期的流程在线调整、规则在线调整能力;在线测试支持开发修改即时更新,提供测试运行环境;在线发布部署支持应用发布、流程发布,以及管理应用及流程的版本;在线监控集中提供流程追踪和监控工具。
小结
随着云计算的发展和企业集约化、一体化、集中化的发展,云流程平台成为企业建立私有云流程平台的发展必然,给企业带来更多的经济效益,包括硬件成本的降低、硬件资源的使用率大幅提升,平台维护人员的大幅下降,数据的集中管理与管控。同时云流程平台带来了系统的高可用、扩展性、自动伸缩等能力,相信未来流程平台的云化必将成为下一个云计算的热点。您准备好拥抱云流程平台了吗?