CI/CD 概述,基于云效进行持续集成 CI 和持续部署 CD(K8s)
CI/CD 概述,基于云效进行持续集成 CI 和持续部署 CD(K8s),在应用在不断迭代过程中,需要持续集成(CI)和持续部署(CD)。EDAS 支持通过 Jenkins 和云效对您部署的应用进行 CI/CD。
使用 Jenkins 进行持续集成和部署
Jenkins 是一个开源工具,帮助您持续、自动的构建和测试软件项目、监控外部任务的运行。
您可以使用 GitLab 托管您的代码,然后使用 Jenkins 实现 EDAS 应用的持续集成。更多信息,请参见使用Jenkins创建持续集成。
在 Jenkins 环境中集成了 edas-jenkins-plugin 插件,您可以使用该插件在 Jenkins 内快速完成应用持续部署到 EDAS。更多信息,请参见在Jenkins中使用EDAS插件构建应用部署的任务。
使用云效进行持续集成和部署
阿里云云效是云原生时代新 DevOps 平台。我们可以使用阿里云云效中的云效流水线 Flow 以完成应用的持续集成和部署,云效流水线 Flow 提供了灵活易用的持续集成、持续验证和持续发布功能。
您可以将代码上传到云效流水线 Flow 支持的代码库,然后使用云效流水线 Flow 完成应用的持续集成和部署。更多信息,请参见使用云效2020进行持续集成和部署(K8s)。
应用在不断迭代过程中,需要持续集成(CI)和持续部署(CD),通过自动化的构建集成、测试和循环部署,实现快速交付高质量产品并降低人力成本。本文介绍使用云效完成应用的持续集成和部署。
前提条件
在 EDAS 控制台已经部署应用,具体操作步骤,请参见在容器服务K8s集群中使用JAR包或WAR包部署应用。
将业务代码上传至代码库。云效支持的代码库,请参见代码源。业务代码中须包含应用的 Dockerfile 文件,具体制作步骤,请参见构建仓库与镜像。
背景信息
使用云效 2020 实现应用的持续集成和部署,根据您期望的部署环境不同,有以下两种场景:
部署到 EDAS ECS 环境:只能使用 JAR 包或者 WAR 包构建、部署。示例文档,请参见使用云效2020部署Java应用至ECS集群。
部署到 EDAS K8s 环境:只能使用镜像构建、部署。
说明 在 EDAS K8s 环境部署应用时,根据不同应用类型,包含 JAR 包、WAR 包和镜像 3 种部署方式;在云效 2020 侧持续集成和部署应用到 EDAS K8s 环境时,只能以镜像方式构建和部署。
使用云效 2020 实现应用的持续集成和部署,您只需要将开发好的新版本应用代码提交到代码库,云效流水线 Flow 会监听代码事件,当满足触发事件时会触发流水线运行,部署新版本应用到 EDAS K8s 环境。
代码开发与提交一般由开发人员执行,本文不做介绍,本文仅介绍在云效流水线 Flow 侧如何创建流水线,并配置代码源、镜像仓库、部署对象和发布策略等操作流程。
步骤一:在云效创建企业
如果您是第一次使用云效Flow,则需要在云效上创建您的企业。
1、登录云效Flow。
2、设置企业、组织或团队名称并选择使用规模,单击完成创建。
步骤二:在云效创建流水线
1、登录云效Flow。
2、在左侧导航栏,单击我的流水线,然后单击右上角的新建流水线。
3、在选择流水线模板对话框,在左侧单击 Java,在右侧选择 Java · 镜像构建,发布到 EDAS Kubernetes,然后单击创建。
注意:
在 EDAS 控制台创建应用时使用的部署方式(JAR、WAR 和镜像),必须与在云效流水线设置保持一致。例如:在 EDAS 上使用镜像方式部署应用,那么在云效设置流水线时,构建环节必须是镜像相关配置。
流水线创建完成后,自动跳转到流水线配置页面。
步骤三:配置流水线
1、添加代码源
在流水线的源区域,单击添加代码源。
在添加流水线源面板,配置流水线源相关信息,然后单击添加。
2、云效中提供的流水线源有 3 种:代码源、Jenkins 和 Flow 流水线。本文以代码源作为示例。
Docker 镜像构建
1、在流水线的构建区域,单击 Docker 镜像构建,然后展开任务步骤镜像构建并推送阿里云。
2、配置任务步骤参数,配置完成后在页面右上角单击保存并运行。
部署到 EDAS K8s 环境
1、在部署区域,单击部署到 EDAS K8s。
2、在编辑面板配置任务信息,然后单击右上角保存并运行。
步骤四:代码库配置 Webhook
在代码库添加云效流水线 Flow 的代码源触发功能生成的 Webhook 地址,云效流水线 Flow 会监听代码事件,当满足触发事件时会触发流水线运行。
本文使用阿里云 Code 作为代码库,在代码库配置 Webhook 的步骤仅作参考,其他代码库请以实际为准。
登录阿里云 Code,单击目标项目。
在左侧导航栏单击设置。
在左侧导航栏单击 WebHooks。
在 WebHooks 页面,设置 Webhook 地址并选中推送事件,然后单击增加 WEBHOOKS。
结果验证
1、开发者上传应用新版本代码到代码库。
2、云效流水线 Flow 监听代码事件,当满足触发事件时会触发流水线运行。
在本示例流水线中配置了分批发布。故在构建任务运行成功后,您可在部署任务的区域执行以下操作:
终止变更:可终止本次流水线的运行。
恢复变更:可继续下一批的发布。
当前发布单详情地址:可跳转到 EDAS 控制台查看变更详情。
日志:可查看流水线的运行日志。
3、第一批发布完成后,您可以先验证新版本应用。验证无误后,单击恢复变更,继续下一批次的发布。
您也可以单击 当前发布单详情地址,在 EDAS 控制台的 变更记录页面单击 开始下一批,继续下一批次的发布。
EDAS 容器服务 K8s 和 Serverless K8s 交流群
如果您在 EDAS 中使用容器服务 K8s 集群和 Serverless K8s 集群过程中有任何疑问或建议,请提交工单,或使用钉钉扫描下面的二维码或搜索钉钉群号23197114
加入钉钉群进行反馈。
关于我们
了解更多关于云效 DevOps 的最新动态,可微信搜索关注【云效】公众号;
彩蛋:公众号后台回复【指南】,可获得《阿里巴巴 DevOps 实践指南》&《10 倍研发效能提升案例集》;
看完觉得对您有所帮助别忘记点赞、收藏和关注呦
版权声明: 本文为 InfoQ 作者【阿里云云效】的原创文章。
原文链接:【http://xie.infoq.cn/article/7eb36d4897f811cbb02282d46】。文章转载请联系作者。
评论