容器云、微服务视角下综合平台应用实践探析

2024-01-27 16:44沈权
电脑知识与技术 2023年36期
关键词:微服务

沈权

摘要:文章旨在探讨基于容器云和微服务的综合平台在应用部署中的性能和效益。通过将大型单体应用拆分为独立部署的微服务组件,结合容器云的弹性扩容和柔性重组能力,文章进行了实验比较。结果显示,基于容器云的微服务相较于基于虚拟机的单体应用在启动速度、资源损耗、服务可靠性和运维成本方面表现更佳。这一研究突显了容器云和微服务架构在信息系统中的重要作用,为提高应用性能、降低成本提供了可行途径,有望广泛应用于现代应用开发与部署。

关键词:容器云;微服务;应用部署

中图分类号:TP311      文献标识码:A

文章编号:1009-3044(2023)36-0091-04

开放科学(资源服务)标识码(OSID)

随着信息技术的飞速发展,信息系统在其复杂性和规模方面已经远远超越了传统的单体应用开发模式所能应对的范畴。在过去,信息系统主要依赖传统的单体应用开发,这些应用以庞大的单一实体为核心,包括繁杂的数据库连接、消息管理组件和Web模块适配器等构建而成。即使在模块化设计的基础上,这些应用最终也变成了笼统的单体结构。在这种模式下,即便是最微小的修改也要求重新部署整个应用,这导致了系统的维护和升级变得异常繁琐,整体质量也受到了极大的挑战[1]。

随着微服务架构模式的涌现,我们看到了信息系统架构的一次革命性变革。微服务模式不再将应用视为庞大而笨重的单一实体,而是将其拆分为小型、相对独立的微服务应用[2]。每个微服务专注于提供特定的功能,可以独立部署和维护,运行在独立的Web容器中,大大减少了各组件之间的耦合度。这一新兴的架构模式为系统带来了出色的可扩展性,通过明确定义的接口,实现了模块之间的松耦合,降低了模块间相互影响的风险。

虽然微服务架构为信息系统带来了众多优势,但构建、部署和维护分布式微服务系统仍然充满挑战,如监控和故障排除、服务拆分和边界定义等[3]。近年来,容器云技术的兴起为微服务提供了理想的解决方案。容器云基于轻量级虚拟化技术,提供了面向应用虚拟化的运行环境,简化了微服务的创建、集成、部署和运维流程。这一技术推动了微服务在云端的广泛实践,为信息系统的未来发展开辟了新的道路。在这个背景下,本文旨在深入探讨基于容器云和微服务的综合平台应用实践,探索这一前沿领域的机遇和挑战,揭示其在信息系统领域中的巨大潜力。通过综合分析,本文将探讨如何充分发挥容器云和微服务的协同作用,为信息系统的构建和应用带来创新的视角和实践经验。

1 系统架构设计

1.1 系统总体架构设计

系统总体架构旨在提供一个高效、可靠、可扩展的基础架构,以支持容器化的微服务应用的开发、部署和运维。该架构包括以下关键组件,分别是:基础设施、容器云、微服务框架以及访问终端,每个组件在整个系统中扮演着不可或缺的角色。

1.1.1 基础设施

基础设施层构成了整个系统的支撑基础,包含计算资源、网络资源和存储资源,这些元素共同构筑了系统的计算环境和数据基础,为微服务应用的正常运行提供了必要的支持。在微服务架构中,基础设施的设计和管理至关重要,因为它们为微服务应用的执行提供了关键条件。在计算资源方面,包括物理服务器、虚拟机或容器,它们充当了微服务应用执行业务逻辑的场所。这些计算资源必须具备高性能、可扩展性和弹性,以应对各种不同微服务的需求。通过在容器云环境中管理计算资源,可以实现资源的动态分配和自动化扩展,更好地适应系统负载的波动。网络资源是微服务架构中的关键组成部分,包括网络拓扑、带宽、负载均衡和安全策略等。在微服务之间的频繁通信中,网络资源必须确保通信的安全性和可靠性。网络资源还需要提供负载均衡功能,以确保流量均匀分布,防止某个微服务成为瓶颈。

