5大支撑能力,6大系统优势!解读龙蜥场景化镜像平台技术

简介: 镜像制作平台在 AI 镜像制作上、普通的制作上都是具有非常大的优势。

编者按:在 2023 龙蜥操作系统大会阿里云分论坛上,龙蜥社区基础设施 SIG Maintainer 单凯伦镜像平台、CI/CD全流程、镜像支持等方向解读了关于统一镜像制作在技术层面架构和优势,以及带开发者一起了解在龙蜥社区如何制作镜像。以下为演讲全文:


(图/龙蜥社区基础设施 SIG Maintainer 单凯伦)  


镜像平台

场景化镜像平台是龙蜥社区推出的统一镜像制作平台,提供容器镜像、虚拟机镜像的 CI、CD 全流程支持,整个平台分为镜像制品、制品中心两个模块。镜像制品向用户开放社区已发布的镜像,用户在镜像制品中可查看镜像描述、镜像下载等;制品中心展示镜像 CI/CD 流程,在 Pipeline 流水线中可追溯构建、测试、安全扫描、发布等每一步流程。下图左边展示的是镜像制品,在图中可以看到龙蜥社区目前已发布的镜像,包括 base 类、应用类、语言类、AI 类等,右边展示的是镜像制作过程中的流水线信息,包括构建、测试、发布、安全扫描。


镜像平台地址:https://cr.openanolis.cn



接下来介绍镜像平台的整体系统架构,分为统一镜像集成框架、镜像制作调度系统、镜像用户页面三大部分。



统一镜像集成框架主要做镜像的分类管理,包括版本规则定义、镜像构建参数定义、批量构建管理、测试定义、以及自助工具等。镜像制作调度系统主要负责构建触发,触发方式分为 pr webhook 自动触发和手动按需触发,包括版本参数解析、镜像版本管理、pipeline 任务流水线、镜像发布系统、以及sdk 的交互。镜像 CI/CD 流程是用 ABS 来做镜像的构建,用 T-One 来做镜像的测试,镜像平台还建立了安全卡点,比如镜像安全扫描、镜像签名、sbom 等,镜像发布系统来做镜像的发布,发布系统主要包括 registry 管理、镜像分发等。然后容器镜像用户界面主要是提供 CI/CD 的可视化管理。


镜像平台的 5 大支撑能力:

1. 以AI 镜像为代表批量更新需求,包括通用镜像的 baseos 版本升级引入的批量更新需求。

2. 镜像依赖的环境版本变化,比如镜像依赖的 Python 版本、cuda 版本等带来的批量按需更新需求。

3. 提供镜像制作过程中的可信保证,包括镜像漏洞扫描、镜像签名、sbom 等。

4. 开源、闭源镜像构建,制作平台不仅支持 Anolis OS 开源镜像制作,也支持 Alibaba Cloud Linux 闭源镜像的制作。

5. 多来源仓库统一集成,支持 gitee、github等。


镜像平台的核心配置分为 version.yml、buildspec.yml,version.yml 主要是用来做应用的版本依赖管理,buildspec.yml 用来做镜像的构建、测试、发布配置等。



上图左边是 version.yml 的示例,在这个yml文件中我们主要定义了一个名为 grafana 的镜像,版本为 7.5.11, 依赖的 baseos 版本为 Anolis OS 8.6 和 Anolis OS 8.8,右边是 buildspec.yml 的示例,可以看到最上面定义了一些基本的变量,NAME 、VERSION 、IMAGE_TYPE、BASEOS_VEISION,中间定义了镜像的仓库信息配置,有 dockerhub 、ACR 两个发布的仓库地址,最下面 images 主要用来做镜像的构建参数配置、测试信息配置、镜像分发配置等,比如 platform 参数定义了一个镜像需要在哪几个架构上进行构建,默认构建 x86 和 Arm 两个架构,region 参数用于选择构建机器的地域,比如有些 dockerhub 仓库由于网络原因选择中国香港地域的构建机器可以为构建增速,下面就是指定 dockerfile 的路径,scene 字段下的 args 用来配置传递给 dockerfile 的参数,tags 用来指定镜像需要发布的tag 名,registry 用来配置镜像需要发布的地域。


