杜磊 王竞争 穆启鹏

摘要:该文为解决异构国产CPU环境下应用统一适配、构建、分发的难题,基于容器云平台研究应用统一构建系统。旨在消除应用适配不同架构CPU、操作系统的复杂性,提供基于异构国产CPU的统一构建系统,实现异构国产CPU环境中应用的自动适配和分发,使得应用不再需要关注具体的物理运行环境,降低异构计算成本,提高资源利用率,提升应用自主可控适配的合理性和便捷性,覆盖所有主流国产CPU和国产操作系统,促进国产云应用生态建设。

关键词:容器;异构;国产适配;应用构建

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

文章编号:1009-3044(2021)31-0004-03

Research on Unified Construction System for Container Applications Based on Heterogeneous Domestic CPUs

DU Lei, WANG Jing-zheng, MU Qi-peng

(CETC Cloud, Beijing 100071, China)

Abstract: In order to solve the problem of unified adaptation, construction, and distribution of applications in a heterogeneous domestic CPU environment, this paper builds a system based on the research and application of the container cloud platform. It aims to eliminate the complexity of adapting applications to different architectures of CPUs and operating systems, provide a unified construction system based on heterogeneous domestic CPUs, and realize automatic adaptation and distribution of applications in heterogeneous domestic CPU environments so that applications no longer need to pay attention to specific The physical operating environment reduces the cost of heterogeneous computing, improves resource utilization, improves the rationality and convenience of independent and controllable adaptation of applications, covers all mainstream domestic CPUs and domestic operating systems, and promotes the ecological construction of domestic cloud applications.

Key words: container; heterogeneous; domestic adaptation; application construction

1 背景

在国产CPU发展战略和自主可控政策引导下,以申威、飞腾、龙芯、鲲鹏、海光等主流国产CPU产业快速发展,并有了巨大突破和进步,但是各家国产CPU架构和指令集的选择仍有不同,出现多种技术路线和异构的局面。在当前国家和军队自主建设时期,国家和军队资源环境中存在异构国产CPU并存的情形。实现异构国产CPU资源整合管理和业务应用统一构建,使得用户无需关注底层硬件并专注于业务应用的需求变得日益迫切[1]。

在基于国产CPU的虚拟化研究中,以OpenStack+KVM为代表的虚拟化技术存在明显的性能瓶颈[2],容器作为新型虚拟化技术,因其轻便快捷优势而成为大多数厂商国产虚拟化技术栈的选项,为用户提供应用构建、发布和应用的平台,然而应用厂商需要适配不同CPU架构和不同的操作系统,不同CPU架构和操作系统环境极大地增加了适配的难度,需研究一种应用统一构建系统,实现应用自动适配和分发,消除底层硬件的限制[3]。

2 系统模块

本研究提供了一种,基于容器云平台实现的应用统一构建系统,纳管多个不同架构的CPU服务器资源,系统结构如图1所示。

源码构建模块,用于在上传至容器云平台的应用程序文件为源代码的情况下,获取源代码的来源和分支,根据源代码的来源和分支获取应用的源代码;

二进制构建模块,用于从容器云平台中封装的应用所需运行环境选择应用对应的基础容器镜像,对应用的源代码中需要二进制编译的文件进行二进制编译,得到二进制文件[4];

镜像构建模块,用于在需要编译得到二进制文件的情况下,基于源代码、基础容器镜像及二进制文件编写镜像构建配置文件,在无需编译得到二进制文件的情况下,基于源代码和基础容器镜像编写镜像构建配置文件,还可基于对应的基础容器镜像和存储对象编写镜像构建配置文件,镜像构建后,提供将应用镜像存储至所述容器云平台连接的镜像仓库的能力;

存储对象模块,用于在上传至容器云平台的应用程序文件为安装包的情况下,将安装包进行导入,作为存储对象;

应用分发模块,用于根据应用的包含CPU架构信息的分发配置将所述镜像仓库中的应用镜像在所述容器云平台上进行分发,以利用相应架构的CPU服务器资源运行应用。

3 实现方案

本研究基于异构国产CPU硬件环境利用容器技术搭建统一构建系统,纳管所有主流国产CPU服务器资源,打造统一虚拟化资源池,提供应用构建环境,实现源代码仓库、构建二进制文件、构建镜像、部署应用、获取存储对象等过程,打通应用代码到应用适配分发的自动化构建流程,自动构建过程依赖的组件会在统一构建系统中完成异构国产CPU的自动适配,在应用分发过程中便不涉及底层CPU硬件依赖,并且可以为用户提供不同架构的应用适配选项,更加灵活和便捷的实现容器应用基于异构国产CPU的适配和分发。技术实现路径如图2所示。

3.1 异构国产CPU资源纳管

针对异构国产CPU硬件环境,使用容器技术实现不同CPU架构的服务器计算资源虚拟化,搭建异构国产CPU容器云平台,纳管所有架构服务器主机资源,封装应用所需的运行环境。统一构建系统服务由认证代理、API接口服务、集群控制器、存储节点、集群代理服务组成,除了集群代理服务以外,其他都部署在平台主服务镜像中,对于异构国产CPU环境,只需要部署一种架构的主服务管理集群,其他架构作为下游集群部署集群代理服务,用户对统一构建系统发出指令通过认证代理服务认证后下发到系统主服务,同时数据备份到存储节点,指令传递给集群控制器,集群控制器把指令传递到下游集群的代理服务,实现管理集群和下游集群的信息交互和通信,达到异构国产CPU资源统一纳管的效果。

