基于云原生的持续交付构建服务平台探索与实践.pdf
《基于云原生的持续交付构建服务平台探索与实践.pdf》由会员分享,可在线阅读,更多相关《基于云原生的持续交付构建服务平台探索与实践.pdf(4页珍藏版)》请在咨信网上搜索。
1、29视角Viewpoint2023.08 中国金融电脑基于云原生的持续交付构建服务平台探索与实践中国国际金融股份有限公司首席信息官 程龙中国国际金融股份有限公司信息技术部执行总经理 叶明登中国国际金融股份有限公司信息技术部 任党恩 王如迅 冯赫随着金融数字化转型的持续深入,团队规模扩大引发了构建资源紧张、构建需要排队等诸多问题。Jenkins作为 DevOps 平台的典型构建工具,通过灵活地进行代码编译、打包、部署,可高效支持多种类型的构建或持续集成。根据 Slave 节点不同的生成方式,可分为静态构建和动态构建两种模式。其中,动态构建是指基于Kubernetes 的弹性工作负载机制,当构建任
2、务被触发时,由 Jenkins Master 临时从 K8S 集群中实例化工作节点,并在容器化的 Pod 中执行构建动作。然而,在代码编译过程中,当一个模块发生编译,往往会造成其他模块跟着一起重新编译,从而浪费大量的构建时间。对此,中国国际金融股份有限公司(以下简称“中金公司”)设计研发了一种基于云原生技术的持续交付构建服务平台,旨在为金融机构进一步节省构建资源、保证构建环境纯净、提高构建效率探索出一条可行路径,以助力金融机构更好实现高质量发展。中国国际金融股份有限公司首席信息官 程龙30FINANCIAL COMPUTER OF CHINAVIEWPOINT视角一、动态构建技术难点问题分析当
3、 前,Jenkins 针 对 构 建 后 的 Pod Retention 主 要有 Never、Always、Default、On failure 等四种保留策略。其中,Never 表示构建后删除构建节点;Always 表示构建后保留构建节点;Default 表示使用保留时间设置;On failure 表示当构建失败时保留节点,其他情况删除节点。具体而言,如果设置为 Never,则删除后下次构建仍需消耗一定的时间,不具备构建后立即重建的能力,多次的快速点击容易导致构建失败;如果设置为 Always,则构建后不删除节点;如果设置为 On failure,即是指构建失败时保留节点,构建成功则删除节
4、点;如果设置为 Default,则是指在设置代理的空闲存活时间内可以保留节点,但易导致构建环境不够纯净,如不同构建任务下载的 Jar 包可能存在冲突或者修改了网络代理,两者都会导致构建失败。现阶段,Jenkins 动态构建主要存在以下问题:一是每次创建 Pod,即便经过参数优化提高产生 Jenkins Slave 的速度,也需要消耗一定时间;二是构建过程不能排队,针对同一任务的连续快速构建容易失效;三是当动态构建设置为Default 时,设置保留时间虽然可以解决构建的连续性问题,但是构建环境并非纯净,且缺少删除 Pod 后自动重建的能力;四是动态构建的 JNLP 镜像不支持修改自身 Agent
5、 的标签,即如果完成构建后对 Agent 赋予新的标签,Jenkins Kubenetes 插件通常不支持该操作。此外,如果在 JNLP 镜像中增加构建后删除 Pod 的操作,也易导致 JNLP 断开连接而使 Jenkins构建失败,并影响整个 Jenkins 的构建结果。简言之,即当前的动态构建技术不具备构建后打新标签以及删除Pod 的能力。二、基于云原生的持续交付构建服务平台建设思路为解决现有动态构建技术存在的问题,中金公司基于云原生技术,创新推出了持续交付构建服务平台,其功能主要包括动态构建资源管理和构建加速两部分(如图 1 所示)。在此模式下,用户可以通过 Web 端执行构建任务请求,
6、并使用资源池中的执行机进行构建。其中,动态构建资源管理器可调用 Jenkins Master 集群中的Jenkins API,以及 Kubernetes 平台中的 Kubernetes API server 来创建和管理资源池,并将 Jenkins 和 Kubernetes的配置信息存储于数据库中,包括 Jenkins Master 信息、标签名称、Slave 前缀名称、资源池 Pod 的最大个数、动态构建资源管理器Jenkins Master集群资源池持久化数据卷Jenkins API构建加速服务本地缓存增量构建远程缓存构建产物AgentPod1AgentPod2AgentPodN负载均衡数
7、据库KubernetesAPI serverKubernetes 平台发起构建任务生成和管理调用使用调用日志平台监控平台Web 端图 1 持续交付构建服务平台架构31视角Viewpoint2023.08 中国金融电脑资源池最少空闲的 Pod 个数、创建 Agent Pod 的配置信息等。1.动态构建资源管理器应用设计动态构建资源管理器主要通过调用服务来创建和管理资源池。具体而言,动态构建资源管理器是一个微服务应用,通过数据库配置 Jenkins、K8S 集群、构建资源模板、资源规模、维护策略等相关信息与 Jenkins 和K8S 集成,并以此来创建和管理动态构建资源。动态构建资源是一组 K8S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 原生 持续 交付 构建 服务 平台 探索 实践
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。