点击上方“程序员小灰”,选择“置顶公众号”

有趣有内涵的文章第一时间送达!

海豚的秘密

大家都知道海豚这种可爱的海洋动物。但又有多少人知道,海豚可以永远不睡觉

是什么样的能力,使得海豚可以永远保持清醒呢?依靠的是海豚大脑特殊的运作方式。

像人一样,海豚的大脑也分为左脑和右脑两个部分。在海豚活跃的状态下,左脑和右脑都是清醒的:

当然,海豚也是血肉之躯,也是需要休息的。在海豚休息的状态下,其中一半大脑会进入睡眠,另一半大脑仍然保持清醒,以面对各种外界情况。

每隔两个小时,这种一半睡眠一半清醒的状态会进行交替,比如这一刻左脑睡眠右脑清醒,下一刻左脑清醒右脑睡眠。

这就是海豚永远不会真正睡觉的秘密。


什么是蓝绿部署?


蓝绿部署,英文名Blue Green Deployment,是一种可以保证系统在不间断提供服务的情况下上线的部署方式。

如何保证系统不间断提供服务呢?

蓝绿部署的模型中包含两个集群,就好比海豚的左脑和右脑。

在没有上线的正常情况下,集群A和集群B的代码版本是一致的,并且同时对外提供服务。


在系统升级的时候下,我们首先把一个集群(比如集群A)从负载列表中摘除,进行新版本的部署。集群B仍然继续提供服务。

当集群A升级完毕,我们把负载均衡重新指向集群A,再把集群B从负载列表中摘除,进行新版本的部署。集群A重新提供服务。

最后,当集群B也升级完成,我们把集群B也恢复到负载列表当中。这个时候,两个集群的版本都已经升级,并且对外的服务几乎没有间断过。


什么是滚动部署?


滚动部署,英文Rolling update,同样是一种可以保证系统在不间断提供服务的情况下上线的部署方式。

和蓝绿部署不同的是,滚动部署对外提供服务的版本并不是非此即彼,而是在更细的粒度下平滑完成版本的升级

如何做到细粒度平滑升级版本呢?

滚动部署只需要一个集群,集群下的不同节点可以独立进行版本升级。比如在一个16节点的集群中,我们选择每次升级4个节点:

以此类推,最终所有的节点都升级了版本。

永生的可能性



我们的身体,就仿佛是一个庞大而又复杂的计算机集群,每一个器官相当于集群当中的一个节点,器官和器官之间由无数的神经与血管相连。

对于计算机集群来说,不间断提供服务就是在“活着”。而对于人类来说,各个器官不间断地运作,维持生命体征就是在“活着”。

人类的各个器官终究会衰老,那时候也就是人类寿命的终点。如果我们在器官衰老之前,依次把每一个器官都替换成年轻的器官,无论是肝脏还是肾脏,肌肉还是骨骼,这个人能不能永远保持青春呢?

或许有人会说,人的大脑也是会衰老的,我总不能把大脑也替换掉把?那样我就不再是我了。

但是,人的大脑也并不是独立不可分割的。如果我们把大脑想象成1000个甚至更多个基本单元的集合,每次仅仅替换大脑的千分之一,那么这个人还是这个人,或许连思想意识都几乎不会间断。

—————END—————

喜欢本文的朋友们,欢迎长按下图关注订阅号程序员小灰,收看更多精彩内容

