我们的团队试图找到一种方法来比较当前版本和新版本之间的 CPU 和内存使用情况。我找到了一些答案。
(1) 使用负载均衡器
通过使用负载均衡器,我们可以将我们的服务器分为两组。通过为它们部署不同的版本,我们可以测试和测量它们。参考。https://cloud.google.com/architecture/application-deployment-and-testing-strategies
(2) 我的建议
我认为如果我们可以将新功能部署到随机选择的服务器上,我们就不需要划分服务器。如果可能的话,我们可以通过分别收集随机选择的服务器的日志来知道 a/b 测试的结果。我认为这是可能的,但在 a/b 测试概念中找不到这种东西。
您能否就如何通过 a/b 测试检查 CPU 使用率或在 a/b 测试概念中调用什么 (2) 给我一些建议?
来自该链接提及的 A/B 测试包括对统计上显着数量的用户交互的业务决策。例如,对于新闻出版物,当呈现标题 A 与 B 时,哪一个获得更多点击。
您不太可能拥有大量后端实例,您可以在其中随机抽样它们的利用率指标并很好地了解正在发生的事情。虽然可以,但是对你的主机监控数据做统计,看看分布是什么。
还要考虑金丝雀测试模式和各种滚动部署。对负载均衡器的一个后端进行了更改。当这不会引发监控警报(包括 CPU 和内存)时,它会逐渐部署到其余部分。
由于这些涉及生产环境,因此需要验证版本是否与生产数据库和 API 兼容。通常在开发环境中完成,可能使用模拟的假数据。这些正确性测试不同于性能监控。
不幸的是,测试中的性能特征并不像生产。可以将恢复生产复制或备份到影子暂存环境,并在真实数据上进行测试。即使作为单独的副本,这也有点冒险。不需要有最终用户看到的生产副作用。生产可能包含敏感数据,从而引入合规风险。