3.2 统一构建系统搭建

借助持续集成持续部署和流水线的思想,定义任务、任务运行、流水线、流水线运行、流水线资源等对象,初始化两个控制器:流水线运行控制器和任务运行控制器。流水线运行控制器监听流水线运行对象的变化,将流水线中所有的任务构建为一张有向无环图,通过遍历有向无环图找到当前可被调度的任务节点创建对应的任务运行对象;任务运行控制器监听任务运行对象的变化,将任务运行和对应任务转化为可执行的容器,由容器云平台调度执行,通过上述定义的对象和逻辑的抽象和组合,形成统一构建系统,具备源代码仓库、二进制构建、镜像构建、应用部署、存储对象等能力,并且统一构建系统所需的组件基于容器云平台实现,对底层CPU没有依赖性,能够较为轻易地实现不同架构的兼容性适配。

3.3 应用自动适配和分发

基于统一构建系统的源代码仓库、二进制构建、镜像构建、应用分发、存储对象等能力,将应用代码或安装包上传后,能够在应用构建过程中自动实现国产CPU兼容性适配并正常运行。应用通过源代码和安装包的方式上传后,将应用构建需要的源代码仓库、二进制构建、镜像构建、应用分发、存储对象等过程配置好便可运行应用构建流水线。

通过应用源代码上传后,应用构建系统中的源码构建任务会获取源代码来源和分支,源码构建后选择对应的基础容器镜像通过编译脚本构建应用所需的二进制文件,可选java、tomcat、golang或自定义等基础镜像,基于源码、基础镜像和编译的二进制文件编写镜像构建配置文件来自动构建应用镜像,并存储到镜像仓库,应用构建若有外部存储对象要导入可以添加文件到目标目录,基于应用镜像配置部署名称、端口、副本数、环境变量等便可实现应用在容器云平台上的分发,实现应用源代码-二进制构建-镜像构建-存储对象导入-应用分发过程。

通过应用安装包上传后,可作为存储对象导入,借助平台基础镜像,编写镜像构建配置文件直接构建应用镜像,并存储到镜像仓库,基于应用镜像配置部署名称、端口、副本数、环境变量等便可实现应用在容器云平台上的分发,实现应用安装包-存储对象-镜像构建-应用分发过程。

4 实现流程

基于异构国产CPU的容器应用统一构建流程如图3所示,在上传至容器云平台的应用程序文件为源代码的情况下,获取源代码的来源和分支,根据源代码的来源和分支获取应用的源代码,从容器云平台中封装的应用所需运行环境选择应用对应的基础容器镜像,基于源代码、基础容器镜像及二进制文件编写镜像构建配置文件,或基于应用对应的基础容器镜像和存储对象编写镜像构建配置文件,利用镜像构建配置文件构建应用镜像,并将应用镜像存储至所述容器云平台连接的镜像仓库,根据应用的包含CPU架构信息的分发配置将所述镜像仓库中的应用镜像在所述容器云平台上进行分发,以利用相应架构的CPU服务器资源运行应用。

5 结束语

本研究打破应用基于异构国产CPU的适配瓶颈,利用移植性较强的容器技术搭建异构国产统一构建系统,采用持续集成持续部署的理念打通应用适配和分发的流程,使得应用自动部署在异构国产化物理环境,底层运行环境对应用透明化,消除应用对于底层CPU的依赖。基于异构国产CPU搭建容器应用统一构建系统,使得需要运行在异构国产CPU上的应用能够无差别自动适配和分发,并能够提供应用基于不同架构的选项,降低异构计算成本,提高资源利用率[5],提升应用自主可控适配的合理性和便捷性,覆盖所有主流国产CPU和国产操作系统,促进国产云应用生态建设。

参考文献:

[1] 徐博贤.国产异构跨平台开发环境研究[D].石家庄:石家庄铁道大学,2019.

[2] 许健,杨飞,陈娜,等.一种面向国产平台的容器跨异构集群重构方法:CN110851237A[P].2020-02-28.

[3] 曾志平,萧海东,张新鹏.基于国产X86处理器的异构计算平台构建及敏感数据保护[J].计算机科学,2015,42(S2):317-322.

[4] 刘晓楠.面向国产处理器的二进制翻译关键技术研究[D].郑州:解放军信息工程大学,2014.

[5] 张峰,翟季冬,陈政,等.面向异构融合处理器的性能分析、优化及应用综述[J].软件学报,2020,31(8):2603-2624.

【通联编辑:谢媛媛】

收稿日期:2021-06-20

基金项目:国家重点研发计划项目:私有云环境下服务化智能办公系统平台(项目编号:2018YFB1004101)

作者简介:杜磊(1993—),男,山西人,工程师,硕士,研究方向为云计算与大数据;王竞争(1988—),男,河南人,工程师,硕士,研究方向为云计算与大数据;穆启鹏(1992—),男,北京人,助理工程师,硕士,研究方向为云计算与大数据。