镜像平台的 6 大优势

1. 全流程制作,整个镜像的制作过程包括构建、测试、发布等都是自动化进行。

2. 通用型支持,支持镜像的多架构构建、多类型容器镜像构建,比如应用类、语言类、base 类、AI 类等。

3. 安全可信,提供镜像安全扫描、镜像签名、sbom信息等。

4. 一键多发仓库,镜像发布可由管理员一键发布到多个镜像仓库。

5. 自定义测试,根据不同等级的镜像提供不同的测试能力,节省测试成本,保障测试质量。

6. 按需更新,具备自动化批量更新和按需更新能力比如 baseos 升级带来的镜像批量更新等。

CI/CD全流程


场景化镜像提供容器镜像、虚拟机镜像的 CI、CD 全流程,包括镜像仓库提 PR 自动化触发 ABS 镜像构建,构建成功后自动触发 T-One 测试,然后进行安全卡点的设置,最后会把镜像分发到各个镜像仓库。镜像仓库支持 gitee、github 两大来源仓库,以及闭源的 code 平台仓库。ABS 主要做任务调度、支持批量构建、多架构构建、多地域构建、API 服务,T-One 主要做通用测试、AI 测试、容器测试、虚拟机测试、以及自定义测试,安全卡点支持镜像安全扫描、镜像签名、sbom,镜像分发支持一键分发到多大镜像仓库。



仓库配置是怎么定义的?镜像仓库支持主仓库、分仓库的配置,只有配置的镜像仓库允许接收仓库 PR 回调并触发构建、测试、及发布流程,镜像仓库支持 gitee github code 三大平台,其中 gitee github 为 Anolis OS 开源仓库,code 为 Alinux 闭源仓库。



ABS 是龙蜥社区推出的官方构建平台,提供基于 Anolis OS 发行版的构建服务,可以构建出基于龙蜥操作系统的软件包和镜像。上图左侧是 ABS 的截图,ABS 每天都会进行上千次构建,右侧是 ABS 在镜像构建上的支撑能力,可同时支持上百个镜像同时构建,并且一个 dockerfile 文件可同时构建出多种架构镜像,也支持构建机器地域选择,为构建增速。



T-One 是一站式、全场景的质量协作平台,用来解决大型软件各类的测试问题。龙蜥社区全部基于 T-One 来做各类测试,在社区建立测试标准的同时,也帮助合作方解决他们面临的同样测试问题,尤其是基于 T-One 建立的社区“众测共创”模式,解决了开源项目松散的开发模式和商业化产品高质量需求之间的巨大鸿沟,统一平台、统一标准、共同打造开源模式、商业化品质的龙蜥操作系统发行版。场景化镜像平台使用 T-One 做自动化并发测试,大大提升了测试效率和准确性。上图右侧是 T-One 的整体系统架构,最底层是测试机器池的配置,可以配置 ECS 弹性机器,固定机器、RunC、RunD 、神龙架构的机器;往上是 tone runner 的执行调度引擎,这里每天调度上万个测试并发任务;再往上是 T-One 的管理平台,在管理平台上可以创建 workspace ,在 workspace 中可添加机器,手动创建 job 等;最上层是 Testfarm,它是 T-One 的信息披漏平台,在 T-One 上产生的各类测试数据,测试报告等都会在此平台上进行批漏。



镜像平台提供安全扫描,镜像签名、SBOM,安全扫描目前支持两种扫描方式,开源扫描引擎和云安全扫描引擎,其中开源扫描引擎对镜像单层大小限制在 3G,对部分系统漏洞和应用漏洞不支持漏洞文件位置检查,云安全扫描引擎没有镜像大小限制,且支持系统漏洞,应用漏洞,基线检查,恶意样本检测,对于系统漏洞还提供一键修复能力。上图左边列出了镜像扫描结果镜像平台还提供镜像签名,保障镜像从分发到部署全链路的一致性,避免中间人攻击和非法镜像的更新及运行,除此以外还提供 SBOM 镜像物料清单,提供镜像的透明性,风险管理,快速漏洞响应,合规检查等能力。



