美文网首页
子环境治理

子环境治理

作者: wwq2020 | 来源:发表于2021-04-25 11:28 被阅读0次

    什么是子环境

    我们传统的环境指的是dev,qa,online这些,子环境是在这些环境中的一个环境

    为什么要用子环境

    当我们在dev,qa环境中进行日常测试时,如果有两个应用都发了新版本,但是不属于一个迭代,可能会影响环境的问题性和功能的正确性

    子环境实践

    基本概念

    一个迭代会创建一个子环境,会加入一组应用
    一个子环境会对应一个流量标识,和一组策略(如header中存在name是A,value是B)
    存在一个基准环境,部署已经验证过的稳定版本

    网关根据策略或者流量标识则进入子环境
    内部服务的客户端根据流量标识进入子环境

    验证阶段
    子环境处于验证阶段,此时基准环境的流量标识为standard

    接管阶段
    把访问此应用的基准流量也路由到相应的子环境,此时基准环境的流量标识会追加上所有接管阶段的子环境流量标识(如子环境1和2流量标识为L1和L2,且都处于接管阶段那么基准环境的流量标识为L1,L2)

    转正阶段
    修改相应的子环境和基准的流量标识(子环境1在做转正操作,流量标识为L1,则修改他的流量标识为L1|1,基准的同理,将L1部分替换为L1|1, 这个行为的含义是,如果访问不到子环境1的该应用,则访问基准环境的该应用)
    下掉基准环境的该应用
    如果是用consul之类的做服务发现的话,则更新路由规则(比如test1的A实例tag是子环境1,改为基准环境)
    更新子环境
    基准环境去掉转正了的子环境标识(如子环境1和2流量标识为L1和L2,且都处于接管阶段那么基准环境的流量标识为L1,L2,此时子环境1转正,那么基准环境的流量标识应为L2)

    一些场景

    流量会带上子环境流量标识和基准环境流量标识

    如果判断需要进入子环境1,应用是test1,且应用部署在子环境中,那么路由到子环境1的test1,此时子环境流量标识为子环境1的流量标识

    如果判断需要进入子环境1,应用是test1,且应用未部署在子环境中,此时分为几个情况
    1 test1处于子环境2中,且子环境2处于接管阶段,那么流量路由到子环境2,此时子环境流量标识为子环境1的流量标识
    2 否则路由到基准环境的该应用

    如果判断未满足任何子环境策略,则路由到基准环境的该应用,此时分为几个情况
    1 如果该应用处于某个子环境,且该子环境处于接管状态,则路由到子环境的该应用
    1 如果该应用处于某个子环境,且该子环境的标识为L1|1,则路由到子环境的该应用
    2 否则路由到基准环境的该应用

    相关文章

      网友评论

          本文标题:子环境治理

          本文链接:https://www.haomeiwen.com/subject/uqhlrltx.html