微服务蓝绿部署详解(图文全面总结)

微服务蓝绿部署在大型架构经常被涉及到,下面我重点来详解微服务蓝绿部署@mikechen

蓝绿部署

蓝绿部署是一种软件部署策略,主要通过维护两个相同的生产环境(通常称为“蓝色”、和“绿色”)。

微服务蓝绿部署详解(图文全面总结)-mikechen

 

蓝色部署: 指的是当前正在运行的、处理所有生产流量的稳定版本的应用程序环境。

绿色部署: 指的是新版本应用程序部署到的备用环境,这个环境通常与蓝色环境配置相同,用于测试、验证新版本。

初始状态:流量全部指向蓝环境(旧版本),新版本部署到绿环境。

验证无误后,将流量切换到绿环境。

 

微服务蓝绿部署

假设我们要对微服务 user-service 进行蓝绿部署,首先,准备两套环境。

比如:Blue 环境:当前线上运行的版本(如 v1.0);

Green 环境:部署新版本(如 v2.0);

如下图所示:

微服务蓝绿部署详解(图文全面总结)-mikechen

将新版本的 user-service (v2) 部署到绿色环境,确保新版本已正确配置。

并且,可以连接到所需的依赖服务(例如,数据库、缓存…等)。

 

一旦绿色环境中的新版本通过所有测试,就可以将生产流量从蓝色环境->切换到绿色环境。

apiVersion: v1
kind: Service
metadata:
  name: user-service
spec:
  selector:
    app: user-service-green

 

在流量切换后,密切监控绿色环境的应用程序性能、错误日志和基础设施指标。

确保新版本能够正常处理生产流量,并且没有出现任何异常。

使用监控工具,比如: Prometheus、Grafana、ELK Stack…等等,进行实时监控。

如果在监控过程中发现新版本存在严重问题,需要立即回滚到之前的稳定版本。

如果在一段时间的监控后,确认新版本运行稳定,没有问题,那么可以安全地停止或移除蓝色环境的资源。

 

评论交流
    说说你的看法