蓝绿部署



问题陈述

微服务架构将应用程序构建为一组松耦合的微服务,每个服务都应该以敏捷的方式独立开发,以实现持续交付/部署。当使用微服务架构构建大型复杂应用程序时,主要问题是如何设计松耦合的微服务,或者如何将大型应用程序分解为小型松耦合的服务,同时保持系统在生产环境中的稳定性。

解决方案

我们可以使用蓝绿部署来定义部署新开发的微服务。在这种模式下,用户流量会逐渐从旧应用程序转移到新的微服务应用程序。一旦微服务在生产环境中可用,负载均衡器就会将针对旧应用程序的请求重定向到新的微服务。

  • 蓝色环境 - 在生产环境中运行的旧应用程序称为蓝色环境。

  • 绿色环境 - 部署的新服务复制了旧应用程序的给定部分,称为绿色环境。

因此,随着时间的推移,微服务会增加,而单体应用会随着功能从单体应用迁移到微服务应用程序而缩减。

示例

考虑一个在线书店的示例。最初,我们只开发了图书目录管理服务,其他服务由遗留的单体应用程序支持。在开发过程中,越来越多的服务被开发出来,并且功能从单体应用中迁移出来。

Blue Green Deployment Design Pattern

这种部署模式有助于减少停机时间,甚至在从单体应用迁移到基于微服务的应用程序时实现零停机时间。

广告