全部产品
云市场
云游戏

研发与发布(面向研发人员)

更新时间:2020-06-23 10:17:33

本文分别以 标准迭代 为例,对从新建研发迭代到提交发布的整个过程进行介绍,分为经典应用服务模式和容器应用服务模式两部分。

经典应用服务模式

该模式的主要特征是部署和发布的对象为Jar/tgz包,部署目标环境是 工作空间,相关概念请参考 工作空间。要执行部署或发布操作之前,需要创建、导入和配置 工作空间,具体步骤请参考 前提和准备 > 初始化租户和研发流程

完成一个标准迭代主要包含以下 7 个步骤:

  1. 新建研发迭代
  2. 新建应用服务
  3. 提交代码
  4. 部署服务器
  5. 推进阶段
  6. 推进到发布阶段
  7. 提交发布

步骤 1:新建研发迭代

  1. 通过以下任一入口新建标准迭代:
    • 入口 1:在 持续交付 > 工作台 页面,点击 最近参与的迭代 区域的 新建迭代,选择 经典标准迭代 类型。
    • 入口 2:进入 持续交付 > 研发迭代 > 我的迭代,点击 新建迭代,选择 经典标准迭代 类型。
  2. 在新建标准迭代窗口中,输入以下信息:

    • 迭代名称:填写迭代名称。
    • 关联应用:填写并选择涉及的应用名,其中“独立发布”应用表示该迭代可以不关联发布窗口就可以直接发布;“日常发布”应用表示该迭代必须关联发布窗口才能发布。若无应用可选,请先创建或导入应用。
    • 对应分支(当选定应用后会出现):对应开发阶段进行研发使用的项目分支。可以自定义分支名和创建分支基于的Tag。
    • 添加应用:添加更多应用到迭代中。
    • 关联项目(选填):关联项目协作中的项目。关联项目之前,请开通 项目协作 组件并完成项目创建。
    • 关联需求/缺陷(选填):关联项目中的工作项。
    • 迭代负责人:默认为迭代创建者,可增加其他成员。
    • 迭代成员:默认为迭代创建者,可增加其他成员。
  3. 如果有已完成的迭代,在 关联应用 旁边会出现 导入应用 按钮,点击 导入应用,系统将会从最近参与的迭代里导入应用。

步骤 2:新建应用服务

  1. 新建研发迭代后,通过以下任一入口新建应用服务和申请开发、测试服务器:
    • 入口 1:通过 持续交付 > 研发迭代 > 我的迭代,访问迭代列表,点击迭代名称进入迭代详情页面。在常用操作栏上,点击 新建应用服务,或在顶部导航栏上,点击 环境 > 应用服务列表 > 新建应用服务
    • 入口 2:通过 持续交付 > 研发环境 > 应用服务,点击 新建应用服务
  2. 输入应用服务信息,点击 新建后,可通过 操作记录 查看工单详情。

说明

  • 如果未申请服务器、pipeline 执行到部署组件时,会自动跳过。
  • 持续交付 中新建应用服务就是把应用 PAAS 平台 运维管理 中创建好的ECS服务器分配给应用的过程。
  • 新建开发、测试等线下环境应用服务(即申请服务器)的入口及步骤一致。
  • 如果已经在应用 PAAS 平台 运维管理 中完成开发、测试服务器的创建并已分配给应用,可通过 研发环境 > 应用服务 > 导入应用服务 将应用服务和服务器自助导入 持续交付 组件。
  • 持续交付 组件中只能管理开发、测试等线下环境的应用服务,预发、生产等线上环境的应用服务管理请在应用 PAAS 平台 运维管理 组件中操作。

步骤 3:提交代码

  1. 步骤 1 新建研发迭代时,平台已经自动在代码库中创建了迭代分支。
  2. 可通过平台的研发活动页面、IDE 插件或代码服务页面向迭代分支提交代码。
  3. 提交代码的方式有两种:PUSH 模式和 MR(Merge Request)模式,应用负责人或架构师可通过 应用 > 元数据信息 > 锁定项目分支 属性设置切换以上两种模式。
  4. 代码提交后,平台能自动检测到并开始执行 Pipeline 流水线。流水线各组件如果执行失败,平台会自动通知代码提交人员,提醒代码提交人员及时进行处理。

步骤 4:部署服务器

在迭代详情页面,点击 触发 Pipeline > 部署当前环境 触发编译部署流水线。

部署

