Delivery Pipeline

Stella981
• 阅读 480

##delivery pipeline Delivery Pipeline

下面这个是netflix的部署流程: Delivery Pipeline

##环境划分 ###dev/integration/test

  • dev 开发环境,服务不稳定,可能需要频繁重启之类的,一般每个开发者本地搭建开发环境。
  • integration 一般本地开发完,部署到integration环境,供其他合作的小伙伴联调集成,可能也需要服务重启之类的。
  • test 稳定版的integration环境,提供给测试环境其他服务用的,一般比较少重启。

小团队或项目,没必要区分这么多,排除开发者本地dev环境外,名义上的线下环境就一个,就是测试环境(integration/test).

###staging(pre-production) 准生产环境,一般用于新功能的预上线,进行dogfood测试,没问题就可以部署生产环境。

staging环境越接近生产环境越好,除了服务器配置外,其他的最好跟生产的一样,比如连接的其他外部服务,连接的数据库等等。 另外,对于一些跟技术实现相关的,也需要注意一下,比如有状态的服务,如果staging是单实例的,可能没法测出问题来,需要弄成分布式的才能暴露问题,比如cas server回调client设置session,该session是本地的话,多实例的clint就会出现session不共享问题。

如果所有的新功能都是向下兼容的,那么可以用feature toggle,类似灰度部署一样,那么可以弱化staging环境,甚至可以不用staging环境。不过这个是理想的情况,软件开发里头的一个小改动,可能就影响到旧有功能了,无法隔离那么彻底。

关于staging环境,可以作为一个nginx上的upstream的一个backup,这样可以不浪费资源。不过有了docker之后,staging环境可以按需启用,新功能上之前,才部署,发布完可以撤掉staging环境,这样就不浪费资源了。

###production 生产环境,要能够做到不停机发布,或者叫做不间断升级。

##doc

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Easter79 Easter79
2年前
Vue+Flask实现简单的登录验证跳转
文件位置:!输入图片说明(https://static.oschina.net/uploads/img/201711/27171542_g7Yr.png"在这里输入图片标题")login.html<!DOCTYPEhtml<htmllang"en"<head<metacharset
Stella981 Stella981
2年前
Fiddle设置iphone抓包
_注意:保证手机和电脑在一个网络上_一,设置Fiddler!输入图片说明(https://static.oschina.net/uploads/img/201707/27100350_ckfa.png"在这里输入图片标题")!输入图片说明(https://static.oschina.net/uploads/img/201707
Stella981 Stella981
2年前
Intellij idea或者Android Studio实用Live_Templates好用模板整理
Live\_Templates的作用是自动补全代码:自定义补全代码:单例模式:sin!输入图片说明(https://static.oschina.net/uploads/img/201707/17114328_kR84.png"在这里输入图片标题")Templatetext:privatestatic
Stella981 Stella981
2年前
Gerrit简单使用
1.管理员登陆安装完成第一个登陆的用户会作为管理员!输入图片说明(https://static.oschina.net/uploads/img/201801/26092505_ijdG.png"登陆")登陆成功!输入图片说明(https://static.oschina.net/uploads/img/201801/
Stella981 Stella981
2年前
Canvas
Canvas04柱状图!输入图片说明(https://static.oschina.net/uploads/img/201707/04223024_wxwr.png"在这里输入图片标题")代码如下:<!DOCTYPEhtml<htmllang"zhCN"<head<metacharset"UTF8"<met
Stella981 Stella981
2年前
Alamofire4.x开源代码分析(一)使用方法
!输入图片说明(https://static.oschina.net/uploads/img/201706/28090437_aIT1.png"在这里输入图片标题")本着了解框架的实现思路和学习Swift的目的开启本系列的博客.本系列参考Alamofire(https://www.oschina.net/action/GoToLink?urlh
Easter79 Easter79
2年前
SpringMVC vs Struts2
SpringMVCvsStruts2S性能!输入图片说明(https://static.oschina.net/uploads/img/201703/27180357_LUj5.png"在这里输入图片标题")MVC框架性能比较几篇文章:Link(https://www.oschina.net/action/GoT
Wesley13 Wesley13
2年前
PHP 与 GO
PHP!输入图片说明(https://static.oschina.net/uploads/img/201608/22112754_GEtW.png"在这里输入图片标题")输出json!输入图片说明(https://static.oschina.net/uploads/img/201608/22112825_n
Wesley13 Wesley13
2年前
Java爬虫技术之绕过百度云防护抓取网站内容
如图:!输入图片说明(https://static.oschina.net/uploads/img/201710/07121525_pg5J.png"在这里输入图片标题")首先需要一个Http工具类:HttpHandlepackageorg.coody.robot.util;importjava.io.Byt