漫画:什么是蓝绿部署?相关推荐

  1. 科普:蓝绿部署、金丝雀发布(灰度发布)、A/B测试

    蓝绿部署(Blue-green Deployments) 蓝绿部署的目的是减少发布时的中断时间.能够快速撤回发布. It's basically a technique for releasing y ...

  2. 蓝绿部署、金丝雀发布(灰度发布)、AB测试……

    点击关注公众号,Java干货及时送达 来源 | https://www.jianshu.com/p/0df88fe4a1e3 随着微服务架构的普及,线上服务越来越多,随之而来的就是部署越来越频繁:随着 ...

  3. 万字长文带你全面认识 Kubernetes 中如何实现蓝绿部署、金丝雀发布和滚动更新...

    Kubernetes 中的部署策略 在本文中,我们将学习使用 Kubernetes 容器编排系统部署容器时的部署策略.在本文的最后,我们将学习如何在 Kubernetes 集群中使用不同的方式进行部署 ...

  4. 使用级联功能实现蓝绿部署和金丝雀发布

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者:米开朗基杨 来源:公众号「云原生实验室」 上篇文章介绍了 Contour 分布式架构的 ...

  5. 微服务部署:蓝绿部署、滚动部署、灰度发布等部署方案对比与总结

    在项目迭代的过程中,不可避免需要"上线".上线对应着部署,或者重新部署:部署对应着修改:修改则意味着风险. 目前有很多用于部署的技术,有的简单,有的复杂:有的得停机,有的不需要停机 ...

  6. 微服务部署:蓝绿部署、滚动部署、灰度发布、金丝雀发布

    在项目迭代的过程中,不可避免需要"上线".上线对应着部署,或者重新部署:部署对应着修改:修改则意味着风险. 目前有很多用于部署的技术,有的简单,有的复杂:有的得停机,有的不需要停机 ...

  7. kubernetes(七)项目部署方式:蓝绿部署,灰度发布/金丝雀发布,滚动更新

    在项目迭代的过程中,不可避免需要上线进行部署. 目前项目部署的方式有很多种:像重新部署,蓝绿部署,金丝雀部署(灰度部署),滚动更新.本文简单介绍下这些常见的部署方案以及使用k8s怎么进行对应部署 重新 ...

  8. 蓝绿部署滚动部署金丝雀发布(灰度发布)A/B测试

    在一般情况下,升级服务器端应用,需要将应用源码或程序包上传到服务器,然后停止掉老版本服务,再启动新版本.但是这种简单的发布方式存在两个问题,一方面,在新版本升级过程中,服务是暂时中断的,另一方面,如果 ...

  9. OpenShift 4 - Knative教程(2) 基于Revision/Tag/Traffic实现蓝绿部署和恢复发布

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.10环境中验证 文章目录 基于Revision/Tag/Traffic实现蓝绿部署和恢复发布 基于R ...

最新文章

  1. ubuntud——系统备份和恢复
  2. 皮一皮:有的人自以为有小聪明...
  3. ajax跨域,这应该是最全的解决方案了
  4. SpringBoot打成jra包启动时读取外部配置文件实现动态配置
  5. python合并word单元格_python之DataFrame实现excel合并单元格_python
  6. 【转】ABP源码分析三十四:ABP.Web.Mvc
  7. 数组经典题之杨辉三角变形
  8. Python OOP:面向对象基础,定义类,创建对象/实例,self,创建多个对象,添加对象属性,访问对象属性,__init__方法,带参数的__init__,__str__方法,__del__方法
  9. 边缘设备上的实时AI人员检测:在Raspberry Pi上启动SSD
  10. (转)Awk使用案例总结(运维必会)
  11. CIO,马上就没有线下灾备了,不要做最后一个
  12. Win10 配置 Python 环境变量
  13. matlab不显示x,y,z轴
  14. Photoshop之通道抠图,适用于扣人像,树叶等细微抠图
  15. 计算机网络放大器的作用,运算放大器工作原理是什么?
  16. 计算机硬件的组装实践,论文-计算机硬件组装实践.doc
  17. Figma#1: 图形绘制
  18. FTP电脑间传输文件
  19. 计算机excel上机实训指导,上机实训指导手册——利用Excel进行数据分组和制作统计图表...
  20. ubuntu登录界面无限刷新

热门文章

  1. 配置eclipes中java、javascript的自动代码提示
  2. linux系统 系统推荐 deepin国产系统 最好用的国产linux系统 Windows系统的优秀替代品 deepin系统安装 系统安装 deepin
  3. Android 系统禁用触摸屏
  4. 海南化学分析实验室设计工艺归纳
  5. 计算机屏幕变红色,win7系统电脑屏幕变成红色的设置技巧
  6. 寒江独钓前辈的第一个例子的编译运行过程
  7. 学习淘宝分享出来的链接web检测打开原生App
  8. php+矩阵,PHP实现简单矩阵算法
  9. 上海有哪些牛逼的互联网公司?
  10. 偶像和粉丝关系该是什么样的?