当前的商业环境与二十年前相比发生了很大改变,很显著的情况是几乎没有哪个行业的发展能够缺少IT技术作为基础支撑平台的一部分。而提供各种功能的IT系统我们都可以将其分成两个部分来看待,一是借助IT系统来开展业务的相关内容,二是满足业务需要所必须的技术支撑部分,包括了满足业务需求所进行的系统开发、部署上线和确保正常运行,第二部分工作内容的好坏直接影响了第一部分业务的开展,因而就保证第二部分工作内容的高效完成,我们需要关注的内容非常多,这里我们从应用性能管理的角度略做分析。
我们从一个最简单的应用场景开始。假设用户使用浏览器登陆某一个Web系统,等待了20秒之后,跳转到一个错误页面,提示登陆失败,再重复两次,还是同样的情况;1个小时之后用户再次登陆该系统,等待了10秒之后,登陆成功。相信这样的场景很多人都会遇到过,从这个场景我们能看出什么来呢?
首先,毫无疑问的一点,用户对这样的体验绝对是不满意的,如果处理的是一个紧急的事情,体验更是糟糕无比。
其次,业务部分是肯定不希望这样的情况还长期的持续下去,因为这必然会导致用户的流失和交易量的下降,业务部门会要求技术部门确保系统避免此类问题的持续发生。
对于技术部门而言,这肯定是个糟糕的情况,这通常意味着来了一个新问题,很可能还是突发性的工作,需要加班加点研究解决办法,那么就会衍生出后续和一系列的相关工作。
谁来告诉我问题出现哪里?
是应用本身存在问题,还是网络的原因?
是数据中心网络配置的问题还是外部网络不稳定的问题?
网络管理团队告诉开发团队“网络没有问题”,应用上可能存在问题,但是是Web服务器出现问题还是数据库存在问题呢?
为什么之前都是正常的刚才会出现问题呢?为什么现在又正常了呢?下次节假日的时候还会不会再出现问题呢?
为什么用户需要10秒钟才能登陆而不是3秒钟呢?怎么才能让时间缩短到3秒钟?系统进行优化后是不是真的达到了我们期望的3秒钟呢?
所有上面这些问题没人拍拍脑袋就能告诉你,IT系统是一个程序化的产物,能够告诉你为什么用户登录会失败,为什么登录需要10秒钟的,只有系统运行的所产生的数据,而且是生产环境中的运行数据。要避免这样的问题,以及更严重的导致交易无法进行的问题,必须知道系统在处理什么,处理的结果是什么,必须获得应用系统的运行可视性。
系统运行会产生哪些数据?而哪些数据是我们需要看到的?这些数据通过什么样的方式展示给我们是最方便有效的呢?我们需要对这些有清楚认识和明确的期望。