首页 > 编程知识 正文

灰度服务器是什么意思,灰度方案设计

时间:2023-05-05 20:28:37 阅读:108626 作者:1509

什么是灰度公开,什么是灰度公开A/B测试

通常,要升级服务器端APP应用程序,必须将APP应用程序源或包上载到服务器,停止服务的旧版本,然后启动新版本。 但是,这种简单的发布方法有两个问题。 一方面,新版本升级期间服务会暂时中断,另一方面,如果新版本中存在错误,则升级会失败,回滚也非常麻烦,而且很容易导致更长时间无法使用服务。

为了解决这些问题,人们研究了几种发布策略,现逐一介绍如下。

##引进蓝色绿色

蓝绿部署是指同时运行两个版本的APP应用程序。 如上图所示,在蓝绿部署过程中,不会停止旧版本,而是保留一组新版本,在运行新版本后再将通信切换到新版本。 但是,蓝牙绿色部署要求在升级过程中同时运行两个程序,对硬件的要求是日常需要的两倍。 例如,如果在日常运行时需要10台服务器支持业务,则需要购买20台服务器才能使用蓝牙绿色部署。

#滚动发放

滚动发行版解决了蓝绿部署时的硬件要求翻一番。

滚动升级并不是在升级过程中突然启动所有新版本。 首先启动新版本,然后停止旧版本,再启动新版本,然后停止旧版本,直到升级完成。 这样,如果日常需要10台服务器,则在升级期间也只需要11台服务器。

但是,滚动升级有问题。 启动滚动升级后,通信将直接流向启动的新版本。 但是,此时新版本不一定可用。 例如,为了确认需要进一步的测试。 在滚动升级期间,整个系统会变得非常不稳定,如果发现问题,也很难确定是由于新版本还是旧版本。

为了解决这个问题,需要滚动升级的流量控制能力。

##灰度发布

灰度的发表也被称为金丝雀发表。 起源是矿工发现他们对煤气和瓦斯很敏感。 矿工在下井前会把金丝雀放进井里。 如果金丝雀不再叫了,就意味着气体浓度很高。

灰度发布开始后,首先启动新版本的APP应用程序。 但是,测试人员在线测试新版本,而不是直接截取流量。 启动这个新版本的APP应用程序的是金丝雀。 如果满意的话,可以将少量的用户流量导入新版本,然后通过观察新版本的运行状况来收集各种运行时数据。 此时,将各种数据与新旧版本进行比较,就是所谓的A/B测试。

确认新版本正常运行后,将更多的流量导入新版本。 同时,您还可以不断调整两个新旧版本运行的服务器副本的数量,以确保新版本能够承受越来越大的通信压力。 将100%的流量切换到新版本,最后关闭剩下的旧版本的服务器,完成灰度发布。

如果在灰度发布期间(灰度期间)发现新版本有问题,则需要立即将通信量返回到旧版本。 这样,可以将不良影响抑制在最小限度。

#通过脉冲云轻松发布灰度

脉冲云部署管理可以轻松实现具有上述流量管理功能的灰度发布。 在成功编辑APP应用程序信息并单击“保存”后,脉冲云将直接提示您升级或发布灰度。

直接升级是指使用常见的滚动升级,单击灰度发布后,手动介入升级过程,进行流量控制。

选择“灰度发布”时,将显示“灰度发布控制”面板。

通过此控制面板,您可以拖动滑块来快速调整新旧版本的执行副本数。 您还可以按百分比将通信导入到新版本中。 还可以通过匹配HTTP Header将单个用户的通信量指定为新版本。

除了与用户通信匹配的HTTP请求标头外,还可以直接在匹配请求标头中指定Cookie信息。 匹配规则支持完全匹配、包含、正则表达式、前缀、后缀等,还允许反向匹配。

验证新版本是否正常运行后,单击**完成升级**按钮,所有通信将切换到新版本,并且旧版本的所有APP应用程序都将被丢弃。 如果新版本出现问题,可以单击“取消升级”按钮,立即将通信恢复为旧版本并放弃新版本的APP应用程序。

#总结

使用灰度发布策略,以便在发布新版本的APP应用程序时,可以在不停机的情况下升级服务器。 在灰度发布开始时,可以使用HTTP Header使指定测试器的通信与新版本相匹配,并在通过新版本的内部测试后,以10%的增量将通信导入新版本。 例如,从最初观察执行情况开始,导入20%,直到将所有流量导入新版本

通过灰阶发布,无需加班到深夜降级,白天就可以放心大胆安全地发布新版本。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。