说明

  • 如果未申请服务器、pipeline 执行到部署组件时,会自动跳过。

步骤 5:推进阶段

  1. 一个迭代如果包含多个应用,可以按应用单独推进阶段。
  2. 阶段推进时,将检查以下几个方面是否满足要求:
    • 审批任务均已经完成:如果未完成,必须先完成审批任务。
    • 质量达标:质量标准可以在应用元数据中动态调整。如果迭代模板中已开启质量检查,在质量不达标的情况下推进阶段,需要提交加签审批流程。(默认不开启,可按需配置)
    • 缺陷全部关闭。如果当前阶段有未关闭的缺陷,必须先关闭缺陷。(默认不开启,可按需配置)
  3. 阶段推进的过程中,如果出现代码冲突,需要重新提交 MR,直到冲突解决。
  4. 有些阶段在推进时,平台会根据迭代模板的配置自动把迭代分支合并到主干,并自动执行编译部署,可按需修改配置。
  5. 推进到测试、集成、预发阶段,如果需要修改代码,具体操作同开发阶段类似。针对 Master 的代码修改,不支持 Push 模式,只允许通过 MR 的方式提交,在指定人员审核代码之后,代码自动合并到 Master 分支,并执行持续集成流水线。

步骤 6:推进到发布阶段

  1. 推进到发布阶段的过程同 推进阶段 的步骤 1、2。
  2. 推进阶段时还会检查前一阶段服务器上部署代码与 master 上的最新代码是否一致。

步骤 7:提交发布

  1. 推进到发布阶段后,提交发布单到应用 PAAS 平台 运维管理 组件,提交发布的前提条件为:
    • 该迭代的所有应用都已经到了发布阶段。
    • 如果迭代关联到了发布窗口,那么整个发布窗口包含的所有应用都必须已经推到了发布阶段。
  2. 提交发布之后,平台会自动生成标签(tag),同时自动同步应用 PAAS 平台 运维管理 组件中发布单的发布状态。点击 点击查看 可跳转到发布单,发布操作或查看发布状态。

容器应用服务模式

该模式的主要特征是部署和发布的对象是镜像,部署目标环境是 命名空间,相关概念请参考 命名空间

完成一个标准迭代主要包含以下 7 个步骤:

  1. 新建研发迭代
  2. 导入容器应用服务
  3. 提交代码
  4. 部署镜像
  5. 推进阶段
  6. 推进到发布阶段
  7. 提交发布

步骤 1:新建研发迭代

操作步骤同 经典应用服务模式 > 新建研发迭代,选择 容器标准迭代 类型。

步骤 2:导入容器应用服务

  1. 新建研发迭代后,通过以下任一入口导入容器应用服务:
    • 入口 1:通过 持续交付 > 研发迭代 > 我的迭代,访问迭代列表,点击迭代名称进入迭代详情页面。在顶部导航栏上,点击 环境 > 应用服务列表 > 导入应用服务
    • 入口 2:通过 持续交付 > 研发环境 > 应用服务,点击 导入应用服务
  2. 选择对应的命名空间,勾选要导入的应用服务,点击 确定 即可。

说明

  • 持续交付 暂不支持创建AKS容器应用服务,只能自助导入。
  • 如果未成功导入应用服务、pipeline 执行到镜像部署组件时,会报错。
  • 持续交付 执行导入操作之前,需要先在应用 PAAS 平台 运维管理 > 容器应用服务 > 应用发布 中创建应用服务,具体操作步骤参考 运维管理手册 创建应用服务
  • 如果应用服务部署时要从阿里云 容器镜像服务 拉取镜像,那么在应用 PAAS 平台 运维管理 组件中创建应用服务时需配合使用 保密字典保密字典
  • 创建 保密字典 时,参考 管理员配置 > 构建配置 的镜像中心配置,填写 容器注册地址、用户名、登录密码,具体步骤请参考 保密字典 及下图:创建保密字典

步骤 3:提交代码

操作步骤同 经典应用服务模式 > 提交代码

步骤 4:部署镜像

在迭代详情页面,点击 触发 Pipeline > 编译部署AKS 触发编译部署流水线。

AKS部署

步骤 5:推进阶段

操作步骤同 经典应用服务模式 > 推进阶段

步骤 6:推进到发布阶段

操作步骤同 经典应用服务模式 > 推进到发布阶段

步骤 7:提交发布

操作步骤同 经典应用服务模式 > 提交发布