说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

APM最佳实践:Web 2.0和AJAX四大优化战略

HTML文档下载 WORD文档下载 PDF文档下载
传统的APM解决方案存在很大的技术盲点,开发者个人及团队有必要同时对边缘活动加以监控。本文针对当下市面上存在的监控技术问题给出了四点优化意见,旨在帮助Web 2.0开发者有效利用APM解决方案解决难题。

随着Web应用程序速度与效率快速增长,网站已经成为企业与其客户进行交互的第一途径——某些情况下甚至成为惟一途径。在线电子商务网站的爆炸式发展就是这种情况的集中体现。

根据Forrester研究公司最新发布的报告,美国国内在线零售业务总销量至2017年将达到3700亿美元,相当于在未来几年内美国在线零售业年度复合增长率都将在10%以上。为了保持自身竞争力,经营实体店铺的零售商们被迫将其关注重点转向在线销售渠道,从而避免成为Amazon.com及其它电子商务网站的免费展示设施。当然,这股风潮的涉及范围远不止于零售行业。

网站能够以成本更低的解决方案为客户带来产品与服务,此类机制与在物理位置提供现场服务的传统机制相比显然更具成本效益。

IT消费化趋势同样对网络经济体系的发展起到了推波助澜的作用。消费者希望能够在任意所处位置、通过任意设备访问更多服务。根据Flurry Analytics公司的调查,智能设备的普及速度比上世纪八十年代的PC革命快了十倍还不止,即使是上世纪九十年代的互联网风潮与近年才出现的社交网络覆盖在速度方面也分别只达到其二分之一与三分之一。

有鉴于此,在线体验——以及对网站在速度与功能多样性所提出的要求——已经成为关键甚至是核心。一系列趋势性特征已经在Web应用程序的设计当中显现出来,通常借由Web 2.0技术实现、例如JavaScript与AJAX,其中包括:

  • 降低页面加载数量。很多电子商务网站会通过减少用户浏览与结账所需要的页面数量来简化整个购买流程。举例来说,消费者在填写计算机配置单的过程中,完全可以在无需重新加载整个页面的前提下变更自己的选项、从而快速搭配出能够满足需求的组装机方案。
  • 异步页面加载机制。通常情况下,我们所使用的大多是HTML页面,这种方式能够大大提高网页的性能表现。具体来说,系统会首先加载体积较为小巧的HTML代码,而后以异步方式逐步加载其它体积更庞大的元素。举个例子,主页面会快速加载完成、全部信息与功能都以异步方式率先交付给用户。在此之后,宣传广告以及内容区信息(通常在操作后才需要显示)才逐步载入完成,并异步显示在我们眼前。
  • 纯客户端处理。现在对页面中各事件的渲染已经可以在完全不必与后端服务器产生交互的前提下完成。在这种情况下,对应内容由Web服务器作为页面的组成部分加以交付,但并不会直接予以显示——除非大家在操作中触发了相应事件。举例为说,当用户将鼠标悬停在某个下拉菜单上时,对应选项才会显示出来。
  • 内容分发网络(简称CDN)。通常情况下,来自浏览器的HTTP请求会由CDN或者其它缓存技术负责填写,这就避免了时刻触及后端Web服务器所带来的性能折扣。这种处理方式旨在为图片等静态内容提供更为出色的访问速度表现。举例来说,Akamai(网络存取加速服务)会在Akamai边缘处对全部页面进行缓存处理。
  • 调用第三方服务供应商的解决方案。另一类常见情况是,由浏览器生成的调用会直接指向第三方服务供应商,因此根本不会触及到相应Web服务器。此类实例包括嵌入式社交媒体插件以及用于提供位置信息的谷歌地图工具。
  • 单页面应用程序。这是一类新近兴起的异步式交互机制,其中整套应用程序都被容纳在单一页面内部、而且其使用体验与桌面应用非常相似。该页面的加载过程由一系列异步式调用组成,而且完全由用户的操作实现触发。此类解决方案彻底摆脱了根据所需内容向服务器发送单一调用的传统机制,从而显著提高了性能表现并降低网络负载。Gmail就是此类方案中的杰出代表。

