搜索
您的当前位置:首页正文

为业务管理流程创建微服务:新一代热门技术?

来源:知库网

与众多企业应用一样,在过去几十年中,业务流程管理(BPM)也在不断演变。一旦整体解决方案拥有了内嵌用户目录、规则引擎、信息支柱等,现代装置更多地是网络服务和互操作机制的模块化组合,能够让你混合、匹配、利用并扩展它们的能力——正如你利用其它各种软件堆栈提供的功能。

这一趋势的最新典型代表就包含所谓的“微服务”,如今它激发了很多信息技术专业人士的想象力,作为提高应用开发效率、灵活性和性价比的最新方法。

微服务概述

从广义上来说,微服务是“常规”服务高度专业化的版本,常规服务位于我们熟悉的云端及基于面向服务架构应用的中心。每项服务都精心制作,仅提供一项功能,它们精心聚合、巧妙安排,成为一个特定的功能集合。从逻辑角度讲,我认为它们代表了从整体到模块这一进程中的下一步,这就是其中原因。

无论你认为它们是完全的变革还是仅为发展进化,很显然,接下来要兴起的就是微服务。

从发展观来看,有关构建微服务来创建应用的优势清单深植于单个的微服务中的各个功能之中。这为显著改善大开方便之门,包括以下改进:

能独立于其他服务而对每项微服务进行开发、测试和部署,潜在缩短了项目的关键路径,从而节省了开支。

同样,应用程序补丁和更新可应用于某个功能区而不影响其他任何功能,这样就简化了生命周期维护。

而且,可以指派特定的开发人员参与特定的微服务,使他们能培养独特的专业知识,便于根据需要在项目中部署他们的技能。

面向对象编程很久以前就出现了,那这些效益你也会觉得听上去相当熟悉——确实没错。区别就在于特定的微服务所代表的对象比一般编程对象都“干净”得多,它们是用来做一件事情的,做好这件事情后,才能继续做下一件事。

所以对业务流程管理来说,构建微服务意味着什么呢?

业务流程管理效益

业务流程管理应用程序通常相当复杂,往往需要适应不同用户的设备、几代的数据库和文档技术、多种媒体类型和不确定的带宽能力(诸多因素仅举几例)。更复杂的是它们一边这么做,同时还要不断适应业务环境中的地址变更。

模块化业务流程管理策略已经通过放宽连接各种功能的纽带而带来了大量红利,合理使用微服务有望使他们的适应力比今日更强。例如:

微服务可以实现事实上被视为的自选功能“流”。对各种特定功能进行分类,为下一步预期和预加载进程提供机会,这就类似于排队等候打开的网页。如同飞机接近主要机场,对它们的操纵指令就取决于地面状况(或者工作流),它们随时待命,只要给出指令,就会做出动作。

将活动部件互相隔离也可能隐藏业务干扰。例如,在线店面包通常把它们后台业务交易处理功能与面向客户的前台硬性连接起来。在这些场景中,后台的任何一个问题常常会切断其从前台接收信息的功能,从而关闭业务存储。如果把捕获和处理功能拆分成两个独立的微服务,即使处理功能块操作失灵,仍旧能收集客户信息。同样,存储还是如往常一样运作,后台问题还是内部不可告人的秘密。

现代生活给出的启示之一就是一切皆变惟变不变。在业务流程术语中,这意味着无论你如何谨慎地筹划工作流,每隔几年你很有可能还得重新规划。例如,新的法律要求收集新形式的审核信息,否则合并/收购活动将改变你的流程格局。通过构建微服务实现业务流程管理的方法意味着你能添加新的功能,而不需要修改核心应用程序,这种灵活性降低了技术难度以及不服从监管的风险,同时还能减少成本。

听起来不错,是吗?对,确实是这样。然而每项创新都是至少会有一些警告的,所以让我们快速地看一下这些注意点吧。

有什么条件?

今日的竞争压力意味着业务流程管理不得不比以往更快更有效地工作,这个现实迫使组织都急于采用他们认为“最新最好”的技术,而没有真正地思考他们的处境。尽管微服务充满潜力,在跟风之前还得考虑几个要求。例如:

微服务如何对话的管理标准还在形成中。在技术发展早期,网络服务经历了同样的动态反演,这并不出人意料,也不是不确定的问题。然而过早投入却最终半途而废可不是一件令人愉快的事;因此如果你赞同这一观点,那就值得参与一些以标准为导向的活动。

把一系列的功能分成单个的微服务,要求每个功能都体现简单原则。然而,还需要更多的功能来完成特定任务,这意味着假如出错,需要在很多地方进行搜索找到故障所在。此时,自身各个检测的能力可派上用场,应该该能力有助于在问题发生前把它们隔离出来。但在你沿着这条道路前进的过程中,还有另一面更加复杂的情况需要考虑。

最终,它就像凶猛的野兽一样逼着你思考到底采取什么样的流程、谁参与流程、需要与什么工具和系统交互操作。你的理论目标是将每个功能提取到独立的微服务中,尽管我猜想你所能达到的细微程度有一个实际限值,直到达到收益递减规律。如果你想在最初吸引你的收益水平上有所收获的话,你还是需要努力。

无论你把它们当成完全的变革还是仅为发展进化,很显然,从整体到模块化业务流程管理应用程序的发展进程中,下一步兴起的就是微服务。在网络服务和基于面向服务架构的应用程序初露锋芒时,你一样要弄清楚它们对你的用处有多大,在哪些地方可以将效用最大化。这时,你才能确定它是否是你接下来要做的一件大事。

下一步

找出你应当考虑利用微服务的四个理由

学习微服务如何为面向服务架构带来敏捷性

学习真正的微服务究竟是什么样的

了解云端测试微服务RESTfulAPIs的挑战

Top