APP下载

基于容器云平台的服务器软硬件资源整合应用实践研究

2022-08-31刘勋

电脑知识与技术 2022年19期

摘要:文章介绍了在应用架构转型过程中遇到的业务规则多且复杂转型难度高、业务部门需求变化快旧部署架构难以适应变化、新硬件资源与存量硬件资源整合共存及新技术应用的兼容性等问题,提出并分析了使用容器云平台技术解决的可行性,结合具体的整合实践过程给出了一套使用容器云平台技术整合软硬件资源的方法。该方法在应用架构转型过程中异构服务器整合、应用系统改造迁移方面取得了良好的效果。

关键词:应用架构转型;容器云平台;服务器资源整合

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

文章编号:1009-3044(2022)19-0058-03

1 应用架构转型过程中存在问题

一是业务规则多且庞杂,组件间耦合度高;庞大复杂的部署架构缺乏灵活性,使得应用的开发、测试、部署、升级复杂[1],更增加了应用架构转型难度。

二是业务部门业务需求变化频繁,陈旧的系统架构导致新需求的研发工作量大,研发周期长,难以支持新需求的快速响应。

三是随着信息技术的不断发展,具有高性价比的新信息技术的应用是今后的趋势,新技术架构与存量技术架构的共存是资源整合必须面临的问题。例如节能、高性价比的ARM架构服务器引入,将长期与x86架构服务器共存,如何统一应用两类服务器资源。

四是新技术发展日新月异,技术变革频率也较以往更快,新技术层出不穷,如服务器国产化的推进[2],以此带来了更多的技术多样性与不确定性,如何适应技术的快速变化,做到以不变应万变。

五是新技术应用存在诸多兼容性问题,包括操作系统、数据库、中间件等方面的兼容性问题。

2 容器云平台介绍

容器云平台是以轻量化 PaaS 平台的容器化实现,并采用容器、容器调度编排、分布式等技术构建的一种云计算平台。以容器云平台作为软硬件整合方案,一是利用微服务技术将业务功能分解为微服务,实现功能解耦,以降低研发工作量、减少研发周期,降低应用架构转型难度;二是利用容器云平台异构集群管理功能整合不同技术架构服务器,提高服务器资源利用率;三是利用容器部署不依赖任何服务器架构、语言、框架及操作系统的特性解决新技术应用的兼容性问题。

2.1 应用部署方式的演进

应用系统的部署方式经历了物理机部署方式、虚拟机部署方式、虚拟机(物理机)+Docker部署方式、容器云平台部署方式四个阶段,如图1所示。

1)传统的应用系统部署方式为物理服务器+操作系统+中间件+应用系统模式。其优点是架构简单,技术成熟,学习成本低,易于掌握,适合小规模部署;其缺点一是软硬件耦合度高,应用系统的兼容性很大程度上依赖于中间件的兼容性,而中间件技术缺乏统一标准,对于不同技术架构的处理器其兼容性无法保障,导致上层应用系统对底层硬件产生较强耦合,不利于软硬件资源整合,无法提高资源利用率,不利于新技术的应用,阻碍国产化技术的发展。

2)虚拟机部署方式是在传统部署方式上增加虚拟机层,在物理服务器操作系统之上部署虚拟机,虚拟机内部署虚拟服务器操作系统,应用部署在虚拟服务器操作系统中。其优点是一台物理服务器上可以部署多个应用,应用间互不影响,提高了系统利用率。其缺点一是虚拟机操作系统占用系统资源,增加系统资源开销,二是不支持不同架构服务器混合部署,例如x86和ARM架构服务器不能混合部署虚拟化集群,不利于新架构服务器的应用。

3)容器云平台部署方式是基于Docker容器虚拟化技术、容器集群技术及微服务技术,将应用系统、配置及其运行环境打包成一个独立的程序包,也称为容器,直接部署在由异构的物理服务器组成容器集群上,得益于Docker容器虚拟化技术特点,各容器彼此相互独立。容器直接部署在物理服务器上,不需要虚拟操作系统支持,资源开销小,降低应用系统与服务器之间的耦合[3],一台服务器可部署上千个容器,资源利用率极高。

2.2 容器云平台优势

容器云平台三大技术特点决定了它在服務器软硬件整合应用方面的优势,即Docker容器虚拟化技术、容器集群管理技术及微服务技术。