尽管优势明显,但Web 2.0却也给APM领域带来了不少挑战。在Web 2.0诞生之前,大家只需要对HTTP页面请求及其相关响应加以监控即可轻松追踪用户活动。在那个时候,Web服务器会将返回内容以完整页面的形式响应到用户浏览器当中。有鉴于此,监控机制只需要关注高级页面中的独立请求,也就是说整体与单一请求性能表现都可在HTTP请求层面实现监控。由于所有请求都会被发回到Web服务器,我们只需通过Web服务器层中的代理机制或者对通过线缆传输的数据包进行采样即可有效完成监控任务。这也是APM解决方案早期曾经采用过的常见处理方式。

在Web 2.0时代,各类浏览器都拥有了在单一网页内部执行嵌入代码的能力,这就消除了代码执行需要调用后端应用程序服务器的必要需求。JavaScript是目前在此类应用领域中普及程度最高的语言选项,凭借着自身在速度、效率以及降低网络负载方面的优势(通过运行在终端用户本地硬件之上实现)、它甚至在全部主流编程语言中也保持着旺盛的人气。JavaScript的适用范围极广,其中包括处理页面动画元素、播放音频与视频以及验证Web输入数据等等。

AJAX(即异步式JavaScript与XML)编程趋势的普及则进一步拓展了浏览器在处理异步式请求方面的能力,进而使其能够仅对页面中的特定部分加以更新、而不再需要重新加载整套页面。举例来说,用户在处理结账页面以及运费请求时,他或者她完全可以在与专家沟通后直接查看价格变化而无需重新载入整套页面。

AJAX与JavaScript强大无比,但也给利用传统方法监控Web应用的管理人员带来了一系列挑战。

下面来看其中一些与上述方法相关的主要盲点,包括:代码级分析缺乏,传统角度讲APM解决方案专注于通过在数据中心服务器内安装代理机制以实现对代码执行情况的监控。但现在这类方案只能反响一部分实际情况。

在现代Web应用程序当中,约有八成的代码执行在浏览器内部完成。应用程序服务器内的字节码也存在类似的情况,换言之,必须将测试工具转向浏览器端才能有效监控JavaScript执行与错误状态。

不正确的页面响应时间。时至今日,单纯监控网络流量本身已经无法准确衡量页面的实际响应时间。利用这种方式,只有每一个独立对象(或者点击)所引发的HTTP请求与响应才会返回到Web服务器(或者原点)处、并接受时间检查。然而在Web 2.0时代,很多请求根本不会返回到原点,而更多地被路由至CDN或者利用缓存技术被填充在其它环境当中。


我们同样无法利用网络采样方式处理指向第三方Web服务(例如谷歌地图工具)的调用操作。为了对广告、地图、购物车、网络分析、社交媒体模块、CDN与DNS响应时间等进行全面调查,必须通过身处浏览器内部的监控方案对页面载入时间加以审查才有可能实现。

背景信息不足

在理想条件下,网络流量监控能够将后端调用与将其发出的页面关联起来。对于传统应用程序而言,由此带来的背景信息已经足以用于进行故障排查,但在AJAX领域却无法顺利起效。在AJAX环境下,单一页面发出的调用可能成百上千。而更具挑战的是,大量JavaScript事件(例如鼠标点击菜单选项)根本不会创建出指向Web服务器的调用,这就让此类纯浏览器事件消失在了网络采样方案与Web服务器监控机制的视野当中。

随着网站自身对于动态内容及第三方服务依赖性的持续提升,终端用户的实际使用体验往往只能依靠浏览器自身加以衡量。

四种方式让你的APM战略步入现代化轨道

随着一系列新兴技术成果的出现,Web 2.0在带来挑战的同时也蕴藏着巨大机遇。尽管传统方法已经不能单凭自身力量完成任务,但将令人振奋的新兴检测技术作为补充、进而与原有方案相结合则能够提供远超以往水平的洞察能力。下面我们就来介绍四种足以应对Web 2.0新时期下新型难题的APM战略升级思路。


  • 捕捉功能性问题并建立背景信息

