近年来,随着技术进步与业务需求拓展,医院信息系统的应用环境变得越来越复杂,传统信息化建设模式已无法满足业务快速发展要求,因此深圳市第二人民医院的信息化建设逐步构建起以微服务为核心的技术架构。那么什么是微服务,从医院角度来说为什么选用微服务,以及如何应用好微服务呢?
1、什么是微服务?
微服务,又叫微服务架构,是一种软件架构方式。它强调“业务需求彻底的组件化及服务化”,通过把一个大而全的单个应用系统拆分为多个可独立开发、部署、测试、运行的小应用,并使用轻量级、通用的机制在应用间进行通信。以此实现医院业务的快速部署、重构及一站式生命周期管理,支撑医疗信息化的个性化、专科化应用,提高用户体验。
2、医院为什么选用微服务? 在信息化建设初期,由于系统业务简单,选用开发速度快、成本低的单体架构就能满足医院需求。但随着项目的增加和扩展,系统提供厂商越来越庞杂,单体架构的问题也逐渐暴露出来。复杂业务难拆分、新功能上线周期长、应用扩展性差、迭代更新速度慢、系统耦合性较大、开发维护成本变高、部署效率降低等问题促使新技术的应用迫在眉睫。 随后,SOA架构逐步成为医院信息化的主流IT架构,它将HIS、LIS、PACS、EMR等应用中的不同功能单元通过定义接口和协议联系起来,在建立并遵循信息交互协议和安全体系的基础上,解决不同系统之间的信息交互。但随着医院的垂直应用越来越多,应用之间交互不可避免,需要将核心业务抽取出来作为独立的服务,使之逐渐形成稳定的服务中心,保证前端应用能更快速响应多变的医院业务需求。基于此,从2018年起,在SOA基础上升级而来的微服务架构逐步被业界接受,并开始了实践之路。 采用微服务架构具备以下开发和应用优势 *微服务架构方式是松耦合的,可以提供更高的灵活性,并且每个服务重点关注于一个业务功能,可以将其做到专业,并强调用户体验; *微服务可通过最佳及最合适的不同的编程语言与工具进行开发,并且每个微服务可由不同团队独立开发,互不影响,能够加快整体解决方案的推进速度; *微服务架构允许在频繁发布不同服务的同时保持系统其他部分的可用性和稳定性,可动态满足持续的业务需求。 因此采用微服务架构能够为软件系统提供稳定可靠的体系架构支撑,还可以支持软件复用,降低开发和运维成本。在医院信息化的扩展方面,基于该架构不仅能满足当前的需求,同时能够灵活动态持续地支持系统维护、扩展和升级。 3、如何应用好微服务? 不过,技术是一个不断发展的过程,微服务技术不是既定的结果,而是一种工具。通过构建微服务框架,引入现有的成熟的微服务解决方案,再利用平台提供微服务应用开发、运维的基础环境支持,是医院部署和实现微服务的有效方式。 结合我院信息化建设需求来看,通常需要上百个业务系统和上千个业务功能来支撑其业务的正常运转。但这些业务功能中有一部分是具有共性的,通过微服务技术,将这些系统及功能进行分层、去重和解构,使之拆分为独立的轻量级业务单元,并结合我院的不同使用场景进行适配和重组,以此满足我院多场景下不同使用角色的个性化需求。 要实现这一过程,除应用微服务以外,还需要结合DevOps实现微服务组件的一体化开发、测试、运维和发布。应用Docker将微服务源码及运行环境打包成镜像,为微服务的运行提供一个与底层完全隔离的运行环境。通过Kubernetes对大量的容器进行编排和管理等,打造自主可控,能够适应当前和未来中国医疗行业发展的架构体系,形成全场景一体化智慧服务等。 4、我院基于微服务架构的智慧医院建设实践 为全面优化诊疗流程,改善患者就医体验,我院于2019年开始了基于微服务架构的智慧医院建设实践之路。我院依据HL7、互联互通、电子病历、智慧服务、智慧管理等国际国内各标准规范,在信息化软件开发模式上进行了创新,即采用“模块化+插板式”的组件开发模式。在应用开发层面遵循应用功能微小化、原子化的思路,通过微小化应用的重构和复用,在全院信息互联互通的基础上实现整体信息服务系统的重构,搭建了一体化医护工作台、医技服务平台、药事管理平台、医院运营平台、患者服务平台、医疗大数据平台等,将医院各个角色的人员所需要的信息系统功能进行集成,形成符合工作人员使用习惯的一站式工作台,用以替代传统模式下的医院和医生业务开展所需使用的主要业务系统。 基于微服务架构的智慧医院建设架构图 基于微服务架构的智慧医院探索与实践,有效提升了我院的医疗工作效率和质量,也大大加快了我院的信息化建设步伐,帮助我院先后通过了电子病历系统应用水平分级评价六级、国家医疗健康信息互联互通标准化成熟度测试五级乙等测评。未来我院将不断推进微服务应用的深度和广度,推动医院信息化从数字化向智慧化发展,助推我院“打造特色鲜明、高水平发展、辐射粤港澳大湾区的省级引领型区域医疗中心”十四五战略目标的实现。