当Ansible遇到BPM,将自动化运维智能化!

前言

本文仅代表作者们的个人观点;

文中内容仅供技术探讨,不能作为生产环境的技术指导。

本文书写过程中,

一、构建业务规则的必要性

什么是规则?

  • 机动车单双号限行
  • 极端天气预警
  • 应急响应系统
  • 不允许 root 账户远程登录
  • CPU 使用率 > 70% 时增加一个服务实例
  • 学生上课表
  • 物流行业:货物跟踪,物流实时感知
  • 智能交通:按照当前各路段的车流量动态调整路口红绿灯时长

“设置一个或多个条件,当满足这些条件时会触发一个或多个操作。 ”就是规则。

缺乏规则的世界是无可想象的,将会是一片混乱!

业务缺乏规则,会让客户在业务可见性、敏捷性、一致性方面都产生极大的困扰:

如果使用一个可衡量的规则,我们就可以更好地管理业务。

那么问题来了:在我们既定的业务规则和运维层面存在的那道的鸿沟,谁来搞定?

我们需要自动化的管理流程:

和传统的管理流程相比:

  • BPM是一种全面的管理方法,可以将组织的业务流程与客户的需求和需求相匹配
  • BPM采用系统化的方法不断提高业务效率和效率,同时追求创新,灵活性和与技术的整合
  • 与功能上集中的传统分层管理方法相比,BPM使组织能够更高效,更有效,更有能力进行变革。

BPM常见的使用场景有:

使用BPM的好处:

  • 将业务规则从应用程序代码中分离出来
  • 使用接近自然语言的语义模块编写业务规则
  • 把复杂的商业规则通过分组、设置优先级、是否允许重复触发等方式,最大限度的避免规则冲突
  • 规则触发与执行路径清晰可见
  • 适应市场要求,无惧业务规则经常变化,更新快速且低成本
  • 经过培训或定制化,业务人员可以直接管理IT系统中的规则,不需要程序开发人员参与

二、BPM的方案

谈到中间件,JBoss有整套的解决方案,它包含三个层面:

从下往上:

  • 加速层:以App Server、Web Server为核心(传统意义的中间件);
  • 整合层:以Fuse、JDV为核心(数据整合,Fuse实现ESB功能,JDV实现应用对多种异构数据源的访问和管理);
  • 自动化层:以BPM为核心。

三个层面,越往上,越偏向于业务逻辑:

业内有很多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,最终我们可以实现自动化运维的:平台化、服务化、组件化、可扩展:

魏新宇

  • "大魏分享"运营者、红帽资深解决方案架构师
  • 专注开源云计算、容器及自动化运维在金融行业的推广
  • 拥有MBA、ITIL V3、Cobit5、C-STAR、TOGAF9.1(鉴定级)等管理认证。
  • 拥有红帽RHCE/RHCA、VMware VCP-DCV、VCP-DT、VCP-Network、VCP-Cloud、AIX、HPUX等技术认证。

原文发布于微信公众号 - 大魏分享(david-share)

原文发表时间:2018-05-29

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序你好

微服务架构体系——它适合您的软件开发吗?

“Microservice architecture provides a range of technical benefits that contribut...

743
来自专栏Django Scrapy

shell

一 初识shell shell是类unix系统共有的脚本语言,主要完成一些自动化重复率高的任务。大大减少人工成本,某些阴谋论指出shell很快会被python...

3597
来自专栏Java架构

Java进阶之路——如何从程序员到架构师,从码农到专家Java进阶技术方面

怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作三五年之...

1222
来自专栏纯洁的微笑

Java架构体系学习路线图,第6点尤为重要!

1114
来自专栏JAVA高级架构

Java程序员体系化学习路线图,值得拥有!

943
来自专栏微信公众号:Java团长

视频:体系化学习 Java 微服务架构

可以说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。

1131
来自专栏Java架构

年薪40W的程序员需要掌握怎样的技术(Java程序员高薪必看)

2518
来自专栏Java架构师学习

推荐一个Java开发的架构技术栈一:常见模式与工具二:工程化与工具三:分布式架构四:微服务架构五:性能优化六:底层知识

可以说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。

831
来自专栏java一日一条

程序员人生:J2ee的学习流程简介

在这里我谈谈我在学习j2ee流程,并谈到在此过程中领会的经验和教训。以便后来者少走弯路。 Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J...

691
来自专栏纯洁的微笑

Java架构体系学习路线图,这六点尤为重要!

可以说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。

1021

扫码关注云+社区