在处理面向外部的应用程序时,性能表现并不是惟一需要关注的重点。应用程序的功能性问题在出现频率上要远高于性能问题,这同时也是导致用户放弃甚至转而使用其它站点的首要原因。由于Web应用程序通常扮演着企业与其客户进行交互的惟一渠道,因此故障排查人员往往不太可能亲自与用户进行沟通以了解到底是哪些环节出了问题。

试想一下,假设由于应用程序的设计存在缺陷、其在处理开头为零的邮政编码信息时出现了错误。

在这种情况下,采用能够捕捉浏览器事件的解决方案,例如鼠标点击以及键盘输入数据,显然能够重现用户的会话活动、从而帮助我们主动识别并解决这些问题。

  • 捕捉JavaScript错误并对其进行故障排查

考虑这样的场景,如果某家企业希望推出一项全新AJAX功能以实现网上下单操作、但却不断返回JavaScript错误,结果会怎样。这一切在Web日志当中可能根本没有体现,而且所有响应时间看起来都极为正常。结果呢,故障排查人员甚至根本感受不到问题的存在——直到客户们的抱怨之声铺天盖地而来。在这种情况下,糊涂不再是福、而意味着潜在营收的大量外流。

我们的APM解决方案应该能够检测JavaScript错误并就此发出警告,从而敦促技术人员尽快着手加以处理。

  • 关注来自页面加载时间的细节信息

为了将广告、地图、购物车、网络分析、社交媒体模块、CDN与DNS响应时间等因素确切纳入监控范畴,我们必须在浏览器内部对页面加载时间进行高度关注。幸运的是,现在新一代IE、火狐以及Chrome浏览器都已经提供HTML 5导航定时功能。它能够将完整的页面加载时长拆分成DNS查找、重新定向、SSL握手、处理以及缓存访问时长等具体项目。务必选择一套具备此类功能的APM解决方案。

  • 将问题隔离在特定页面元素当中

目前浏览器所能捕捉的信息还仅限于完整页面加载内容,也就是说无法针对个别页面提供定时信息,例如载入图像或者图片、CSS样式表、指向Web服务器或者REST API的后端调用所用去的时间。具备网页分析功能的网络采样工具则可以为指向单独页面对象的HTTP请求与响应计时,从而帮助故障排查人员将问题固定在特定页面元素身上。在选择网络监控解决方案时,请大家务必确保自己采购的产品具备这项功能。

APM对Web 2.0应用程序实施监控原理

好的APM产品要以客户为中心、且能够与APM相协作的解决方案,能够在数据之外为IT以及业务部门带来更为确切的答案。除此之外,大家可以选择将其与数据库、虚拟化或者网络性能监控机制结合起来,从而进一步发挥APM在整体企业监控战略当中的全能实力。

结合传统与现代解决方案中的诸多优势要素,APM产品应该具备如下卓越特性:

  • 能够捕捉每位用户的每一次点击并重现Web用户的实际活动,从而真正复制用户使用体验、从而实现背景信息取证并完成故障排查。
  • 利用强大的应用程序运行时架构自动发现机制将我们的应用程序与基础设施关联性加以映射。
  • 确保精确的问题区域识别、详尽的响应时间分解以及完整的传输路径可视化呈现——从应用程序层到终端用户,整个流程尽在掌握。
  • 将所有用户以及追溯信息容纳在一套以“事务”为核心的通用型框架当中——从而保证数据与工作流程以无缝化方式进行协作,并提供独一无二的可视化显示效果。
  • 弥合虚拟化与共享资源冲突给Web应用程序带来的影响,保证数据与关系在所有事务维度中的和谐统一——从浏览器到数据库、从代码层到虚拟机管理程序。
  • 利用细致的根本原因分析机制,在Java与.NET应用程序服务器内部揪出代码层瓶颈。
  • 追踪每项请求的调用堆栈并捕捉相关支持证据,包括内存(堆)统计、方法参数以及SQL绑定变量等。
  • 利用丰富的监控数据与高可扩展性分析机制提供开箱即用的分析与可视化处理方案。

最佳APM解决方案

