蓝绿部署
问题陈述
微服务架构将应用程序构建为一组松散耦合的微服务,每个服务应以敏捷的方式独立开发,以实现持续交付/部署。 当使用微服务架构构建大型复杂应用程序时,主要问题是如何设计松耦合的微服务或将大型应用程序分解为小的松耦合服务,同时保持系统处于生产状态。
解决方案
我们可以使用蓝绿部署来定义部署新开发的微服务。 在该模型中,用户流量逐渐从旧应用转移到新的微服务应用。 一旦微服务在生产中可用,负载均衡器会将针对旧应用程序的请求重定向到新微服务。
蓝色环境 − 在生产环境中运行的旧应用程序称为蓝色环境。
绿色环境 − 复制旧应用程序的给定部分而部署的新服务称为绿色环境。
因此,随着开发时间的推移,随着功能从单体应用程序转移到微服务应用程序,微服务不断增加,单体组件不断缩小。
示例
考虑一个在线书店的示例。 最初我们只开发了图书目录管理服务,其他服务在遗留单体应用程序中得到支持。 在开发过程中,越来越多的服务被开发出来,功能也不再是单一的。
![蓝绿部署设计模式](/microservices_design_patterns/images/blue_green_deployment.jpg)
这种部署模式有助于在从单体应用程序迁移到基于微服务的应用程序时减少停机时间甚至零停机时间。