终端用户体验不是从数据中心对性能指标的简单监控,而是决定了公司对于应用的投入是否成功。
书中一再强调没有绝对的性能评判标准,关键性能指标的确定需要依照用户的期望而定,而且可以肯定的是用户的期望肯定随着时间的发展而越来越高。
用户体验是应用性能的重要一部分,值得格外关注。
由于互联网浏览器应用的大行其道,本章重点关注与此相关的外部监控。
什么是外部监控?在应用部署架构边缘设施之外使用各种工具和技术对IT应用的响应时间进行监控和解读。
为什么要从外部进行监控?面向服务的架构,分布式与计算托管以及无处不在的第三方组件依赖。这些依赖都和应用性能密切相关,同时也和业务价值紧密相关。所有这些核心应用之外通过外部组件提供的功能都需要更好地管理,而外部监控很好地满足了这个需求。外部监控的关键优点:
在外部监控过程中,如果出现的问题超出了运营团队能够处理的范围,能够获得一手数据也可以帮他们更好地向第三方公司提出质询。外部监控就好像“煤矿中的金丝雀”。使用恰当的话,可以提供一些影响层面的分析并且可以定位造成问题的大致区域。对基于上下文的应用性能相关性管理来说非常重要。
外部监控分类
主动监控
主动监控也被叫做综合监控,主动监控会定期安排,使用一些测试节点重复执行自动化的测试脚本。使用了和性能测试自动化类似的技术,即用工具来回放一些用例脚本,不同的地方在于这种回放一般只会在一台设备上使用一个虚拟用户来执行,而且通常会涉及完整的UI和浏览器操作。(这么说这是一个完整的用户操作模拟?)这种类型的工具通常会提供基于WEB管理终端来控制和管理多个远程代理。
可以在故障发生之前对于一些即将发生的错误进行告警(这应该是外部监控策略的一个目标)。
主动监控提供以下关键指标:可用性和总体响应时间(和真实用户体验到的响应时间还是有差别)
被动监控
被动监控也叫做真实用户监控(RUM)或者用户体验监控(UEM),被动外部监控依赖于注入在页面里面的代码片段,或者是应用服务器动态注入到客户浏览器的一些代码片段所提供的数据。
被动监控通常是基于对终端用户的浏览数据进行抓取的,当然对于一些其他客户端而言,一些定制的插件也可以达到同样的效果。和主动监控不一样,被动监控依赖用户流量。被动监控原理: 对于浏览器客户端而言,最常用的被动监控技术就是在web页面的头部加入JavaScript代码或者标签。在大多数情况下,这些标签会一直保存在被植入的页面当中,程序员可以使简单的备份或者全局Include指令来实现。EUE工具供应商现在越来越多地使用动态植入技术,通过网站的应用服务器在用户请求页面动态植入JavaScript来实现这个功能。
被动监控工具的实现都差不多,大多数被动监控工具都是基于标准的W3C导航指标实现的,本质的区别主要在:
主动和被动监控的优缺点
考虑因素:
尽可能使用最少的工具组合实现以下功能:
选择标准
技术覆盖点:检测和隔离问题的能力,支持不断进化的网站组件,脚本过滤和自定义编码功能,对登录,消息系统的验证,以及流好媒体的监控。对于关键性能因素和页面模块的自动分析和评分功能。能和第三方告警系统集成。截屏以及对于失败或成功的路径跟踪功能。分析和跟踪个体对象性能的能力。测试复杂交易的能力。
主动监控工具选择余地比较小。
被动监控工具选择考虑以下几点:
考虑因素
主动监控的特有设计
被动监控的特有设计
被动监控的关键意义在于发现那些盲点,并做出响应的补偿措施。
在选择工具的时候必须特别注意,将应用的特性、技术细节特征、用户流量特征、关键市场的地理位置(已经存在的及计划拓展的)等多种因素考虑在内。在根据已有的最佳实践为外部监控搭建好测试框架之后,你需要对至少一个业务整月的数据据进行收集和分析。这些数据可以作为通常情况下的业务参考基线。
通常一个应用在性能表面上会按照一周的周期重复发生。这种重复模式为应用的整体性能特征提供了一个宏观的指示,比如容量问题或者是应用服务某个特定用户群体存在的大致问题。这些最初的发现可以为后续的性能策略提供很好的方向指引。
假设应用的整体性能表现稳定,我们就可以为应用设定恰当的关键性能指标(KPIs)以及相关的SLAs.
基于web的电子商务应用的关键性能指标
KPI的制定需要参考很多因素:
应用性能指数:是根据度量应用响应从而来比较终端用户的满意度的方法。
在对主体KPI设定以及信息发布模式(信处同步看板、每日邮件、短信告警)取得共识之后,你就需要考虑怎样将最原始的性能数据处理成最具相关性的汇报信息:
有效的报告:相关,及时,易理解
竞品分析:要理解网站性能和关键竞争对手的对比情况,有一些因素要考虑到:数据维度,设备和传输模式,地理位置,选择条件。
告警: 工具产生的告警是否能够指导实际工作。