听云将传统与现代方案的各项优势加以结合,帮助软件开发团队和运维团队得以将自身应用程序性能监控战略推向现代化层面,并在浏览器内部充分支持AJAX处理机制。并捕捉到规模庞大的性能表现与内容数据,从而在Web 2.0应用程序中准确识别应用程序性能与功能问题。


具体包括:

  • 背景信息取证,用于了解用户在执行何种操作时遭遇问题。
  • 捕捉来自整个会话背景的键盘/鼠标事件。
  • 检查AJAX事件以识别错误与性能表现。
  • 检查并识别各类功能性问题。
  • 精确反映页面响应时间及具体的导航计时结果。
  • 昼夜不停地对可用性及性能表现进行测试,包括无用户活动的时期。
  • 能够对JavaScript性能表现与错误进行故障排查。
  • 能够将问题隔离在特定单一页面元素当中。
  • 能够根据需求在浏览器内部对监控细节级别进行配置。

总结

尽管以JavaScript与AJAX为代表的Web 2.0技术体系给传统应用程序性能监控方案带来了诸多挑战,但在让Web应用程序得到了优势显著的处理速度提升的同时,也让性能表现与执行效率迈上新的台阶,希望APM产品能够为开发者给予帮助。

(责编/唐小引)

百度和高德:最后谁是地图的王者? 【CTO论道】瑞智和康CEO陶建辉:软硬结合是消费电子新潮流 10大高效率原型设计工具 JIRA与敏捷:李小龙教给我们的敏捷开发之道 百度开放云:Light Up The World,与开发者共享云未来 有胆你就来!11个在线编码大赛 CTO如何避免决策失控:第一步-定义角色 后机械硬盘时代,那些引领风骚的闪存初创公司 致远文杰:传统企业如何实现移动化转型? 记华为HCC2013 Day2:SDN开放编程系统OPS打造生态圈 HCC2013:华为FusionCube融合至简,性能至优 已确认Stephen Elop候选微软下任CEO 英语对于软件开发者来说到底有多重要? SDCC 2013中国软件开发者大会成功落幕 新浪微博宋琦:PHP在微博优化中的“大显身手” 8月份浏览器份额:IE浏览器PC端出现反弹 移动端跌出前五 如何让Ruby项目速度提升10倍 跨平台进行到底:Facebook发布Unity SDK 云薪资管理初创公司ZenPayroll:年处理薪资超1亿美元,获多位知名CEO力挺 Twitter开源Summingbird:近原生编码下整合批处理与流处理 亚马逊推Matchbook 欲将顽固纸质书读者拉向电子书 Broadcom为可穿戴设备推新开发平台WICED 再战江湖 New Kodak还牛不牛? 郭理靖:公、私有云架构异同点与难点 美化代码的15个代码语法高亮工具 你所不知道的虚拟化和云计算 [开源推荐]Effeckt.css项目:CSS交互动画应用集锦 针对Google Glass应用的四大UX设计原则及典型应用 Google收了摩托罗拉,微软收了诺记,黑莓又将花落谁家? 十亿月PV网站秘诀:Reddit自失败中总结的25条经验 粉碎5个NoSQL流言:各司其职,NoSQL的出现比关系型更早 请教vb3秒精确定时问题? 哪位大侠能在今天内急救!!关于asp.net的数据验证和数组传送问题 lihonggen0(李洪根,用VB,标准答案来了) 密码被人盗用 在Delphi中用ADO怎样连接Excel表 x++等的问题。 当一个数据库数据更新后如何通知所有连接到此数据库的用户来更新自己? 一个有趣的问题 奉献100, 现在手头有个程序,关于附件上传! 如何判断A字符串中是否包含B字串? 做个类似的邮件发送程序 快快就我 怎样同时新增主从两张表的数据? vb.Net中的几种类型集合中,那种适合于用Index和Key来索引?我怎么觉得.Net的CollectionBase还没有vb6的Collection好使? 为亚洲雪耻,为中国队加油!! 紧急求助:在那儿可以找到关于字体文件的文件格式!!! 测试adoconnection是否已关闭 请教各位大侠! 关于表设了密码的问题 开始了吗?开始了吗?北京的高程考试报名开始了吗? 如何自定义数据类型? 图片显示不了了 java 线程,对当前线程(非主线程)调用sleep,为什么主线程(窗口)也没反应了 各位大虾帮忙呀,哪位把下面的文字翻译成准确的英文,200分相赠!!!决不食言!!! 请教:PHP下的事件处理方法 如何通过ASCII码区分全角与半角字符?急! 触发器???:(拜托各位大哥大姐,大叔大伯! 字符串替换函数是什么? 送分 那位大虾帮我翻译一下 急 分不够可以加 为了忘却的纪念! 急急急急急!!!!!!!!!!,Band里的内容过长,如何让它自动的分页??? oicq的窗口title怎么为空了?如何得到句柄? session问题! 用dbgrideh控件,如何实现汇总结果的打印 有关ATL的最基础问题 怎样监控icmp包?用自编的程序 急急急急急!!!!!!!!!!,Band里的内容过长,如何让它自动的分页??? 使对话框最小化渐变到托盘区。 各位高手!!我用的是win2000工作组模式,为什么我能访问别人,而别人不能访问我呢??? 有关文件的读写问题。 大家讨论一下内存分配、释放的问题 关于在jsp中运用sqlserver的小问题!!! 怎么样可以将session的存活期限设置成“永远不死”?? 送分题,如何取得一个表的所有字段名? 那里可以下载Wrox系列书的英文版? 无法启动sqlserver的问题. DELPHI中dbgird的语句问题 关于控制动态产生Checkbox,并进行动态控问题 BCB中使用MSComm控件,无法定义动态数组变量,该怎么办?--急啊!在线等待 战神----巴蒂 两个问题! 用ADO访问DBASE数据库 如图所示是利用太阳能加热水的简易装置.水箱的四壁和底部均用绝热材料制成,箱顶装有吸热板,其面积为1m2 ,水箱内装有质量为50kg的水.地 球表面接受的太阳辐射热为1.0x103J/(s.m2 ),若水箱里的 二手的反应釜能用吗?很多朋友讲旧的反应釜不是太好用,我的钱不多.想买几个旧的反应釜但心里没底,想问问大家该怎么办? 尼龙塑料于POM料混在一起了怎么可以分离出来? 光的波长和频率有什么关系 二手反应釜能用吗?我想购买2台5吨的不锈钢反应釜, 求几个传感器电路图 净水器换滤芯的好还是不换滤芯的好?看到好多种类,几个差别也比较大,不知以什么标准选择,大家给点建议 单级反渗透和双级反渗透有什么不一样的? 光敏传感器声光控开关电路摘要 SI单位制是什么意思? 爆菊花是什么意思呀?不懂~~谁告诉我一下?什么意思呐呐~还是不动啊~~ 传感器本身带有测量电路吗 菊爆是什么意思 EDTA-二钾的化学式书写 1、硝酸中含有少量硫酸,应选用什么试剂除去,2、硝酸钾溶液中混有少量硫酸镁,应选用什么试剂除去, 在车床上可完成哪些加工?写出各种加工所采用的刀具的名称 吃什么食物增加热量加得多 如何配制硫酸硝酸法的试剂将质量比为2:1的浓硫酸和浓硝酸混合液加入到试剂水(1L水约2滴混合液)中,使PH为3.20±0.05.请问浓硫酸和浓硝酸各为多少毫升? 在车床上加工槽(退刀槽之类的)时,如果刀宽比要加工的槽宽小时,可以使用刀具长度补偿来进行加工吗?谢 请大家告诉我这些我平常吃的食物的热量吧谢谢!~_~有苹果,地瓜干(用煮熟的地瓜切片晒的).薯片,成杯的什么小米粥(不加糖),成杯的八宝粥(不加糖),豆浆,豆腐脑,汉堡包,皇家法式粗粮葡萄面包, 用什么试剂除去硝酸里的硫酸 乐器学笛子,二胡,古筝,小提琴,哪个好学可以用大小号来区分,注意,要学过后有感觉的人来说,不懂请不要误导哦! 太阳辐射量怎么表示比如温度用摄氏度,高度用米,千米,等 波长里的频率和周期怎么理解? 1mol任何物质所含有的粒子数为NA个与1mol任何物质的粒子数目为NA个有什么区别 单位体积太阳辐射计算知道地球上单位面积的太阳辐射量,单位体积内的辐射量怎么算? 玻璃纤维增强聚碳酸酯塑料为什么含镉 波长,频率和波速的关系公式 :v=f×λ如果要找λ的话公式就变成这样 :λ=v/f我不明白为什么会变成这样 不是应该 λ=f/v 单位体积太阳辐射量计算知道地球上单位面积内太阳辐射功率,单位体积的辐射量怎么计算? 基于单片机的数字温度计设计最近在做单片机设计,题目是温度计的设计,设计要求:1)基本范围-50℃-110℃.2)精度误差小于0.5℃.3)LED数码直读显示.4)扩展功能.5)可以任意设定温度的上下 爆 菊是什么意思 怎么看太阳辐射量 中学化学实验中温度计的使用分哪三种情况以及哪些实验需要温度计 1mol的任何物质的粒子数(都约为6.02×10²³个),叫做 ( ),符号为( ) 普通话音节wen是由几个音素构成的音节? 车钳铣刨磨的区别真是不争气啊,这个我都不知道, 判断:1mol任何物质都含有约6点02乘以10的23次幂 没有元音音素可否构成音节1.没有元音音素,辅音音素可否单独构成一个音节?2.辅音音素中][m][n][ŋ]][l]可构成成音节,成音节可否脱离元音音素单独构成一个单词? 我机械加工(车铣刨磨钳床或加工中心等) 易燃金属合金材料都有哪些(比如说镁铝合金)? 从文字符号记录的语言结构系统中的单位的情况分析,汉字属于A音节文字 B音素文字 C语素文字 D音位文字 知道音节是由音素组成的.可是”开音节“的定义却是元音字母结尾?唉 怎么都没有回答到点子上? 车,铣,刨,磨,钳,锻,铸的英文翻译? 汉字是语素文字,还是语素音节文字? 碘化硫(硫化碘)化合价碘化硫(硫化碘)中谁呈正价?谁呈负价?如果化合了谁是正价,谁是负价? 车铣刨磨钻命名的由来,问问 谈谈汉语的音节、语素和汉字的关系尽可能详细的论述 为什么没有碘化铁这种物质?还有,有没有硫化铁这种物质? 某种洗衣机在洗涤衣服时,经历了进水、清洗、排水、脱水四个连续的过程,其中进水、某洗衣机在洗涤衣服时,经历了进水、清洗、排水、脱水四个连续过程,其中进水、清洗、排水时洗衣机中 生巧克力热量和普通巧克力比怎么样? 二硫化碘钙是什么意思?也许是跟化学式有关吧!! 会是Kiss吗(⊙_⊙)? 某种洗衣机在洗涤衣服时,经历了进水、清洗、排水、脱水四个连续的过程,其中进水、清洗、排水时洗衣机中的水量(L)与时间(min)之间的关系如折线图所示,根据图像解答下列问题:1) 比巧克力含热量多的是什么 碘和四硫化碳为什么不能分离为什么不能用分液漏斗分离,但四硫化碳和水则可以呢?PS:书上写的分离实验是碘酒和四硫化碳 基于数字温度传感器的数字温度计设计需要一份毕业设计,有实物的,有的带价MMM,18730651485,黑人勿扰 化学实验中的玻璃器皿有哪些? 一枚铁钉投入到硫酸铜溶液中,过一会儿取出,发现铁钉表面有红色物质附着,洗涤,干燥后,发现铁钉质量增加了0.2克,问参加反应的铁的质量为多少克? 设计数字温度计我有一块单片机学习版,一个PT100和一个NTC10K的温度探头!请问我如何将它们设计成温度数字温度计?缺零件我可以买的! 现代汉语中一个音节最多包含多少个拼音?现代汉语中一个音节最多包含多少个拼音字母? 化学合成中的"反应釜“那里卖旧货想买个化学合成中的"反应釜“那里有卖旧的~!新的太贵了我是河南郑州的,有知道的给我留言谢谢~! 数字温度计设计过程中常见的问题单片机课程设计,数字温度计设计过程中常遇到的问题及解决办法...
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