1.1.2 容器云

容器云技术的出现是基于轻量级虚拟化技术的应用,其核心思想是將底层基础设施抽象为容器化单元。这一抽象化过程使得应用服务的开发和部署变得更加高效。容器云为微服务应用提供了坚实的底层支持,这意味着开发团队可以更专注于应用逻辑,而无需过多担心底层基础设施的复杂性。值得一提的是,容器云还引入了自动化的容器编排机制,这对于保障微服务的高可用性和水平扩展至关重要。通过容器编排,系统可以智能地管理和调度容器实例,确保应用能够持续可用,同时还能够根据负载情况实现水平扩展,从而满足不断增长的需求。

1.1.3 微服务框架

微服务框架的发展在容器云技术的基础上构建了一种更高级的应用架构,为微服务应用提供了关键性的功能。首先,微服务框架引入了服务网关,这是一个关键的组件,负责接收和处理外部请求,将其路由到适当的微服务实例。服务网关能够实现负载均衡、安全认证、流量控制等功能,从而提高了微服务应用的可用性和安全性。其次,微服务框架提供了服务注册与发现机制,允许微服务实例在启动时向注册中心注册自己的信息,同时能够动态地发现其他微服务的位置和状态。这有助于构建高度动态化和弹性的微服务体系结构,使服务实例的管理和维护变得更加容易。最后,微服务框架支持服务可靠集群,这意味着微服务实例可以自动地进行水平扩展,以应对高负载和故障恢复需求,这种自动化的扩展能力为应用提供了高度的弹性和可靠性。

1.1.4 访问终端

访问终端在现代应用系统中扮演着至关重要的角色,它们是用户与系统之间的桥梁,提供了多样化的互动方式[4]。首先,移动终端是其中之一,如智能手机和平板电脑。它们提供了便捷的、随时随地的访问,允许用户通过移动应用程序或者响应式网页来与微服务进行互动。这种形式的访问终端适用于移动工作、商务出差、日常生活等多种场景,为用户提供了高度的便利性和灵活性。其次,客户端应用是另一种访问终端形式,它们通常部署在桌面计算机或笔记本电脑上。客户端应用可以提供更丰富的功能和交互体验,适用于需要复杂数据处理或者专业任务的用户,这些应用程序可以通过本地安装或者远程桌面访问来实现微服务的调用。最后,大屏终端也在特定场景中发挥重要作用,如会议室屏幕、数字看板和工业控制面板等。这些终端通常用于展示实时数据、监控系统运行状态、可视化数据分析等,它们为团队协作和决策支持提供了有力的分析工具。

1.2 容器云

容器云是一种分布式计算环境,它将计算资源抽象为容器化单元,为现代应用的部署和管理提供了高度自动化的解决方案。在容器云中,关键的组成部分是节点,节点分为主节点和工作节点两种类型,每种类型都具有不同的职责和功能,具体构成如图1所示。

首先,主节点是容器云的中枢,包括了关键的组件,如API服务、调度器、控制器和分布式存储。API服务是容器云的对外接口,为其他组件、客户端等提供了访问容器云平台的方式。调度器的作用是智能地分配可部署的应用到工作节点上,实现负载均衡和资源优化。控制器负责集群级别的管理,包括复制组件、节点跟踪等,以保障整个容器云的稳定性和可用性。分布式存储用于持久化存储集群的配置信息,确保容器云配置的持久性。其次,工作节点包括了资源管理、负载均衡和容器引擎等组件。容器引擎提供容器的运行环境,使得应用容器可以在工作节点上安全、高效地运行。资源管理组件负责与主节点的API服务通信,管理本节点上的容器实例,以满足调度器的需求。负载均衡组件用于分配容器云内部服务之间的网络流量,确保服务的高可用性和性能。

1.3 微服务架构

