前言
本文仅代表作者们的个人观点;
文中内容仅供技术探讨,不能作为生产环境的技术指导。
本文书写过程中,
一、构建业务规则的必要性
什么是规则?
“设置一个或多个条件,当满足这些条件时会触发一个或多个操作。 ”就是规则。
缺乏规则的世界是无可想象的,将会是一片混乱!
业务缺乏规则,会让客户在业务可见性、敏捷性、一致性方面都产生极大的困扰:
如果使用一个可衡量的规则,我们就可以更好地管理业务。
那么问题来了:在我们既定的业务规则和运维层面存在的那道的鸿沟,谁来搞定?
我们需要自动化的管理流程:
和传统的管理流程相比:
BPM常见的使用场景有:
使用BPM的好处:
二、BPM的方案
谈到中间件,JBoss有整套的解决方案,它包含三个层面:
从下往上:
三个层面,越往上,越偏向于业务逻辑:
业内有很多BPM的方案:IBM、Oracle都深谙此道。规则开源产品就 Drools 一家,流程开源产品 有jBPM 和 Activity。
红帽的BPM基于Drools + jBPM。
红帽® JBoss® BPM 套件将业务流程管理 (BPM)、业务规则管理 (BRM)、业务资源规划和复杂事件处理(CEP) 技术有效整合至统一、集成化的开源平台。该产品包含了红帽 JBoss BRMS 的所有功能,以及对业务流程建模、执行和监控的全方位支持。它可以帮助用户捕捉业务政策和流程,实现业务运营自动化,以及有效衡量业务活动在异构环境(包括物理、虚拟、移动和云环境)中的各项结果。JBoss BPM 套件包括简便易用的图形工具,有效促进 IT 用户和业务用户之间的协作,并为管理业务应用程序的规则和流程提供良好的能见度和掌控力。采用该产品将帮助企业迅速提高业务敏捷性、显著改善运营效率运营效率和缩短产品面市时间。
BRMS包括业务规则引擎(Drools),业务资源规划器 (OptaPlanner),商业中心(Drools Workbench)和实时决策 服务器(KIE服务器)。这些工具支持业务规则的创建和执行 以及解决优化问题。 BPM套件包含BRMS中的所有内容,但除此之外,还有 执行引擎(jBPM),总线中央(KIE工作台),过程 执行服务器(KIE服务器)和业务活动监控仪表板 (Dashbuilder)。这些工具提供完整的BPM解决方案,包括业务 过程建模,执行和监视。
三、当Ansible遇到BPM
Ansible是什么,本文无需再介绍。
Ansible Tower企业版中,有workflow的功能,是以上是基于多个模板创建的模板。本质上是将多个Playbook串起来。这做到了自动化,但还没有做到智能化。我们如何实现理想的自动化运维平台?
借助于BPM,可以实现:
可以实现的效果:
我们看几个示例:配置流程服务:
零代码拖拽式实现流程设计
动态传参:
发布、运行流程
我们再举两个场景:
流程步骤如下:
1.自动进行可行性检查,返回检查状态
2.创建工单号,人工人审批
3.申请到的存储,自动进行主机挂载
4执行状态邮件,短信通知管理员
借助于BPM和Ansible Tower,最终我们可以实现自动化运维的:平台化、服务化、组件化、可扩展:
魏新宇