网易-网易软件生产实践白皮书-2020.12-29页_7mb
报告摘要
网易软件生产实践白皮书总结
核心内容概述
网易软件生产实践白皮书系统性地介绍了软件开发的完整生命周期管理流程,涵盖了从需求分析、开发、测试、部署到运维监控的各个环节。白皮书强调了流程的规范化、工具的集成化以及实践的自动化,旨在提升软件开发效率、产品质量和团队协作能力。
主要观点
- 软件生产是开发的全流程管理,从需求的诞生到最终交付,形成一个闭环。
- 项目管理是软件生产的重要环节,通过敏捷迭代和工具支持(如Jira)实现快速开发和交付。
- 编码阶段强调规范与质量,包括应用初始化、源码管理、分支策略等。
- 构建与测试阶段注重自动化和流程控制,通过持续集成、单元测试、静态代码检查、自动化测试和人工专项测试相结合,保障软件质量。
- 部署方式多样化,包括滚动部署、蓝绿部署和灰度部署,以适应不同场景下的发布需求。
- 配置管理实现统一与灵活,通过统一的软件包管理、环境配置和动态配置管理提升系统稳定性与可维护性。
- 复用与集成是提升效率的关键,通过微服务、API网关、物料体系和外部集成,实现模块化和系统化开发。
- 运维监控确保系统稳定运行,通过监控系统运行指标和基础环境,保障线上服务的持续可用。
关键信息
软件生产阶段
- 计划/需求阶段:确认需求,拆分任务,分配优先级,使用知识库共享设计成果。
- 开发阶段:搭建应用框架,编写和评审代码,遵循分支策略进行开发和测试。
- 验证/测试阶段:通过持续集成、单元测试、静态代码检查、自动化测试和人工测试,确保代码质量。
- 发布/交付阶段:根据测试结果,选择合适的部署策略进行发布。
- 运维/监控阶段:使用运维监控系统确保线上服务的稳定运行。
项目管理
- 使用 Jira 进行需求/任务管理与迭代管理。
- 迭代周期一般为 1-2周,通过 Scrum 流程进行管理。
- 每日站立会议(Daily Scrum Meeting)用于跟踪迭代进度,形成燃尽图。
编码规范
- 分支策略:包括个人/功能开发分支、主开发分支、演练分支和线上分支。
- 提交规范:提交代码时需附带 Jira单号,使用 Git 流程进行代码提交和合并。
- 代码评审:开发组长对合并请求进行代码评审,确保代码质量。
构建与测试
- 持续集成(CI):自动触发编译、单元测试、静态代码检查等流程,提升开发效率。
- 单元测试:测试用例的成功率和覆盖率影响 CI 流水线结果。
- 静态代码检查:使用 SonarLint 和 SonarQube 工具,从缺陷、坏味道和漏洞三个维度进行代码质量检测。
- 测试验证:包括自动化测试、稳定性测试、异常测试和性能测试,确保软件质量。
缺陷管理
- 缺陷等级:分为 Blocker、Critical、Major、Minor 和 Trivial 五个级别。
- 缺陷处理流程:测试人员发现缺陷后记录在 Jira,开发人员确认后修复并提交,CI 流水线执行成功后测试人员验证并关闭缺陷。
部署方式
- 滚动部署:通过 Kubernetes 滚动升级,控制服务不可用比例,降低发布风险。
- 蓝绿部署:部署新版本环境,切换流量,观察运行状态,出现问题可回滚。
- 灰度部署:分阶段发布新版本,逐步增加流量比例,确保线上服务稳定。
配置管理
- 软件包版本管理:使用统一的软件包管理系统(如 Nexus)进行包的上传、下载、审批和权限控制。
- 配置项分类:分为环境配置项、应用配置项和业务配置项,分别用于不同场景。
- 静态配置:存储在源代码同级的 config 文件夹中。
- 动态配置:通过配置项模板和实时数据组合生成部署包,实现灵活部署。
复用与集成
- 微服务:将复杂系统拆分为独立服务,提升可扩展性和可维护性。
- API网关:作为系统唯一入口,提供身份验证、监控、负载均衡等功能。
- 物料体系:包括组件、区块和模板,实现快速开发和高效复用。
- 外部集成:包括统一身份管理、业务流程管理等,提升系统整体能力。
工具汇总
| 阶段 | 使用功能 | 工具 |
|---|---|---|
| 需求/计划 | 需求/任务管理 | Jira |
| 开发阶段 | 代码存储、代码评审、低代码开发 | GitLab、轻舟低代码应用开发平台 |
| 开发阶段 | 依赖管理、静态代码检查 | Nexus、SonarQube |
| 开发阶段 | 镜像仓库、流水线 | Harbor、轻舟持续交付平台 |
| 测试阶段 | 环境管理、测试环境部署 | 轻舟容器平台 |
| 测试阶段 | 自动化测试 | 轻舟GoAPI |
| 上线阶段 | 线上部署、灰度部署、蓝绿部署 | 轻舟容器平台 |
| 上线阶段 | 立体化监控 | 轻舟容器平台 |
附录
- 附录1:全流程示意图,展示从需求到交付的完整流程。
- 附录2:各阶段工具汇总,便于快速查阅。
- 附录3:工具介绍,包括 Jira、GitLab、SonarQube、Nexus、Harbor 和轻舟系列平台。
- 附录4:轻舟架构图,展示平台整体架构和组件关系。
总结
网易软件生产实践白皮书提供了从项目管理、编码、构建与测试、部署、配置管理到复用与集成的完整流程与最佳实践。通过工具的集成与流程的规范化,网易实现了高效的软件开发与交付,确保了系统的质量与稳定性。
展开完整摘要
试读结束,高清完整版pdf/doc/ppt,请点下载