微服务架构是一种现代化的应用架构,通过将应用拆分成一系列小而独立的微服务,以实现更高的灵活性、可扩展性和可维护性。微服务框架是微服务架构的关键组成部分,包括服务接入网关、服务注册中心、服务配置中心、服务监控中心和服务集群等。

首先,服务接入网关在微服务架构中扮演着重要的角色。它为客户端提供了一个统一的入口,通过这个入口,客户端可以访问不同的微服务,而无需直接与每个微服务进行通信。这降低了客户端与应用程序之间的耦合度,同时减少了客户端的访问次数,提高了性能和可维护性。其次,服务注册中心负责微服务的管理和发现。它允许微服务实例注册自己的位置和状态,同时也允许其他微服务动态地发现和调用这些服务。这种机制解决了微服务的统一发布和发现问题,使得微服务之间的通信变得更加灵活。最后,服务集群是微服务架构中的基本单元,它包含了一组相关的微服务实例,提供微服务的集群能力。服务集群可以支持容灾抗毁和可靠运行,确保微服务应用能够持续提供服务。

2 系统运行和部署

2.1运行环境

本文旨在验证综合平台的实际运行效果,并进行了一项重要的实验,涉及容器云和微服务框架的部署。为了进行这项实验,本文配置了三台服务器,每台服务器的配置如表1所示。

这些服务器扮演了容器云环境中的不同角色,其中一台被指定为主节点,而其余三台均充当工作节点的角色。具体来说,容器云环境中的服务器配置如下。

1台主节点。主节点负责整个容器云的控制和管理功能。它需要具备足够的计算和存储资源来执行容器编排、资源调度、应用部署等关键任务。

3臺工作节点。工作节点是容器云环境中的执行者,负责运行实际部署的应用服务容器,它们需要足够的计算能力、内存和存储资源来支持多个应用服务的并发执行。

本文还进行了一个对比实验,使用了三台具有相同配置的硬件服务器,部署了20个虚拟机和相应的应用服务。这个对比实验旨在评估容器云和微服务框架与传统虚拟化方式之间的性能和效率差异。实验设计的关键在于通过不同部署方式来运行相同数量的应用服务,以便在实际环境中评估容器云和微服务框架的性能、资源利用率和可维护性,有助于确定在不同场景下选择合适的部署方式,以满足特定需求和目标。

2.2 定性分析

本文对基于虚拟机的单体应用与基于容器云的微服务进行了定性分析。分析结果揭示了在多个关键方面,基于容器云的微服务相较于基于虚拟机的单体应用具有明显的改进和优势。首先,在启动速度方面,基于容器云的微服务表现出了显著的提升。容器技术的轻量化特性使得容器实例能够在瞬间启动,而不需要像虚拟机那样进行复杂的启动过程。这意味着微服务能够更迅速地响应请求,提高了应用的响应性。其次,基于容器云的微服务在资源损耗方面也表现出了明显的优势。容器的资源隔离性和高效利用,使得微服务之间可以更好地共享和利用资源,而不会出现虚拟机资源过度分配的问题,这有助于提高资源的利用效率,降低运行成本[5]。

2.3 定量分析

表2  测试服务器参数表

[性能指标 单体应用 微服务 平均启动时间(秒) 72 6 内存平均占用率(%) 76 23 CPU 平均使用率(%) 43 17 100 并发访问时平均响应时间(毫秒) 16 0.6 网络带宽利用率(Mbps) 250 600 系统可扩展性(1-10评分) 3 9 故障恢复时间(秒) 120 15 资源占用效率(1-10评分) 4 9 部署和维护成本(1-10评分) 7 4 安全性(1-10评分) 6 8 可伸缩性(1-10评分) 3 9 ]

结合表2进行分析,可以深入研究单体应用和微服务在各种性能指标上的差异,以更好地理解它们之间的性能对比。

启动时间。从表2可以看出,基于容器云的微服务在平均启动时间方面明显优于基于虚拟机的单体应用。微服务的平均启动时间仅为6秒,而单体应用需要72秒。这意味着微服务能够更快速地响应用户请求,提高了用户体验和应用的响应性。