镜像发布具备 registry 管理,镜像分发能力。右上角图中构建流水线上展示了整个的构建、测试、安全卡点、发布全流程,左侧是发布结果,详情展示出了镜像 tag 、registry 、发布时间、发布状态等信息,右下角是镜像平台的已发布的镜像制品,发布完的镜像都会在这里展示并提供给用户下载。


镜像支持

通过 AI 镜像的制作实例,介绍它从提交 PR 到最终 PR 合入,经历了哪些流程。


镜像制作平台在 AI 镜像制作上、普通的制作上都是具有非常大的优势。第一,在镜像仓库上提交 PR,提交完 PR 会进行解析 PR,并提示需要构建哪些镜像以及询问是否需要构建操作,如果需要构建会触发下一步;第二步 ABS 构建,构建成功后,会将结果返回到流水线上;第三步使用 T-One 进行整体的镜像测试,包括 AI 测试,测试后将测试结果返回到统一镜像平台上做结果的呈现;第四步安全卡点接入安全扫描信息;第五步是镜像发布,这里可以看镜像制品的详情页,在详情页里可以看到当前镜像的下载地址、版本信息、制品描述,都描述得很清楚,需要哪一个版本直接下载使用;最后是 PR 合入,镜像发布完后,PR 也会随时合入到仓库。至此,整个流程就制作完成。


精彩视频回放、课件获取:

2023 龙蜥操作系统大会直播回放及技术 PPT上线啦,欢迎点击下方链接观看~

回放链接:https://openanolis.cn/openanolisconference

技术 PPT :关注龙蜥公众号【OpenAnolis 龙蜥】,回复“龙蜥课件”获取。

—— 完 ——

相关实践学习
通过workbench远程登录ECS,快速搭建Docker环境
本教程指导用户体验通过workbench远程登录ECS,完成搭建Docker环境的快速搭建,并使用Docker部署一个Nginx服务。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
4月前
|
人工智能 供应链 安全
群擎并举,众芯共魂,龙蜥重磅首发下一代操作系统“1+3”能力模型
龙蜥重磅首发下一代操作系统“1+3”能力模型,打造三位一体拥抱智算的国产操作系统。
|
12月前
|
存储 Cloud Native 虚拟化
超融合产品集成 Kata 虚拟化容器技术的方案演进 | 龙蜥技术
识别云原生现有方案在超融合环境下技术缺陷。
|
12月前
|
弹性计算 Dragonfly 运维
带你读《2022龙蜥社区全景白皮书》——6.2.4 龙蜥社区助力阿里云Sev erless容器产品获得出色的弹性产品能力
带你读《2022龙蜥社区全景白皮书》——6.2.4 龙蜥社区助力阿里云Sev erless容器产品获得出色的弹性产品能力
278 1
|
12月前
|
存储 负载均衡 Linux
《2022龙蜥操作系统生态用户实践精选》——金融——某大型保险企业
《2022龙蜥操作系统生态用户实践精选》——金融——某大型保险企业
88 0
|
12月前
|
安全 Java 测试技术
《2022龙蜥操作系统生态用户实践精选》——金融——某大型证券公司
《2022龙蜥操作系统生态用户实践精选》——金融——某大型证券公司
123 0
|
12月前
|
供应链 安全 前端开发
《2022龙蜥操作系统生态用户实践精选》——交通——某供应链服务平台
《2022龙蜥操作系统生态用户实践精选》——交通——某供应链服务平台
76 0
|
12月前
|
人工智能 中间件 大数据
《2022龙蜥操作系统生态用户实践精选》——电信——某运营商业务平台
《2022龙蜥操作系统生态用户实践精选》——电信——某运营商业务平台
92 0
|
边缘计算 运维 测试技术
龙蜥开发者说:亲历从基础设施构建到系统质量保障,龙蜥未来可期 | 第 19 期
我们针对龙蜥 OS 发行版不断完善整体测试方案,力争既有通用的、可推广的部分,又有对特定版本的定制部分。

热门文章

最新文章