不是说所有产品都会用灰度,我们这里讲一下有灰度的产品的情况。可以看到下图中有一个原始的版本,灰度的版本相当于就是要去覆盖原始的版本。灰度的程度会随着灰度的过程慢慢变大,我们在这个过程中会慢慢去观察灰度的效果。观察灰度的过程中有没有出现问题,如果出现了问题我们可能会回滚,如果没有问题就继续灰度,直到整个新的版本能够上线。
从灰度的角度来说,主要有服务端灰度和客户端灰度这两种。有的产品它并不存在客户端,所以它也就没有客户端灰度。
服务端灰度大概指的是,我有这么多服务端的机器,我按照机器或者按照机房去一个一个上线新的版本。也可以通过域名来做灰度,域名本身是用来控制流量的,比如说我现在有10个域名,我可以先灰度其中的两个域名、再慢慢加大。
从客户端方向来说,客户端本身是通过配置下发来做灰度的,比如说移动端的手机,拿到了灰度的配置之后,有可能是使用新的灰度的一个版本,也有可能是把流量打到一个新的域名上面去,这几方面都有。
它一方面可以按照比例下发,比如说随机用户的,也可以指定下发,某一个机型、某个省份,或者某种用户分类。按照机型和用户的分类是有一定的特殊含义的,比如说,我怀疑我现在的这个功能有可能在低端机上不行,那么就可以选择先在低端机上进行一些灰度。再就是我这个功能有可能会影响付费,那么我就可以先在非付费用户身上去做下发。这些都是一些灰度的策略。