Back to Software Engineering

See Also Continuous Integration

产品发布(上线)流程

1. Overview

1.1. Goals

规范公司项目和产品的上线流程,建立和完善产品的版本控制,保证软件产品服务的质量与安全

  1. 明确产品价值和使用范围
    • Release Notes:发布出来的产品和服务的基本描述,包括但不仅限于主要功能、Bug修正和已知问题
  2. 确保对应的代码可追溯
    • 工程版本号,与SCM唯一对应
  3. 确保线上服务的安全
    • 生产者与线上环境的隔离

1.2. Scopes

1.3. Process

Dev-QA-Stage-Prod.png

更详细的说明见:3. Time Boxes

1.3.1. 包含的主要活动

工程版发布:代码检出、编译、单元测试及报告、打包等

服务部署及测试:测试环境【自动部署】、预发布环境验证、正式环境部署

客户端发布:发布到AppStore(iOS)/Google Play或发包到国内发布渠道

1.3.2. 涉及到的系统和环境

1.3.3. 涉及到的角色和职责

2. Define

2.1. Roles

Role

职责

来源

SCM

提供工程发布版本

一般由服务器和客户端的开发工程师担任

QA

测试工程发布版本,对质量保证负责。

一般由质保部工程师担任

OMA

负责产品线上部署

一般由运维部工程师担任

Product Owner

产品负责人,决定产品是否发布。

可以由产品经理、运营经理或项目经理担任

2.2. Artifacts

2.2.1. 工程发布包

2.2.2. 产品发布平台

2.2.3. 4套服务器环境:Dev-QA-Stage-Prod

名称

用途

负责人

Dev

开发联调环境

开发人员

QA

QA测试环境 支持从Jenkins到此环境的自动部署

QA 开发变动此环境需要征得QA同意

Stage

预生产环境,验证服务部署

OMA 开发者没有系统变更权限

Product

生产环境,提供正式服务

OMA

2.2.4. Inform Document

文档名称

发布者

内容

工程版发布通知

SCM

发布包唯一标识,对应平台地址,对发布产品的描述

测试报告

QA

原有报告中增加发布包唯一标识

服务器正式部署通知

OMA

原有通知中增加发布包唯一标识

客户端正式发布通告

PO

原有通知中增加发布包唯一标识

Release Notes

PO

产品发布说明,标注产品版本与工程版本,以及
产品的主要功能
Bug修正列表
已知问题

2.3. Ceremonies

名称

组织者

内容

产品计划会

PO

会上确定人员角色,产品周期和质量标准

项目进度碰头会

PM

会上同步项目进度,提出并解决项目问题

项目总结会

PM

总结项目取得的成绩、过程中遇到的问题和克服问题的方法等

3. Time Boxes

3.1. Release Plan(All)

3.2. Engineering Release(SCM-->QA)

SCM发出Engineering Release通知,向QA报告工程版的发布;

3.3. Test & Deployment(QA&OMA)

测试阶段

测试环境

测试过程

下阶段标准

QA Test

QA Server

1. QA在Jenkins平台上找到对应的服务器版本,点击部署链接,把对应版本部署到测试环境;
2. QA在Jenkins平台上找到对应的客户端版本,下载、安装,开始测试

服务器达到标准,通知OMA部署Stage Server

Stage Test

Stage Server

接到OMA部署完成通知,安装Stage包,开始测试

Pass Test后通报PO,由PO通知OMA部署正式

Smoke Test

正式环境

OMA通知完成部署,进行Smoke Test,通过后发送测试结果通知全体项目组

N/A

3.3.1. 测试结果主要分支(QA)

3.3.2. Server Deployment(OMA)

  1. QA通知OMA某个版本要部署到Stage Server/PO通知OMA部署到正式环境
  2. OMA获取这个版本的发布包
  3. OMA按照RD提供的部署文档,在指定环境中进行安装验证
  4. 完成安装后通知QA进行测试

3.4. Client Package Release(PO发包)

4. 附录

4.1. 定制产品上线发布流程一览表

RD

QA

OMA

PM

需求分析及明确

需求文档

需求意见反馈(邮件)

需求意见反馈(邮件)

需求列表及review意见反馈(邮件)

设计及评审

设计文档

review意见反馈(邮件)

review意见反馈(邮件)

review意见反馈(邮件)

测试计划及方案文档

review意见反馈(邮件)

review意见反馈(邮件)

测试例文档

review意见反馈(邮件)

coding及code review

code 提交svn,内部review意见反馈

部署文档

完善并确认部署文档

功能列表及测试环境注意事项说明

功能完成情况确认

测试

测试报告文档

升级部署

生成release note

预生产环境升级部署报告(邮件)

辅助监控升级情况

预生产环境测试报告(邮件)

升级正式环境通知

正式环境升级部署报告(邮件)

辅助监控系统运行

正式环境升级部署后24小时监控报告(邮件)


CategoryProcess

MainWiki: Product_Release (last edited 2011-11-27 19:58:25 by twotwo)