用华为 CodeArts 搞 DevOps!团队协作搭流水线,端到端支持软件交付
本案例通过团队协作实践,完整演示了如何运用CodeArts实现编译构建、部署,及自定义编排开发流水线,帮助团队成员掌握敏捷开发中的协作方法与工具使用。
1 概述
1.1 背景介绍
DevOps 是一种结合开发(Development)和运维(Operations)的软件开发和运维实践,旨在通过自动化、协作和持续改进,缩短开发周期,提高交付效率和质量。
软件开发生产线(CodeArts)是华为云提供的一站式 DevOps 平台,即开即用,随时随地在云端交付软件全生命周期,覆盖需求下发、代码提交、代码检查、代码编译、验证、部署、发布,打通软件交付的完整路径,提供软件研发流程的端到端支持。CodeArts 作为华为云的 DevOps 平台,为企业提供了一套完整的工具链和实践方法,帮助企业快速实现 DevOps 落地,提升软件开发和运维的效率与质量。通过 CodeArts,企业可以构建自动化、协作化和持续改进的 DevOps 文化,适应快速变化的市场需求。
1.2 适用对象
- 企业
- 个人开发者
- 高校学生
1.3 案例时间
本案例总时长预计60分钟。
1.4 案例流程
说明:
① 登录开发者空间-云主机;
② 打开浏览器访问CodeArts,创建代码仓库、编译构建任务、部署任务和流水线;
③ CodeArts IDE本地拉取云上代码;
④ 修改代码后推送代码到云端仓库;
⑤ CodeArts IDE集成CodeArts Pipeline插件;
⑥ CodeArts IDE本地调用华为云云上流水线任务。
1.5 资源总览
本案例预计花费总计1.0638元。案例体验完成后,请及时释放资源,以免产生不必要的费用。
资源名称 | 规格 | 单价(元) | 时长(分钟) |
---|---|---|---|
开发者空间-云主机 | 2vCPUs | 4GB X86 Ubuntu 22.04 Server定制版 | 免费 | 60 |
软件开发生产线 CodeArts | 免费体验版 | 免费 | 60 |
虚拟私有云VPC | – | 免费 | 60 |
弹性云服务器 ECS | 通用计算增强型 | c6.large.4 | 2vCPUs | 8GiB | 1.0638/小时 | 60 |
体验完整案例请点这里👉️👉️👉️云端DevOps:实现持续交付生产线
2 实践准备
2.1 前序步骤
本案例主要介绍如何将软件的源代码编译成目标文件并部署到服务器,请先参考 团队协作:从需求到代码实现指南 案例的2.1和2.3章节完成CodeArts的购买及项目创建。
2.2 创建虚拟私有云VPC和安全组
配置ECS网络需要创建虚拟私有云VPC和安全组。
进入创建虚拟私有云页面,自定义输入名称(如:vpc-codearts)和子网名称(如:subnet-codearts),单击立即创建,完成虚拟私有云创建。
进入创建安全组页面,自定义输入名称(如:sg-codearts),预置规则选择通用web服务器,单击立即创建,完成安全组创建。
2.3 购买弹性云服务器 ECS
本案例需要将应用部署至弹性云服务器ECS,所以需要购买一台ECS。
进入购买弹性云服务器,按照如下规格自定义购买ECS:
注:购买时的参数配置参考下表,表中未列出的配置项可保持默认。
配置分类 | 配置项 | 配置建议 |
---|---|---|
基础配置 | 计费模式 | 按需计费。 |
CPU架构 | x86计算。 | |
规格 | 通用计算增强型 | c6.large.4 | 2vCPUs | 8GiB。 | |
镜像 | 公共镜像 | CentOS | CentOS 7.6 64bit(10GiB)。 | |
网络配置 | 虚拟私有云 | 步骤2.2中创建的vpc。 |
安全组 | 步骤2.2中创建的安全组。 | |
弹性公网IP | 现在购买。 | |
公网带宽 | 按带宽计费 | 5Mbit/s。 | |
高级配置 | 登录凭证 | 密码。 |
密码 | 自定义密码。 |
购买完成后返回弹性云服务器列表,在这里可以获取购买ECS的弹性公网IP。
2.4 获取项目代码
进入创建的CodeArts项目,单击导航代码 > 代码托管 > 新建仓库。
新建方式选择按模板新建,单击下一步。
使用Java Web Demo搜索模板,选择Java Web Demo,单击下一步。
说明:用该代码仓库模板创建代码仓库的同时,会自动创建构建任务、部署任务和流水线。
在基本信息页,自定义填写代码仓库名称(如:Java-Web-Demo),直接单击确定。
创建完成,如下图所示:
3 构建应用
CodeArts编译构建服务提供简易配置的混合语言构建平台,支持一键创建、配置和执行任务,实现代码获取、构建、打包自动化。
本章节介绍如何在CodeArts编译构建服务中构建应用。
3.1 查看构建任务
进入创建的CodeArts项目,单击导航持续交付 > 编译构建,在任务列表中可以看到,伴随代码仓库创建已经创建了一个构建任务Java-Web-Demo-build,可以单击其操作列的图标,在下拉菜单中选择编辑,进入该构建任务的编辑页面。
在构建任务编辑页,可以看到构建任务中的详细构建步骤,本案例中直接使用这些步骤,无需修改,直接单击取消,退出编辑。
4 部署应用
部署(CodeArts Deploy)提供可视化、一键式部署服务,支持部署到虚拟机或者容器,提供Tomcat、SpringBoot等模板或者自由组装编排原子步骤进行部署,支持并行部署和流水线无缝集成,实现部署环境标准化和部署过程自动化。
本章节创建一个将软件包部署到弹性云服务器的部署应用。
4.1 创建主机集群
进入创建的CodeArts项目,单击导航 设置 > 通用设置 > 基础资源管理,单击新建主机集群,设置集群名称(例:scrum-demo-group),单击保存。
单击添加或导入主机,选择通过IP手动添加,自定义输入主机名,IP地址填写步骤2.3中购买的ECS的公网地址,用户名填写root,密码填写2.3中购买的ECS的登录密码,ssh端口填写22。
单击确定,等待一会可以看到主机导入成功。
4.2 编辑部署任务
单击导航 持续交付 > 部署, 在任务列表中可以看到,伴随代码仓库创建已经创建了一个部署任务Java-Web-Demo-deploy,可以单击其操作列的图标,在下拉菜单中选择编辑,进入该部署任务的编辑页面。
切换到环境管理页签,单击新建环境,填写环境名称(如:scrum-demo-env),单击保存。
单击导入主机,选择步骤4.1中创建的主机集群,勾选集群下的主机,单击导入,等待成功即可。
切换到参数设置页签,host_group的默认值选择上一步新建环境名称,删除package_url参数,service_port的值设置为80,package_name的值设置为demoapp,关闭所参数的运行时设置。
切换到部署步骤页签,选中选择部署来源步骤,选择源类型修改为构建任务,构建任务选择步骤3.1中的构建任务,下载到主机的部署目录输入:/usr/local/${package_name}/。
由于首次部署不需停止SpringBoot服务,URL健康测试步骤由于部署的时延性,容易失败,所以本案例中先禁用这两个步骤。
完成以上操作,单击右上角保存按钮,完成部署任务的编辑。
5 云主机IDE管理流水线
流水线(CodeArts Pipeline)提供可视化、可编排的CI/CD持续交付软件生产线,帮助企业快速转型,实现DevOps持续交付高效自动化,缩短应用TTM(Time to Market)交付周期,提升研发效率。
流水线可在华为云上直接执行,在日常开发环境中,开发人员使用最多的是IDE,代码提交后想要第一时间确认自己新增的代码在云端环境中是否可正常构建及部署,需要登录CodeArts进行确认,会增添开发的复杂性。
本章节中介绍如何在IDE中直接调用云端流水线执行,并查看流水线是否执行成功。
5.1 编辑流水线
在创建的CodeArts项目中,单击导航 持续交付 > 流水线,在流水线列表中可以看到,伴随代码仓库创建已经创建了一个流水线Java-Web-Demo-pipeline,可以单击其操作列的更多选项图标,在下拉菜单中选择编辑,进入该流水线的编辑页面。
本案例中不涉及代码检查和测试,先将这两个任务从流水线中删除。
编辑构建和检查、部署和测试两个阶段,阶段名称分别修改为构建和部署。
单击构建任务,可以看到该任务已经关联了本项目的构建任务和代码仓库,单击确定。
单击部署任务,可以看到该任务已经关联了本项目的部署任务,关联构建任务选择构建,由于我们在步骤4.2中编辑了部署任务,需要单击确定按钮才能生效。
完成以上配置后单击右上角保存按钮,完成流水线的编辑。
5.2 CodeArts IDE本地代码拉取
在云主机桌面,双击打开CodeArts IDE for Java。
选择克隆Git仓库, 输入云端代码仓库HTTPS地址(获取方式见下图),单击克隆。
克隆代码需要用户鉴权,在提示Username和Password处,填写云端仓库HTTPS用户名和密码(获取方式见上图中HTTPS密码),单击回车键。
在弹出提示框是否要打开已克隆仓库,单击Open,打开仓库。
等待代码加载完毕(如提示同步失败,无需处理,继续等待即可),云仓库与本地CodeArts IDE for Java连接完成。
5.3 修改代码
本小节模拟开发人员开发代码并推送到云端仓库。
本案例应用访问使用80端口,首先在CodeArts IDE for Java中打开路径src/main/resources下的application.properties文件,将第2行8080端口修改为80端口。
打开路径src/main/java/com/huawei/codearts/controller/下的TestController.java文件,将第13行打印内容hello world修改为自定义内容(如:hello 华为开发者空间)。
在CodeArts IDE for Java中打开终端,执行以下命令,设置你的git身份标识。
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
说明:命令中的Your Name和you@example.com用自己的用户名和邮箱替换。
单击左侧菜单栏的源代码管理,按如下操作提交和推送代码:
- 保存更改到本地仓库:单击变化列表上的
号图标;
- 提交代码:在提交信息中填写本次代码实现的功能(如:修改端口及打印信息),单击Commit;
- 推送代码:单击上方更多操作图标
,选择Pull,Push > Push。
推送代码同样需要用户鉴权,输入克隆代码时使用的HTTPS用户名和密码,并单击回车键。
5.4 安装CodeArts Pipeline插件
在云主机桌面,单击左下角浏览器图标,用浏览器打开https://dtse-mirrors.obs.cn-north-4.myhuaweicloud.com/case/0032/huaweicloud.codearts-pipeline-1.0.0.carts,下载CodeArts Pipeline插件。
在云主机的CodeArts IDE for Java中,单击右侧扩展菜单栏,选择图标,打开上面CodeArts Pipeline插件下载地址并选中插件,单击安装。
如遇正在安装非受信任的扩展提示,单击继续安装。
安装完成,单击立即重载。
安装完成后,单击左侧的DevSecOps菜单栏(如没有请重启IDE),并切换到自己项目所在的区域北京四,查询当前项目下的所有流水线,可以看到步骤5.1编辑的流水线。
5.5 执行流水线
在云主机的CodeArts IDE for Java中,单击流水线的运行图标,启动流水线执行。
可以展开流水线详情查看执行进度及手动刷新状态。
待流水线执行完毕。
用浏览器访问ECS弹性公网IP/test,出现如下图,表示应用部署成功。
说明:ECS弹性公网IP是步骤2.3中购买的ECS的弹性公网IP。
6 资源释放
为了避免不必要的费用产生,完成本样例项目体验后,可根据实际使用的需要,释放部分不再使用的资源。
可以释放的资源如下:
资源名称 | 操作步骤 |
---|---|
CodeArts项目 | 进入项目的设置 > 通用设置 > 基本信息页面,单击删除项目,根据页面提示完成删除操作。 |
ECS | 登录ECS控制台。在列表中找到待删除的ECS,单击更多 > 删除,根据页面提示完成删除操作。 |
VPC | 登录子网列表页面,单击待删除子网的删除,根据页面提示完成删除操作。 登录VPC列表页面,单击待删除VPC的删除,根据页面提示完成删除操作。 |
至此,云端DevOps:实现持续交付生产线全部完成。
更多推荐
所有评论(0)