
保证质量的前提下,产品快速、稳定地迭代升级,这是永恒不变的宗旨,因此公司内部不断地落地DevOps,而持续集成服务是其中极其重要的一环。格家网络内部拥有上百个前端工程,且类型繁多,包括Hybrid、H5、离线、PC中后台、公共组件、各类插件等等,且改动、迭代频繁,部署需求多样复杂,常见CI工具例如Jenkins无法满足需求,因此决定搭建内部CI服务,即发布系统。
一、相关概念
持续集成
持续集成(Continuous integration,简称CI)频繁地将代码集成到主干,详细介绍。优点:
- 自动化:测试、构建、部署完全自动化
- 快速发现、定位错误,保证产品质量
- 防止分支大幅偏离主干
- 产品快速升级迭代
DevOps
DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合,详细介绍。优点:
- 频繁迭代,减少应用变更范围
- 加强发布协调
- 自动化
二、系统功能
部署相关
- 多环境、多域名、多路径部署
- 静态资源移至CDN,多缓存策略
- 版本管理,线上瞬间回滚
- 灰度发布
- hash、history双路由模式支持
- 错误监控、性能检测系统接入
- 乐高(内部页面搭建系统)定制化需求
性能相关
- Egg多进程模型
- 静态资源压缩传输,远程解压
- 定时清理工程文件
约束相关
- 发布权限收敛
- 构建、部署超时检测和失败报警
- 活动期间等重要时间段封网、发布窗口限制
数据相关
- 实时日志
- 系统月报自动生成,提供如平均构建时长、各环境发布总次数、线上发布记录等各指标,月初以邮件发出。
下个版本规划
- Node应用部署
- 客户端SDK管理
- 产品线维度管理
三、流程图

四、结果与意义
系统自上线后经过了几个版本迭代,期间也有许多或大或小的问题,但也未出现过由于系统问题导致线上故障。
CI服务作为技术基础设施之一、DevOps关键节点,帮助团队减少项目风险,提高工作效率和软件产品质量,减小技术债,为产品稳定迭代提供了强大支撑。