Frigate

 

Emac

2016/6

CI
&
CD

keeps a development team in sync with each other, removing the delays due to integration issues.

build the deployment pipelines that turn integrated code into production software.

(Continuous Integration)

(Continuous Deployment)

痛点!

  • 任务大爆炸
  • 只能简单测活
  • 只能回滚上一版本
  • 发布过程中影响服务质量
  • 没有备机支持
  • 发布脚本不易维护

Blue Green Deployment

Jenkins 2.0

Frigate前来救援!

6大组件:

  • CI: 负责应用打包上传,管理整个发布流程(包括出错回滚)。
  • LB Plugin: 动态配置负载均衡。
  • App Repository: 应用仓库,存储每次CI构建生成的程序包。
  • App Agent: 负责下载,发布,启停,回滚应用。
  • App Watcher: 实时检测应用运行状态。
  • App Health Center: 维护应用运行状态数据。

3种模式:

  • 分组发布模式(Group Mode)
  • 快速发布模式(Express Mode)
  • 全量发布模式(Full Mode)

系统架构

第一阶段

单应用组验证

第二阶段

全量更新

第三阶段

更新备用组

完整流程图

实际效果图

Happy Ending~

  • 任务大爆炸 一个应用一个任务
  • 只能简单测活 集成日志,APM等
  • 只能回滚上一版本 支持任意版本回滚
  • 发布过程中影响服务质量 对用户透明
  • 没有备机支持 主备智能切换
  • 发布脚本不易维护 No Shell, But Python

What's Next?

  • 服务化支持
  • 容器化支持
  • 非兼容性模型升级支持
  • Android, iOS发布支持

Frigate

By Emacoo Shen