1)Docker容器虚拟化技术

Docker容器虚拟化技术提供一个开源的应用容器引擎,让开发者可以以统一的方式打包他们的应用系统、配置、依赖包到一个可移植的容器中,然后发布到任何安装了Docker引擎的服务器上。容器引擎不依赖任何服务器架构、语言、框架包括操作系统,运行容器引擎的服务器可以是不同的技术架构和不同的操作系统。容器间互相独立,互不影响,不需要虚拟操作系统支持,直接部署在物理服务器上,几乎没有资源及性能开销,一台物理服务器可以部署上千个容器。

2)容器集群管理技术

随着容器数量的增加,要对大量的容器进行管理,并且需要横向扩展计算容量,这时就需要使用容器集群管理技术。Kubernetes是业界广泛使用的Docker容器集群管理平台。Kubernetes能在一组异构服务器上管理、编排多容器组合成的应用,编排的最基本单位是容器,而管理的实体是整个应用集群,容器集群管理工具全方位为应用集群实现自动化,包括应用实例部署、健康检查、自动容错、应用更新、弹性伸缩等等。

3)微服务技术

容器的部署是容器集群功能的横向扩展,而微服务是对容器集群的纵向治理。初期部署的容器是直接打包的应用程序包,程序间不会互相影响[4],这样会产生功能耦合,例如所有功能都会访问用户表来获取用户信息,都要复制一份用户访问代码,不论从开发角度还是系统功能角度都存在较高的耦合,牵一发而动全身,降低系统效率。将单体应用程序按照领域模型驱动划分为多个微服务,不仅可以减少模块间的耦合,例如修改一个服务不会影响其他功能,能加快功能发布频率,对数据库的耦合也会减少,数据库的改动对上层调用者透明。例如:数据库的分库分表改动不会影响调用数据访问服务的业务功能。

3 基于容器云平台的应用架构转型实践

在应用架构转型中使用容器云部署模式可以大大提升应用程序部署架构灵活性、缩短业务部门需求响应时间、统一应用异构服务器集群以提高资源利用率等,但容器云部署模式对存量应用系统的兼容性问题仍然突出,例如对一些比较重要的无法容器化的应用系统支持度不高,导致容器云部署模式无法在整个应用架构转型过程中全面铺开。为最大限度提高应用架构转型过程中服务器软硬件资源整合利用率,提出一种基于容器云平台的超融合应用架构方案。

3.1 一种基于容器云平台的融合应用架构方案

方案将容器云平台及虚拟机平台相结合,综合容器云平台优势及虚拟机平台应用兼容性高的优点,优势互补,实现应用系统的全面转型。如图3所示。

方案优点在于:一是将可以容器化改造的应用系统进行容器化改造后,融入容器云平台中,改造后的应用系统使用统一的虚拟化计算资源池和虚拟化存储资源池,大大降低资源消耗。

二是使用虚拟机部署不能进行容器化改造的应用系统,对于可以进行微服务替代的部分系统功能,使用微服务进行替代,并统一使用虚拟化计算资源池和虚拟化存储资源池,进一步降低资源消耗,最大程度提升应用架构转型中的资源整合率。

1)基础设施层

基础设施层包括由异构CPU服务器组成的集群,为基础设施之上构建融合虚拟化资源池提供算力支撑。

2)虚拟化资源池

虚拟化资源池是由容器技术、虚拟化技术构建的计算及存储功能的统一集成,负责提供应用系统的计算能力、存储能力支持,它由虚拟化计算资源池和分布式存储资源池组成。

3)虚拟化计算资源池

虚拟化计算资源池基于Docker容器技术构建,图4为虚拟化计算资源池架构图,Docker容器虚拟化的优势在于容器直接运行在裸金属服务器上,避免了传统虚拟化带来的额外资源开销,对CPU虚拟化性能要求极低,可更高效地统一利用异构CPU服务器计算资源,形成计算能力,同时借助容器引擎的容器调度功能,实现计算资源整合池化、按需调度等功能[5]。

4)分布式存储资源池

方案集成了Ceph分布式存储架构,为整个融合应用架构提供存储支撑。Ceph 是一种统一的分布式存储解决方案[6],它是基于POSIX 的无节点故障分布式文件系统,具有高可用性、高性能和良好的可扩展性,并且具有数据文件无缝复制和容错功能。Ceph 的统一体现在可以提供文件系统、块存储和对象存储,分布式体现在可以动态扩展。

