ESB_API中心_微服务架构

Q:

为什么医院要从集成平台架构切换到微服务架构?为什么医院要选择微服务架构?

A:

首先从产品的本质上来说,ESB和微服务架构解决的是同一个问题:功能和业务的解耦。甚至在解决的思路上都是相同的,将接口从原有的产品功能中剥离出来,进行单独的通信和管理。两者的差距是技术架构的实现。

ESB的历史角色

从医院信息化的发展角度来看,集成平台(ESB)的出现实质上是对单体应用在开发、运维、运行进入瓶颈,无法满足医院发展需求下出现的产物。

在此之前,医院首先是以HIS为单体应用满足医院信息化,HIS的架构进入瓶颈无法满足医院业务需求后,医院通过增加新的软件产品来满足自身发展需求,从而形成了HIS、EMR、LIS、NIS、PACS为主体的业务系统,而系统之间同样通过接口进行交互。随着互联网和IT技术的整体发展,医院的信息系统与日俱增,缺乏总体设计,通过系统间点对点接口进行通信,导致了医院信息化管理的巨大隐患。在这样的大背景下,ESB作为总体架构的承载物登上历史舞台。无论是MQ、Ensemble还是Orin等,ESB的出现实质上是将点对点的通信转移到了ESB的身上,由ESB统一完成医疗信息系统之间数据的传递和转发。

医院ESB的局限

在医院使用的ESB(以MQ为例),完成的是消息提供方和消费方之间的传递,消息的提供方会将服务注册和发布在ESB中,而消息的消费方则根据实际业务需要调用和消费所需的消息。而考虑到医院的业务量,ESB并不想成为业务的瓶颈,因此在实际应用中,ESB上的服务编排一般

只完成基于数据,供需双方的简单传递,而并不实际通过服务编排来完成基于业务流程的设计。这也导致现阶段的集成平台“鸡肋说”:集成平台只完成了业务转发的工作,而接入MQ带来的开发成本,与业务间的接口改造成本也并无大量减少,似乎只完成了互联互通测评这一需求,并没实现系统架构的统一管理,并不能实现医院信息化的“精简”。

API中心

为了解决ESB鸡肋问题,出现了API中心的概念。API中心的目的在于激活集成平台中已经完成注册的服务,通过以“业务”为流程的服务编排设计,实现有业务意义的服务“复用”。ESB本身能解决不同格式、不同标准、不同语言的数据传递,因此API中心的核心在与服务网关的构建。服务网关的核心价值在于能够通过对已注册服务的“复杂”调用,让集成平台扮演服务提供者和服务消费者的角色。

但是,API中心的建立会使得集成平台快速成为业务瓶颈,因为有大量业务会通过集成平台完成服务的重排和发布,这并不符合现有集成平台的建设初衷。而随着医院业务的快速扩展,完全依赖业务组装和简单开发形成的服务,非常依赖业务系统服务的稳定性和健壮性,而这部分并不在集成平台现有的管控范围内,集成平台极有可能成为医院业务发展的瓶颈。

微服务架构

微服务架构和集成平台都是在解决相同的问题,但有别于集成平台的“中心化”解决思路,微服务架构采用的“去中心化”。而即使“去中心化”,微服务架构仍然需要“服务注册中心”这一“中心化”产品,只是在微服务架构下,服务注册中心采用类似“透明代理”的解决方案,以轻量化的方式完成了服务的转发。随着ServiceMesh模式的推广,可以理解为将“ESB”的相关功能打散拆分成每一个节点中的"ServiceMesh”模块,每一个节点各自完成原本由ESB完成的转化、通信等工作。

在微服务架构下,服务编排和服务的增加都是由“节点”提供运算和处理,因此服务注册中心不会成为业务的瓶颈,同时由于容器化及容器治理的存在,“节点”的稳定性可以得到较好的保障。而服务的发布、注册和调用都由服务注册中心完成调度,因此服务的编排和扩展都显得更为简单,理论上不存在业务瓶颈的出现。

结论

通过比较,从医院业务的发展和技术发展的趋势上来看,微服务架构是未来的必然选择。首先,医院业务的快速发展,注定信息化的需求会不断膨胀,而最终超过现有架构(单体或集成平台)的承受能力,其次,微服务技术作为当前整体技术的发展趋势,也将成为IT领域的下一个常态,这两点的满足仅仅是时间问题。因而,在当下阶段,选择微服务或者不选,其核心在与当前医院愿意投入的成本。微服务架构在启动的初期,需要大量的经济成本和专业培训成本,而到了后期,整体产品的扩展的成本则大幅下降,以“服务”计。启动资金决定医院当下阶段的选择。

API中心可以作为医院微服务化的过度阶段解决方案,完成“微服务理念”的建立和技术架构差异带来的业务隔阂,但是从整体情况来看,API中心并不能改变ESB的整体运行模式和瓶颈,并不能作为长期方案使用,应当尽快完成微服务架构的迁移,否则极易成为医院发展的瓶颈