Uber大型分布式系统可靠性运维实践(11)

黑盒测试是一种测量系统正确性的方法 , 它最接近最终用户态环境 。 该类测试类似于端到端测试 。 除了对大多数产品而言 , 进行适当的黑盒测试需要自己的投资 。 关键用户流程和最常见的面向用户的测试场景是最好的黑盒测试用例:以可以随时触发它们的方式执行此操作 , 来检查系统是否正常工作 。

在优步一个明显的黑盒测试是检查驾驶员流量是否在城市一级运行 。 也就是说 , 特定城市的骑车人是否可以请求优步 , 与驾驶员合作并搭乘?一旦此方案自动化 , 就可以定期运行此测试 , 模拟不同的城市 。 拥有强大的黑盒测试系统可以更轻松地验证系统(或系统的某些部分)是否正常工作 。 它也对故障转移练习也有很大帮助 , 可以获得故障转移反馈的最快方法就是运行黑盒测试 。

容量规划对于大型分布式系统来说也同样重要 。 系统固定的计算和存储的成本每月需要数十或数十万美元 。 在这种规模下 , 具有固定数量的部署可能比使用自扩展云解决方案更便宜 。 固定部署应该处理日常和固定趋势下增长的流量 , 并为峰值负载进行自动缩放 。 但是下个月应该运行的最小实例数是多少?接下来的三个月呢?下一年的呢?预测成熟且具有良好历史数据的系统未来流量并不困难 。 然而 , 对于预算来说选择供应商或锁定云提供商的折扣都很重要 。 如果你的服务有大笔账单而你没有考虑容量规划 , 那么你就会错过了最简单的降低和控制成本的机会 。

推荐阅读