登录 / 注册 Account
Jump to section

微服务如何支持医疗行业的 IT 集成

复制 URL

微服务让医疗行业和其他行业的开发人员能够创建由松散耦合的服务构成的应用,从而更加轻松地进行开发、测试、部署和升级。这些优势正愈发促使医疗行业的开发人员优先选用微服务,从而告别前一代 IT 集成技术(即企业服务总线(ESB)。

与任何大型企业类似,医疗企业的 IT 环境也存在各式各样系统无序扩张的窘况,需要共享任务关键型数据。例如,入院/出院/转院系统(ADT)、调度系统、实验室系统、放射学系统和计费系统等,全部需要保证通信,因为这些数据在医疗急救过程中生死攸关。

在数字化时代,医疗提供商大多已采用了电子医疗保健记录(EHR),但除非数据能在许多应用之间共享,否则 EHR 的价值就不能完全发挥出来。人们为医疗系统集成所做的努力早在几十年前就初现端倪,1987 年,Health Level Seven(HL7)确立,这是用于医疗行业使用的应用之间,传输临床和管理数据的全球标准。确立这一通用标准后,医疗行业就需要一种办法来连接应用,以便它们可以通过 HL7 进行通信。

多年以前,IT 从业者认识到,在各个应用之间进行点对点连接不太现实,而且难度也会随着企业发展而变大。另外,虽然 HL7 提供了一种通用标准,但并没有通用的方法来解读字段,因此还需要进行一些数据变换和连接,才能支持医疗系统之间的通信。

医疗提供商采用的第一代集成技术是接口引擎(IE),这是一种在医院内所有系统之间发挥中枢作用的服务器。每个系统都与 IE 连接,根据需要转换数据并将它转发到其他系统。到了大约 20 年前,企业服务总线(ESB)逐渐兴起。与 IE 类似,ESB 也相当于一个中转站,负责在医疗应用之间交换数据(主要使用 HL7)。ESB 提供数据变换、协议转换、路由,以及对 Web 服务、JMS、 HTTP 和 SOAP 的支持,而且能够轻松管理和监控。ESB 已成为二十年来最为流行的集成解决方案(无论是医疗还是其他行业)。

自 ESB 诞生至今,应用开发已经历了翻天覆地的变化。最重要的变化之一,是敏捷开发和 DevOps 的兴起,ESB 则渐渐落伍。

DevOps 管道是一种基于渐进式更改和持续自动测试的开发生命周期。在 DevOps 时代,那些曾经促使 ESB 蓬勃发展的特征如今已变成了阻碍。ESB 会将所有集成内容部署到一个单体式架构中。这在过去是优点,现在却会导致 ESB 与 DevOps 不相兼容。

在现代化开发环境中,ESB 表现出以下局限:

  • 无法兼容敏捷开发人员和 DevOps 工具:如今许多刚走上工作岗位的开发人员,都是在 DevOps 环境中接受培训的。这些敏捷开发人员如果使用首选的工具和市面上最新的 DevOps 解决方案,就能达到最高的工作效率,但 ESB 的设计并不支持这些工具。
  • 更改会影响整个系统:当您需要对 ESB 中的规则进行任何更改时,即使变动很小,也必须暂停整个系统,也就是说,任何与 ESB 交互的应用都会遭遇中断和非生产停机。以此类推,任何更改引起的错误也可能会影响您的所有集成。这会使得团队滋生抵触心态,抗拒升级和修复,从而影响工作效率。
  • 单一故障点:由于所有集成内容都通过同一中枢进行路由,所以 ESB 会成为整个企业的单一故障点。如果 ESB 出问题,您的所有集成内容都会瘫痪。
  • 无法自动测试: 自动测试是 DevOps 的关键组成部分。在 DevOps 管道中,每一个更新都会单独测试,因此不会干扰开发流程,这都是通过自动化才得以实现的。但 ESB 的专有 GUI 和版本控制,使得自动化不可企及。

与其他行业一样,医疗行业也采纳了微服务、DevOps 和敏捷等新型开发实践。这种采纳也已延伸到医疗集成;新的应用和数字触点需要采用 HL7、REST 和其他协议的集成。医疗领域的微服务开发人员希望将集成内容与他们开发的其他代码(例如,数据、流处理、GUI、命令和控制等)一起控制,并将任何更改封装为在持续集成与持续交付(CICD)流程中行进的可部署单元。上述的这些限制阻碍了 CICD 流程将代码与其他代码集成的这一目标。

微服务是未来开发的大势所趋,而 ESB 在其中难有容身之地。ESB 是单体式的,微服务则相反——开发人员可以利用由松散耦合的服务构成的构建块来创建应用和集成。通过将应用分割为独立的模块,开发人员更加轻松地进行开发、测试、更改、再测试、修正、部署、生产中测试以及升级等。

微服务也促成了 DevOps,因为它们支持自动化测试。由于微服务呈现为小型组件,因此可以轻松装入容器中,进而自动进行测试流程并促成持续集成与持续交付。而单体式 ESB 体积过大,无法放入容器之中,也不能分割成多个组件,因此无法以同样的方式进行测试。

不过,采用基于微服务的集成最重要的原因可能是它可为敏捷开发人员提供支持,允许他们使用自己趁手的 DevOps 工具。将 ESB 剔除,就能让开发人员自由地在熟悉且青睐的敏捷开发环境中工作。没有了 ESB,开发人员也就不再需要接受专有系统相关的培训,从而能专心致志地使用效率更高的开发方法。

此外,微服务还能使集成大众化,允许开发人员自己探索集成需求,而不是将集成限制到一个孤立的 ESB 专家团队。没有人比应用开发人员更了解应用的数据需求,因此显然这是一个更加合理的发展方向。

微服务也支持 API 管理,允许在必要时进行基于 API 的集成。

同时,基于微服务的集成也可以带来和 ESB 相同的优势,例如用于创建有关数据如何在企业内流动的复杂规则的图形变换和逻辑。举例来说,您也许喜欢 ESB 的图形开发画布,但您也可以找到支持基于微服务的集成的类似画布。

基于微服务的集成提能带来多种关键优势,包括:

  • 全面监控和管理:微服务可以通过敏捷开发人员选择的先进工具进行监控,例如 Kibana、Elasticsearch、Grafana 和 Prometheus 等,来找出故障点,从而在问题影响到业务之前解决它们。
  • 自动化测试:微服务和 DevOps 的一大优点是能够执行自动测试。每个集成在经过测试流程时会被视为独立组件,不会干扰应用的其他组件或其他应用。
  • 卓越的软件质量:更高效的流程和更优质的测试最终能造就更高质量的软件。
  • 加快开发:通过 DevOps 和自动化来简化集成开发流程,并且消除过去的手动流程,从而加快开发生命周期。
  • 增强可扩展性:由于应用是由独立模块构成的,每一种服务都可以单独扩展,不会影响应用的其余部分。
  • 促进创新:微服务和 DevOps 可以赋能开发人员,助力其实现集成解决方案创新,不断为您的企业推出新服务,为客户带来更优质的服务。
  • 业务敏捷度:敏捷开发自然会带来业务敏捷度,也就是快速响应市场中的变化的能力。例如,敏捷开发团队能够利用微服务迅速构建必要的集成来支持业务关系,使需要数据共享的新合作伙伴或供应商可以快速上线。
  • 改进客户体验:您的根本目标是服务客户,也就是每天依赖您的医疗保健服务的患者。通过改进流程并在不同系统和部门之间无缝共享数据,您最终能够确保令人满意的患者体验。

您也许会认为,将集成迁移到微服务是一项令人怯步的任务。为什么要改变?毕竟,您的企业多年来都在使用 ESB,您的团队也已熟悉它的专有方面。但我们有一个潜藏的问题不能忽视。如果有一两位 ESB 专家离职,会发生什么?需要花什么代价才能重新达到那样的技能程度?

要离开单体式 ESB 看起来或许困难重重,这可能正是许多企业不得不把 ESB 进行到底的原因。但当您摆脱了 ESB 的桎梏后,就能享受全新集成带来的诸多好处。

事件网格用例

事件驱动架构与事件网格相结合,可以利用多样的应用堆栈来支持部署于复杂多云、广泛分布的拓扑中的各种用例。以下我们仅列举了几个潜在的事件网格用例。

微服务集成

事件网格可以轻松让基于微服务的应用彼此连接,并与传统技术的相连。

电子商务

事件网格能够加快交易处理,确保通过网站和应用程序进行快速而可靠的客户互动。

客户支持

事件网格支持快速交付客户交互数据,让支持团队能够实时回应客户,创造个性化的体验。

金融服务

事件网格可以为金融服务提供商带来实时交易数据的低延迟同步。此外,事件网格也可实时传递可疑交易的信息,从而支持欺诈检测。

物联网连接

事件网格为后端系统提供可靠且可扩展的物联网(IoT)连接,以处理来自几乎种类不限的传感器的指标。

事件网格可为业务带来以下关键优势。

实时响应

业务成功离不开应对变化的出色能力。事件网格的一大优势就是实时交付数据(通过事件驱动架构以事件流形式交付),以实现及时的响应。事件网格效率高,可以确定事件生产者和消费者之间的最快路径,几乎没有消息传递延迟。这让业务利益相关者能够对需要迅速决策的关键问题做出快速反应。

改进客户体验

通过实时传递面向客户的团队和电子商务技术所使用的数据,事件网格可以帮助企业更好地服务客户,最终改进客户的体验。

降低运维成本

事件网格提供对制造、销售、库存和运输的实时可见性,让企业能够优化运维,提高效率并降低成本。

开发人员生产力

事件网格与不同类型的环境、消息传递系统和协议无关,因此借助事件网格,应用开发人员可以专心利用可用的最佳技术来实施业务逻辑。开发人员可以自由进行创新,不必去开发复杂的数据分发网络,也不会受到开发环境、消息传递平台或云类型的限制。

精简医疗集成,我们已为您备好工具

Red Hat Integration

红帽集成是一套全面的集成和消息传递技术,旨在跨混合基础架构连通医疗行业(及其他行业)的应用和数据。它是一种敏捷、分布式、容器化并且以 API 为中心的解决方案。它可提供服务组合与编排、应用连接与数据转换、实时消息流、变更数据采集与 API 管理——所有这些功能都能结合云原生平台和工具链,从而支持全方位的现代应用开发。