资源利用率。微服务在内存平均占用率和CPU平均使用率方面也表现出了明显的优势。微服务的内存占用率较低,仅为23%,而单体应用占用了更多的内存资源,高达76%。类似地,微服务的CPU平均使用率为17%,而单体应用的CPU使用率为43%。这表明微服务更高效地利用了系统资源,避免了资源浪费。

并发访问响应时间。微服务在100并发访问时的平均响应时间仅为0.6毫秒,远远快于单体应用的16毫秒。这意味着微服务能够更快速地处理大量并发请求,确保应用的高性能。

网络带宽利用率。微服务在网络带宽利用率方面也表现出了优势,使用的网络带宽更高,达到了600Mbps,而单体应用仅为250Mbps。这表明微服务对网络资源的利用更加高效。

系统可扩展性。微服务的系统可扩展性评分远高于单体应用,得分为9,而单体应用仅为3。这意味着微服务更容易扩展以适应不断增长的负载,而单体应用在这方面较为受限。

故障恢复时间。微服务的故障恢复时间较短,仅为15秒,而单体应用需要较长的120秒。这表明微服务在出现故障时能够更快地恢复正常运行。

资源占用效率。微服务在资源占用效率评分方面得分更高,为9,而单体应用得分较低,仅为4。这说明微服务更有效地利用了硬件资源,避免了资源浪费。

部署和维护成本。虽然微服务在性能方面表现出色,但在部署和维护成本方面得分较低,为4,而单体应用得分较高,为7。这意味着微服务可能需要更多的维护工作,但性能上的优势可能会抵消这一成本。

安全性。微服务的安全性评分较高,为8,而单体应用评分为6。这表明微服务在安全性方面具有优势。

可伸缩性。微服务的可伸缩性评分远高于单体应用,得分为9,而单体应用仅为3。这意味着微服务更容易适应不同规模的负载,从而提供更好的性能和灵活性。

综合上述分析,基于容器云的微服务在多个性能指标上均表现出显著的优势,包括启动时间、资源利用率、响应时间、网络带宽利用率、系统可扩展性、故障恢复时间、资源占用效率、安全性和可伸缩性。然而,需要注意的是,微服务可能需要更多的部署和维护成本,这是在性能优势和成本之间需要权衡的因素。根据具体需求和资源限制,可以选择适合的架构。

3 结束语

通过将大型单体应用拆分为独立部署的微服务组件,并采用容器云进行编排,本文实现了应用部署的显著优化。实验结果表明,在这一综合平台下,应用启动速度显著提升,资源利用效率优化,服务可靠性增强,可以降低运维成本。这一成果不仅提高了应用的响应性和性能,还降低了总体运营成本。因此基于容器云和微服务的架构,在信息系统中具有广泛推广的潜力,为未来的应用开发和部署提供了有力支持。这一研究成果标志着信息技术领域的重要进步,为构建高效可靠的应用提供了有力工具。

参考文献:

[1] YOUSIF M.Microservices[J].IEEE Cloud Computing,2016,3(5):4-5.

[2] 贲婷婷,李荣宽,汪敏,等.基于轻量级容器技术的战术微云框架[J].指挥信息系统与技术,2017,8(5):87-92.

[3] 丁乙,李荣宽,汪敏,等.面向軍用微服务的服务网格架构研究与设计[J].指挥信息系统与技术,2020,11(1):18-23.

[4] 王壮,王平辉,王彬丞,等.深度学习容器云平台下的GPU共享调度系统[J].计算机科学,2023,50(6):86-91.

[5] 俞延峰,孙雯雯,陈雷放.基于深度强化学习的容器云任务调度算法[J].电子设计工程,2023,31(10):59-63,68.

【通联编辑:光文玲】

猜你喜欢
微服务
数字文化馆建设中的“微服务”
微服务架构及相应云平台解析
微信公众平台在医院图书馆的应用现状调查
从单一模式系统架构往微服务架构迁移转化技术研究
微媒体时代高校图书馆阅读推广微服务探析