博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分布式服务框架-原理与实践:11---服务灰度发布【扩展】-蓝绿发布-续
阅读量:6603 次
发布时间:2019-06-24

本文共 991 字,大约阅读时间需要 3 分钟。

hot3.png

https://martinfowler.com/bliki/BlueGreenDeployment.html

===================翻译======================

如何打造一个完全自动化的部署系统?

自动部署的好处不用多说,让我们来认识它的意义。

持续交付CI,让软件快速投入生产环境。 

 蓝绿发布这个技能很重要,所以这里我们简短的来看一下。

其中1个自动化部署的挑战是将软件从测试阶段切换到生产环境,通常会快速切换以便降低downtime

蓝绿发布方法是通过部署2套生产环境来实现的

任何时候,其中1个,比如蓝的,是存活的。假设准备了一个新的版本,发布在绿环境中。

一旦这个软件在绿环境中运行了,切换流量到绿环境中,蓝色的就可以不用了。

 

蓝绿发布给予能力来快速回滚,如果任何有错误发生,切换路由回到蓝色环境。

也许你想同时使用2套环境,这样蓝色环境可以作为备用环境。

 

这2个环境需要不同,有时候可以是硬件不同,或者不同的虚拟机,

一旦把绿色环境部署好了,对稳定性比较满意,蓝色的环境作为下一步的staging环境

就是从绿色切换到蓝色,2个环境轮流循环,前1个版本用于回滚。

 

这个方案的一个好处是有一个备用方案,尽量快速发布,基本思想就是存在2个简单的可切换的环境来进行切换。

细节很多,有1个方案是在web服务器上做切换而不是路由器,还有的是使用同1个数据库,让蓝绿环境切换。

 

数据库通常是1个麻烦的地方,尤其是需要更换schema的时候,方案是:

1)升级数据库,同时支持新老版本。

2)部署程序的新版本

 

Further Reading

You can find much more detail on this and related techniques from the Continuous Delivery book by Jez Humble and Dave Farley. My guide page on delivery points to more material on these topcis.

Acknowledgements

Illustration by Ketan Padegaonkar

Updates

 

转载于:https://my.oschina.net/qiangzigege/blog/988774

你可能感兴趣的文章
利用Arduino快速制作Teensy BadUSB, 攻击计算机
查看>>
初始加载时edittext不自动获取焦点的方法
查看>>
Skipping Windows Azure Startup Tasks When Running in the Emulator
查看>>
C实现计算任意整数不损失精度的阶乘
查看>>
加载ajax内容到页面后的样式重新渲染需$().listview('refresh');
查看>>
ORA-01000: maximum open cursors exceeded
查看>>
分享一个嵌入式httpdserver开发库 - boahttpd library
查看>>
Android Socket编程学习笔记
查看>>
2014年度江西省青年科学家培养对象名单(共36名)
查看>>
如何构建微服务架构
查看>>
【前端笔记】彻底理解变量与函数的声明提升
查看>>
PHP工具箱:PHPStan —— PHP 静态代码分析工具
查看>>
Python 股票分析入门
查看>>
iOS - 多链式动画框架 LSAnimator
查看>>
Android 反编译利器,jadx 的高级技巧
查看>>
Mycat 读写分离 数据库分库分表 中间件 安装部署
查看>>
output配置说明
查看>>
二叉搜索树(递归实现)
查看>>
Spring Retry重试机制
查看>>
Android官方架构组件LiveData: 观察者模式领域二三事
查看>>