应用在不断迭代过程中,需要持续集成(CI)和持续部署(CD)。通过自动化的构建集成、测试和循环部署,实现快速交付高质量产品并降低人力成本。本文介绍使用云效2020完成应用的持续集成和部署。
前提条件
- 开通云效2020。
- 在EDAS控制台已部署应用。具体操作,请参见在容器服务K8s集群中使用JAR包或WAR包部署应用。
- 已将业务代码上传至代码库。
背景信息
使用云效2020实现应用的持续集成和部署,根据您期望的部署环境不同,有以下两种场景:
- 部署到EDAS ECS环境:只能使用JAR包或者WAR包构建、部署。相关文档,请参见使用云效2020部署Java应用至ECS集群。
- 部署到EDAS K8s环境:只能使用镜像构建、部署。
说明 根据不同应用类型,在EDAS K8s环境上,包含JAR包、WAR包和镜像3种部署应用的方式。在云效2020侧持续集成和部署应用到EDAS K8s环境时,只能以镜像方式构建和部署。
使用云效2020实现应用的持续集成和部署,您只需要将开发好的新版本应用代码提交到代码库,云效流水线Flow会监听代码事件,当满足触发事件时会触发流水线运行,部署新版本应用到EDAS K8s环境。
代码开发与提交一般由开发人员执行,本文不做介绍。本文仅介绍在云效流水线Flow侧如何创建流水线,并配置代码源、镜像仓库、部署对象和发布策略等操作流程。
步骤一:在云效创建企业
如果您是第一次使用云效Flow,则需要在云效上创建您的企业。
- 登录云效Flow。
- 设置企业、组织或团队名称并选择使用规模,单击完成创建。
步骤二:在云效创建流水线
- 登录云效Flow。
- 在左侧导航栏,单击我的流水线,然后单击右上角的新建流水线。
- 在选择流水线模板对话框,在左侧单击Java,在右侧选择Java · 镜像构建,发布到EDAS Kubernetes,然后单击创建。
重要 在EDAS控制台创建应用时使用的部署方式(JAR、WAR和镜像),必须与在云效流水线设置保持一致。例如:在EDAS上使用镜像方式部署应用,那么在云效设置流水线时,构建环节必须是镜像相关配置。流水线创建完成后,自动跳转到流水线配置页面。
步骤三:配置流水线
- 添加代码源。
- Docker镜像构建。
- 部署到EDAS K8s环境。
步骤四:代码库配置Webhook
在代码库添加云效流水线Flow的代码源触发功能生成的Webhook地址,云效流水线Flow会监听代码事件,当满足触发事件时会触发流水线运行。
本文使用Codeup作为代码库,在代码库配置Webhook的步骤仅作参考,其他代码库请以实际为准。
- 登录阿里云Codeup控制台,单击目标项目。
- 在左侧导航栏,单击设置。
- 在设置左侧导航栏,单击Webhooks。
- 在Webhooks页面,设置Webhook地址并选中推送事件,然后单击确定。
结果验证
- 开发者上传应用新版本代码到代码库。
- 云效流水线Flow监听代码事件,当满足触发事件时会触发流水线运行。
如果流水线配置了分批发布,那么在构建任务运行成功后,您可在部署任务的区域执行以下操作。
- 终止变更:可终止本次流水线的运行。
- 恢复变更:可继续下一批的发布。
- 当前发布单详情地址:可跳转到EDAS控制台查看变更详情。
- 日志:可查看流水线的运行日志。
- 第一批发布完成后,您可以先验证新版本应用。验证无误后,单击恢复变更,继续下一批次的发布。
您也可以单击 当前发布单详情地址,在EDAS控制台的 变更记录页面单击 开始下一批,继续下一批次的发布。
EDAS容器服务K8s和Serverless K8s交流群
如果您在EDAS中使用容器服务K8s集群和Serverless K8s集群过程中有任何疑问或建议,请使用钉钉搜索钉钉群号23197114加入钉钉群进行反馈。