5)应用集成接口

应用集成接口将SOA思想及微服务技术相结合,通过把各种存量系统通过容器技术或服务适配程序转化为服务,保证所有存量系统都进行服务化,从而根本上使得应用集成接口是完全基于Web服务的。应用集成接口架构如图6所示。

3.2 基于容器云平台的应用架构转型实践步骤

1)制定工作方案,确立服务器资源整合改造总体目标

工作方案应提出服务器资源整合改造的指导思想、工作目标、总体框架和实施路径,主要明确服务器及应用系统的整合范围,对范围内的服务器及应用系统按照技术架构、应用情况等要素进行分类梳理,按照“统筹谋划、分类施策、分步实施”工作思路,明确整合改造的技术路线,及实施步骤。

2)搭建分布式容器云平台,实现异构服务器的协同应用

根据目前服务器情况,充分利用新技术优势,引进分布式容器云平台,以K8S为核心,配合原有的VMware虚拟化平台,多方位实现异构服务器的协同应用:

一是实现服务器资源平滑整合过渡。分布式容器云平台充分利用现有的CPU芯片各异、型号不同的服务器资源,组成异构服务器混合基础设施平台,实现基于ARM、x86等异构CPU芯片的物理设备,构建单一资源池及异构CPU的多芯协同,为服务器平滑整合过渡打下坚实基础。

二是实现存储资源平滑过渡。结合未来存储资源规划,统筹现有存储资源,将多种异构存储资源组合成统一资源池,由分布式容器云平台管理,实现跨异构CPU服务器的统一分布式云存储能力,并通过相互冗余提升数据整体可靠性。

三是实现应用系统平滑过渡。通过分布式容器云平台的容器管理、容器编排以及统一调度等功能,实现底层硬件差异解耦。无论底层是何种架构,容器云平台均自动管理应用的部署及运行。底层硬件架构对应用层完全透明,保障应用层在底层硬件架构替换后维持平稳运行。

容器云平台的应用,将异构服务器资源一体化,大大增强了异构服务器资源整合、统一运用的可行性和实施效率,有效解决了异构服务器协同应用的问题,并实现上层应用与基础设施解耦合,对上层应用屏蔽服务器设施差异,将上层应用进行容器化改造,大大提高了上层应用在异构基础设施上的部署效率。

3)分类实施进行应用系统的改造及迁移

在全面掌握应用系统架构情况下,按照信息系统架构及是否有源代码情况将应用系统分类:对有源代码,可以进行容器化改造的应用系统进行改造后部署到容器云平台。对于功能简单的系统进行微服务化改造后再部署到容器云平台。对于功能复杂,源代码丢失,不适合容器化的应用系统整体迁移到Vmware虚拟化平台,待后期使用新系统对其进行替代。

4 结束语

本文提出并分析了使用容器云平台技术解决服务器软硬件资源整合的可行性,结合具体的整合实践过程给出了一套使用容器云平台技术整合软硬件资源的方法。该实践方法在单位应用架构转型过程中异构服务器整合、应用系统改造迁移方面取得了良好的效果。

参考文献:

[1] 于泽萍.面向微服务架构的容器云平台设计与实現[D].哈尔滨:哈尔滨工业大学,2018.

[2] 陈慧娟.国产虚拟化平台的应用实践[J].金融科技时代,2016,24(4):27-29.

[3] 谢艺平.基于超融合架构的虚拟云桌面系统设计及应用[J].电脑与信息技术,2022,30(2):30-32.

[4] 吉承文,马超,张铁钢,等.基于微服务与容器的海南电网数据中心云平台应用研讨[J].数字通信世界,2020(12):172-173,184.

[5] 张宁雨,潘艳红,王泊涵,等.一种基于国产服务器的轻量化的超融合云平台设计[J].信息技术与信息化,2020(12):59-62.

[6] 艾如鹏.基于Openstack的超融合平台的研究与实现[D].广州:华南理工大学,2017.

收稿日期:2022-03-26

作者简介:刘勋(1983—),男,广西桂林人,工程师,硕士,研究方向为软件架构设计、软件系统开发。