MSE实现全链路灰度

方案介绍
MSE实现全链路灰度

本方案可以为业务应用创建灰度环境,并使用泳道规则实现全链路的端到端灰度测试。这样,客户可以将具有特定特征的流量始终路由到应用的目标版本,以满足灰度验证多个服务的需求。此外,当目标灰度版本不可用或出现故障时,MSE服务还支持自动容灾到正式环境,以确保业务的连续性和可用性。

解决问题:新版上线不稳定

无法按照百分比隔离流量并逐渐调优,新版本直接上线不稳定。

解决问题:多版本发布风险

不支持多版本开发测试、一个应用无法支持多个版本同时在线上运行、无法开展A/B Test,多版本发布存在风险。

解决问题:灰度环境构建能力不足

无法测试指定链路上的流量路由,没有灰度版本的应用收到的流量无法自动容灾到正式环境。

方案优势
助力敏捷开发
传统的多套开发环境,需要使用多套的物理环境,才能实现多套环境各自互不干扰,但是多套物理环境的隔离的机器成本高。通过全链路灰度这种逻辑隔离方式,可以实现开发环境隔离,在不增加成本的情况下增加多套开发测试环境,助您实现敏捷开发。
降低发版风险
新功能上线之后,微服务引擎MSE支持通过灰度规则控制目标用户。您可以选择让内部用户先使用发布版本,以此来测试新功能的正确性。当内部用户验证通过后,再渐渐扩大灰度范围,确保每个功能都经过充分验证后再全量开放给外部客户。当出现问题时,您可以通过修改灰度规则来实现快速回滚,降低新版本发版时的风险。
低门槛拥抱灰度功能
通过白屏化能力展示和配置全链路灰度过程,让复杂的流程可视化,大大降低使用门槛。借助微服务引擎MSE,您可以在控制台配置灰度规则,例如灰度流量打标,设定全链路灰度的流量流向并查看流向是否符合预期。当灰度流量出现问题时,您可以可视化排查潜在问题,快速定位,实现高效迭代。
应用场景
多应用灰度发布
微服务架构下,涉及到微服务调用链路上的多个微服务同时发生了改动,每个微服务都会有灰度环境或分组来接受灰度流量。业务需要上游灰度环境的流量,也能进入下游灰度的环境中,确保1个请求始终在灰度环境中传递,即使调用链路上部分微服务没有灰度环境,这些服务请求下游时仍能回到灰度环境中,进行顺滑的灰度发布,不用担心灰度流量乱窜的风险。
低成本构建多套开发测试环境
微服务的迭代存在大量依赖,而开发须使用一套完整的环境进行开发和联调。基于 git-branch 的设计理念,保留一套稳定的基线环境,分支开发人员通过逻辑环境隔离的方式快速拉起需要的 feature 环境。只需单独部署改动的应用即可,而不需要部署整套的应用及配套设施。
金丝雀发布
微服务场景下,为保证应用新版本发布的稳定性,往往会对流量按照百分比进行隔离,灰度无误后再进行全量发布。金丝雀发布场景下,最初会为新版本的实例分配较小比例的流量,经测试和运行检验无误后,再逐步提高新版本所分配流量的比例,直到达到100%确认无误后发布新版本,以保障系统稳定性。
方案部署
01部署准备
开始部署前,完成账号申请、账号充值、RAM用户创建和授权。
02规划网络和资源
规划地域、可用区、VPC,开通ACK和MSE。
03搭建业务应用的基线环境
部署后端业务应用的基线版本并将应用接入MSE微服务治理,然后测试流量链路是否正常。
04搭建业务应用的灰度环境
部署后端业务应用的灰度版本,然后创建灰度环境泳道并配置泳道规则。
05完成及清理
测试灰度版本的流量链路是否正常。任务完成后,建议及时清理相关的ACK、MSE资源。
客户案例
部署Nginx并通过Ingress暴露和监控服务
在阿里云容器服务(后简称ACK)集群中通过YAML文件快速部署一个Nginx应用并通过Nginx Ingress暴露和监控服务,结合使用ACK、日志服务、专有网络搭建业务部署运维方案,具有集群快速创建、应用高效部署和业务运维简单的优势,适用于新兴互联网行业,转型的传统金融、物流等多行业。
应用日志数据归档
应用日志数据归档方案为企业提供云上日志数据的存储成本优化。提供了访问日志数据采集、自动压缩、持久化存储,满足企业的网站访问日志数据的归档需求。具有低成本、免运维、弹性扩容的优势。