-
Notifications
You must be signed in to change notification settings - Fork 498
多特性环境
多特性环境是一种基于服务路由的环境治理策略,核心是维护一个稳定的基线环境作为基础环境,特性环境仅需要部署需要变更的微服务。
-
基线环境(Baseline Environment): 完整稳定的基础环境,是作为同类型下其他环境流量通路的一个兜底可用环境,用户应该尽量保证基线环境的完整性、稳定性。
-
特性环境(Feature Environment): 一种临时环境,仅可能为开发/测试环境类型,这种环境不需要部署完整的组件,而是仅部署本次有变更的组件,其他组件通过服务路由的方式复用基线环境组件资源。
在实际的开发过程中,一个微服务架构下的服务可能是由多个团队进行开发与维护的,每个团队只关注自己所属的一个或多个微服务,各个团队之间的微服务存在相互调用关系。如果一个团队在开发所属微服务时,调试的时候或许需要验证完整的微服务调用链路,此时需要依赖其他团队的微服务,如何安排开发联调环境就会遇到以下问题:
- 如果所有团队都使用同一套开发联调环境,那么一个团队的测试微服务实例无法正常运行时,其他依赖该微服务的应用也无法正常运行。
- 如果每个团队有单独的一套开发联调环境,那么每个团队不仅需要维护自己环境的微服务应用,还需要维护其他团队环境的自身所属微服务应用,效率大大降低。同时,每个团队都需要部署完整的一套微服务架构应用,成本也随着团队数的增加而大大上升。
此时可以使用多特性环境来帮助实现一套运维简单且成本较低开发联调环境。假设有如下图所示的多特性环境,包括基线环境 stable 环境和特性环境 dev1 环境。当 SvcA 和 SvcD 需要在某一次迭代中进行联调时,无需部署一套包含全链路 SvcA,SvcB,SvcC,SvcD 的环境,而是通过 Spring Cloud Tencent 元数据路由的功能帮助搭建一套多特性环境。其中,SvcA 和 SvcD 可以打上 dev1 的元数据。需要进行开发联调的流量将通过网关进行流量分发,根据其带有 dev1 的元数据路由到 dev1 环境的 SvcA 上,然后 SvcA 出去的流量发现没有带有 dev1 的 SvcB ,则流量将会到 stable 环境中继续流转。而流量从 SvcC 出去时,发现有带有 dev1 的 SvcD ,则流量又会根据元数据路由转到 dev1 环境的 SvcD 上,完成了一次完整的多特性环境的开发联调服务调用。
更加详细的使用文档,请参考元数据路由。
- 您在使用过程中遇到任何问题,请提 Issue 或者加入我们的开发者群告诉我们,我们会在第一时间反馈
- Spring Cloud Tencent 社区期待您的加入,一个 Star、PR 都是对我们最大的支持
- 项目介绍
- 使用指南
- 最佳实践
- 开发文档
- 学习资料