本文基于软件开发生产线内置代码仓库,介绍如何使用软件开发生产线完成项目的开发、构建与部署,实现持续交付。
本文介绍采用CCE部署方式,若需了解ECS部署方法,请参考使用软件开发生产线快速搭建项目(ECS篇)。
准备工作
- 拥有天翼云帐号。若没有,请先注册天翼云帐号。
- 已购买软件开发生产线。
- 已购买CCE集群,购买时的必要配置请参考下表与,表中未列出的配置保持默认即可。
表 集群购买配置
配置分类 配置项 配置建议 基础配置 计费模式 选择“按需计费”。 集群版本 建议选择最新版本。 网络配置 网络模型 选择“VPC网络”。 容器网段 勾选“自动设置网段”。
表 节点配置
配置分类 配置项 配置建议 计算配置 计费模式 选择“按需计费”。 节点类型 选择“弹性云服务器-虚拟机”。 节点规格 选择2核8G及以上规格即可。 容器引擎 选择“Docker”。 操作系统 选择“公共镜像 > CentOS 7.6” 登录方式 选择“密码”。 密码 输入自定义密码。 网络配置 节点IP 选择“随机分配”。 弹性公网IP 选择“暂不使用”。
- 已在容器镜像服务中创建组织,本文中创建的组织名称为“web-demo”。
新建项目
项目是使用软件开发生产线各服务的基础,创建项目后才能完成后续操作。
步骤 1 进入软件开发生产线首页,单击“新建项目”。
步骤 2 选择“Scrum”,输入项目名称“Demo”,单击“确定”。
新建代码仓库
代码仓库用于项目代码的版本管理,本文使用服务内置的模板“Java Web Demo”创建代码仓库。
步骤 1 单击导航栏“代码 > 代码托管”,进入代码托管服务。
步骤 2 单击页面“普通新建”旁边的,选择“按模板新建”。
图 新建代码仓库
步骤 3 选择模板“Java Web Demo”,单击“下一步”。
步骤 4 输入代码仓库名称“Web-Demo”,单击“确定”。
准备Dockerfile
Dockerfile是用于构建镜像的文本文件,其中包含了构建镜像所需的指令和说明。了解Dockerfile更详细说明,请参见Docker官网。
步骤 1 单击仓库名称,进入代码仓库。
步骤 2 单击文件列表上方“新建”,在下拉列表中选择“新建文件”。
图 新建文件
步骤 3 输入文件名Dockerfile,文件详情输入以下命令行。
FROM openjdk:8-alpine
ADD target /demo
COPY ./target/demoapp.jar /demo
CMD ["java","-jar","/demo/demoapp.jar"]
步骤 4 输入备注信息,单击“确定”。
构建并推送镜像
通过编译构建任务将软件的源代码编译成镜像,并把镜像推送归档到容器镜像服务(SWR)中。
步骤 1 单击导航栏“持续交付 > 编译构建”,进入编译构建服务。
步骤 2 单击“新建任务”,配置任务信息。
- 基本信息:配置以下信息,单击“下一步”。
表 构建任务基本信息
配置项 | 配置建议 |
---|---|
任务名称 | 输入自定义名称(本文中为“Web-Demo-docker”)。 |
源码源 | 选择“Repo”。 |
源码仓库 | 选择“Web-Demo”。 |
分支 | 选择“master”。 |
- 构建模板:选择“空白构建模板”,单击“下一步”。
步骤 3 配置构建步骤。
- 单击“点击添加构建步骤”,在步骤列表中找到“Maven构建”,单击“添加”。
- 单击“添加步骤”,在步骤列表中找到“制作镜像并推送到SWR仓库”,单击“添加”。
- 参照下表配置步骤“制作镜像并推送到SWR仓库”(表中未涉及的字段保持默认配置即可)。
表 配置镜像信息
配置项 | 配置建议 |
---|---|
组织 | 输入在准备工作中创建的组织名称“web-demo”。 |
镜像标签 | v1.0.0 |
步骤 4完成配置,单击“新建并执行”。
当页面中显示时,表示任务执行成功。若构建失败,请参考《编译构建用户指南》排查处理。
步骤 5 登录容器镜像服务控制台,在页面左侧导航栏中选择“我的镜像”。
页面中有一条镜像名称为“demo”,所属组织为“web-demo”的记录。
单击镜像名称查看详情,镜像版本为“v1.0.0”。
创建负载
在云容器引擎(CCE)中创建无状态负载(Deployment),用于加载运行demo镜像。
步骤 1 登录云容器引擎控制台,单击在准备工作中购买的集群,进入详情页。
步骤 2 在页面左侧导航选择“工作负载”,单击“创建负载”,参考下表完成配置,单击“创建工作负载”。
表 创建工作负载
配置分类 配置项 配置建议 基本信息 负载类型 选择“无状态负载”。 负载名称 自定义,本文中为“web-demo”。 实例数量 选择“1”。 容器配置 镜像名称 单击“选择镜像”,在弹框中勾选“demo”,单击“确定”。 更新策略 勾选“总是拉取镜像”。 镜像版本 选择“v1.0.0”。 高级配置 升级策略 升级方式选择“替换升级”。
步骤 3 页面提示创建成功,单击“查看工作负载详情”,返回负载详情页面,实例列表中显示一条记录。
当该记录的状态为“运行中”时,选择“访问方式”页签,单击“创建”,参考下表完成创建服务配置,单击“确定”。
若实例状态异常,请参考“《云容器引擎常见问题》”排查处理。
表 配置访问方式
配置项 | 配置建议 |
---|---|
Service名称 | 自定义,本文中为“web-demo”。 |
访问类型 | 选择“负载均衡”。 |
服务亲和 | 选择“集群级别”。 |
负载均衡器 | 选择“共享型 > 自动创建”,自定义实例名称(本文中为“web-demo-test”)。说明若帐号下已有负载均衡器,可选择“共享型>使用已有”,并选择已存在的负载均衡器名称。 |
端口配置 | 协议:TCP 容器端口:8080 服务端口:8080 |
步骤 4 列表中显示一条记录,当服务名称出显示为时,将鼠标悬浮在访问类型下的负载均衡器名称处,在弹窗中复制公网地址。
步骤 5 打开新的浏览器页面,输入“http://IP:8080/test”,其中IP为步骤4中复制的公网地址。
若出现以下访问结果,表示镜像部署并运行成功。
图 部署结果
部署镜像
通过在部署服务中创建应用,将镜像部署自动化。
步骤 1 返回软件开发生产线页面,单击导航栏“持续交付 > 部署”,进入部署服务。
- 单击“新建应用”,输入应用名称(本文中为“web-demo-k8s”),单击“下一步”。
步骤 2 选择“空白模板”,单击“确定”。
步骤 3 在步骤列表中搜索并添加步骤“Kubernetes快速部署(CCE集群)”,参考下表完成步骤配置。
表 配置部署步骤
配置项 | 配置建议 |
---|---|
区域 | 选择集群所在的区域。 |
集群名称 | 选择准备工作中购买的集群名称。 |
命名空间名称 | 本文中选择“default”。 |
工作负载名称 | 选择“web-demo”。 |
容器名称 | 选择创建负载时,容器配置部分的容器名称。 |
步骤 4 单击“保存并部署”。
当页面显示时,表示测试通过。若部署失败,请参照《部署用户指南》排查。
配置流水线实现自动化更新镜像部署
通过配置流水线,将代码仓库、构建、部署串联起来,当代码仓库中发生代码提交动作时,可以自动触发流水线的执行,实现持续交付。
步骤 1 单击导航栏“持续交付 > 流水线”,进入流水线服务。
步骤 2 单击“新建流水线”,配置流水线信息。
- 选择流水线源:配置以下信息,单击“下一步”。
表 流水线基本信息
配置项 | 配置建议 |
---|---|
流水线源 | 选择“Repo”。 |
代码库名称 | 选择“phoenix-sample”。 |
默认分支 | 选择“master”。 |
- 选择模板:选择“空白模板”,单击“确定”。
步骤 3 选择“基本信息”页签,输入流水线名称“pipeline-web-demo”。
步骤 4 选择“工作流”页签,配置工作流。
- 单击“构建和检查”阶段中的的“添加任务”。在右侧滑出框中配置构建任务,单击“保存”。
表 构建任务配置
配置项 | 配置建议 |
---|---|
类型 | 选择“构建”。 |
名称 | 输入自定义名称。 |
请选择需要调用的任务 | 选择“Web-Demo-docker”。 |
仓库 | 选择“Web-Demo”。 |
- 单击“构建和检查”阶段后的,添加一个阶段。
图 添加阶段
- 单击新增阶段名称后的,在右侧滑出框中输入名称“部署”,单击“保存”。
- 参照步骤4.1,在部署阶段中添加应用“web-demo-k8s”,关联构建任务选择“Web-Demo-docker”。
步骤 5 选择“执行计划”页签,单击“持续集成”下的仓库名称,打开“代码提交时触发”开关,在分支过滤下拉列表中勾选分支“master”,单击“保存”。
步骤 6 进入代码仓库,搜索并打开文件“TestController.java”。
单击,将“hello world”修改为“hello world again”,输入提交信息后单击“确定”。
图 修改代码
步骤 7 返回流水线页面,可看到流水线正在运行中。
当页面显示时,重新访问页面“http://IP:8080/test”,访问结果将变为下图显示内容。
若任务执行失败,请于执行失败处检查失败原因,或参照《流水线常见问题》排查处理。
图 流水线执行结果
释放资源
为了避免不必要的费用产生,完成本示例体验后,可释放以下资源。
注意资源释放后无法恢复,请谨慎操作。
步骤 1 删除项目。
- 进入项目“设置 > 通用设置 > 基本信息”页面。
- 单击“删除项目”,在弹框中输入项目名称,单击“删除”。
步骤 2 删除组织与镜像。
- 登录容器镜像服务控制台。
- 在“我的镜像”页面中,勾选本文中创建的镜像,单击“删除”。
- 在弹框中单击“确定”。
- 在“组织管理”页面中,单击待删除组织的名称,进入详情页。
- 单击“删除”,在弹框中单击“确定”。
步骤 3 删除集群。
- 登录云容器引擎控制台。在列表中找到待删除的集群,单击。
- 勾选弹框中的所有选项,单击“是”。