当前位置: 首页 > 科技观察

衡量云性能:我们需要不同的衡量标准

时间:2023-03-20 22:56:22 科技观察

正如开尔文勋爵所说:“衡量就是知道。”但是,这句简单的格言实施起来却极其困难。其真正含义分为以下两点。第一个含义很清楚:我们无法在不测量的情况下感知事物。例如,如果要快速了解应用程序的运行情况,则必须选择几个键并对其进行跟踪。“性能好”意味着该功能可以在短时间内完成,而性能差意味着该功能需要极长的时间才能实现。另一个重要指标是应用程序本身是否具有“理想性能”。例如,性能在不同负载条件下或跨应用程序的不同组件时是否稳定?第二个含义更加模糊,但同样重要:通过定义指标,我们实际上是在定义我们自己的知识边界。在应用程序环境中,这可能没什么大不了的;但是云环境提出了完全不同的挑战。由于我们无法完全控制我们的环境,因此无法衡量一切可能会令人恐惧。当应用上云时鉴于此,在将服务上云时,我们实际上要用测量的方法来把握用户体验。如果做不到这一点,或者只能同时关注同一个指标,那么我们就很难做出正确的判断。例如,在传统的Web应用环境中,我们常常将页面加载或渲染速度指标作为其他组件的性能参考。例如,缓慢的页面加载可能意味着数据库后端出现故障或不堪重负。但是,这种思路显然有其局限性:它假设应用程序之间的连接没有问题。在内部运行基础设施中,我们可以以此作为故障排除的前提——这种做法是非常合理的。但是在云环境下,问题显然没有这么简单。云改变一切在云环境中,这个假设不再成立。我们的云服务提供商会随时更改当前环境,整个重新配置过程完全不受您的控制。服务本身就是我们付出的代价,没有别的!如果你想象租用完整的云资源,如内部基础设施,那么成本将超出承受能力。事实上,我们之所以在云环境中照顾负载,是因为它可以提供传统数据中心无法比拟的容量上限。这意味着底层基础设施——包括网络、硬件,甚至服务运行的环境——始终作为变量存在。这当然不是坏事,但问题是测量如此多的自变量是一个巨大的挑战。幸运的是,云环境本身提供了一种实际完成管理任务的方法:获取数据:大多数云服务提供单一的指标或查询机制制造商。每秒的总线信息、存储操作、计算资源使用情况等都可以成为掌握底层服务动态的线索。处理数据:一些云服务聚合数据并以易于使用的方式集中提供。你可以用它随时查看数据流量,这也应该成为任何形式的云系统必备的配套解决方案。数据可视化:大多数数据聚合服务都提供多种可视化工具。Ops然后可以使用它来讨论并向管理层解释当前的操作条件,并确保一切都在“基线”之内。只有把握住这种“正常”状态,才能及时发现异常问题。确保您的应用程序生成有价值的数据:应用程序日志通常分为两种类型:完全调试和停止报告。确保您的应用生成有价值且可操作的指标。不要依赖单一来源:如果你只使用当前云服务供应商提供的指标,那么你可能无法保证审计合规性。正如良好的财务控制和审计是业务成功的关键一样,我们需要在技术层面采用相同的思维方式。事实上,你不妨用怀疑的眼光看待一切,必要时求助于第三方供应商。当然,云服务提供商自己往往是最先发现问题的。在这种情况下,我们应该与外部监控厂商进行沟通,建立更可靠、更及时的测量系统。