我们都知道,当今的时代是一个新技术蓬勃发展的时代;大数据、云计算、移动互联网、物联网……作为应用服务开发者的我们,有了很多很好的选择;我们的传统的应用基础架构也开始向云端迁移;我们看一下,现在企业应用IT架构是什么样?
很典型,从用户一直到硬件,很立体的六个层面,从用户到CDN,到防护墙,防护墙内有一堆的服务器,跑的是你的代码,还有一堆的硬盘做数据存储,这是咱们传统企业的应用架构。到了云的时代,因为我要讲的是云时代的APM,架构就变成这样了,后端防火墙的一些东西都隐化了,到了云时代背后的一般都变成一种资源,包括网络,可能很多人也不一定知道,网络怎么把它变成一种资源,有一种技术叫SDN,把所有东西变成资源以后在云上我们看到的情况会很不一样。到了云的时代,很多东西都在云上,为什么会发生这样的变化呢?
既然是一种技术趋势上升带来的变化,肯定是有很多的好处;就拿青云的服务为例,给我们技术部门有哪些帮助呢?
秒级调度 所有计算、存储、网络资源都是秒级响应。如果初始资源不够用,可以弹性扩展伸缩。不需要的资源可以随时销毁。随需应变,无需等待。
按秒计费,最大限度降低总拥有成本 因为青云的资源可在秒级创建和销毁,为了鼓励大家按需使用资源,我们在计费上只根据您实际使用的时长收费,并精确到秒。让您可以随时调整业务规模,无需考虑计费周期的限制。
私有云,搭建属于自己的私有云环境 通过 SDN 实现的虚拟路由器和交换机,您可以快速搭建属于自己的私有云环境,并提供 100% 的网络隔离,确保安全。还能与现有的计算环境通过安全隧道连接,形成公私兼顾的混合云(hybrid cloud)。
最大程度保障您的数据安全 私有网络提供100%二层隔离,在这个环境里,你的内部数据是非常安全的,黑客无法嗅探或者截获到你的数据。多重实时副本和备份可以保障即使在物理硬件彻底损坏时,数据也不会丢失,并且可以很快恢复业务。都用云了,是不是就不用担心我们的业务系统了呢?一切就完美了吗? 我们的业务一定能向我们期望的那样,快速,稳健增长吗?
我们可以从另外一个角度来思考这个问题;不知道什么时候开始,我们都听过“用户体验”这个名称;什么是用户体验呢?
百度里是这样解释的:用户使用产品和服务过程中建立起来的纯主观感受;
那么这种纯主观感受实际上包含很多的要素;比如说漂亮的视觉设计、贴心专业的服务、快速的用户响应、极致简洁的交互界面等等。
可想而知,上面的这些要素都会影响到用户的纯主观感受,那其实我们今天还要分享一个要素,就是性能;当然性能这块,有很多的数据,比如说网络延迟每增加0.4秒,亚马逊每年将损失16亿美元,性能每减少0.4秒,雅虎访问量就会增加9%,还有移动App里面非常经典的五秒钟定律;如果你的App应用的响应时间大于5秒钟;那么50%移动应用用户会放弃,30%用户会卸载,33%失望的用户会转向竞争对手的应用。
所以小米的雷军也在说一句比较经典的话:抛开性能谈体验,都是耍流氓。
当然他说这句话时候是在小米手机发布会上针对手机跑分是这样,针对我们线上的业务系统实际上也完全适用;我们不禁思考,为什么性能这样重要呢?
很简单,性能影响用户体验,用户体验影响的是我们的业务营收,业务营收就是白花花的金钱;所以这个等式就成立了,即我们的系统性能就等于金钱!既然和钱有关系,我们当然要很好的解决掉。
那我们说了这么的性能,对于性能我们应该如何理解呢?
实际上云智慧对性能的抽象理解很简单,只有两点:
第一个挑战是业务中断,确实对企业来说这是最大的挑战,业务中断有再多的用户没用。所以对企业来讲,业务是永远不能断的。
第二个挑战是什么?性能缓慢,我们回想中国GDP增长曲线,从1978年的3650到2014年的636463,保持平均每年8%的快速增长,经济发展速度是相当的快。中国经济的发展不能慢,为什么?慢了挣钱就少了,挣钱少了中国经济就要崩溃陷入中等收入陷阱,我们也不能慢,慢了说明用户要跑了,钱也就没了,企业也就发展不了,所以天下武功唯快不破。慢代表什么?慢代表性能,性能的好和坏。所以说对于在线提供产品和服务的我们,性能就代表一切!
那我们也在思考,性能影响是通过什么表达给我们;响应时间、吞吐率、延迟、丢包率、慢查询、代码堆栈、崩溃率等等——这是一大堆技术参数,很难理解;而恰恰,我们的IT系统运行产生的指标都是很数据化的;传统做APM的方法做到了一定层面的数据可视化,但是对解决问题实际的用户体验问题我觉得还不够直观,为什么?
其实我们最期望看到的是,用户在做什么的时候怎么样了?每一个他在下单的时候是开怀大笑还是愤怒无边?而这一切,通过用户行为性能分析的层面,我们是能够做的。
当我们的身体出现问题时,只有CT才能在几分钟内给患者完成从头到脚的全身扫描,从而准确发现病灶,为后续的治疗提供准确的依据。
今天的互联网就像人体一样强大而复杂,一款看似简单的网络应用,需要服务器、存储、系统、应用环境、网络和用户电脑/手机设备的一系列支持,才能顺畅运行。当应用发生故障时,比如用户无法登录、页面打不开、搜索没结果,谁来帮助我们快速而准确的定位应用的问题?
APM就像是部署在互联网上的CT扫描设备,通过SDK采集用户端数据,通过监控点采集网络数据,通过探针采集服务器上各种软硬件环境数据,然后利用大数据技术把采集到的数据进行快速诊断分析,发现影响应用性能的“病灶”,并给出诊断建议。
参考和分析市场上国内外的应用性能管理的解决方案;云智慧首创面向业务的基于用户行为性能的方法;这是基于真实的用户行为角度来分析应用的性能表现;分析的维度包括行为的维度和用户的维度。
行为的维度,是从影响业务的各种行为入手来分析行为背后的影响;比如有一个行为叫“支付”,在一段时间内,有1000人支付,其中有400人因为性能问题受到了影响;他们没有支付成功,那么这400人就给业务造成了很大的影响,平均每个人100元的支付额,那就是40000元的业务损失;接下来我们分析400人中有多少人是因为前端的Crash问题,可能有150人,我们接下来再分析这150人都用什么样的手机,系统,运营商,这样一步步有助于我们定位问题;也可能有250人是因为后端的服务质量问题造成影响,体现在加载缓慢上,那么我们可以分析后端的各种服务服的质量。
我们还原一个需求的场景;有一天突然有个用户投诉支付缓慢,支付不成功;这个时候我们技术部门如何快速定位到这个用户的问题,当时的历史快照是什么?目前没有很好的办法;用透视宝的用户分析,我们可以定位到系统的每个用户的每次操作的性能问题上;简单的搜索就可以查到当时这个用户操作时发生了什么,包括前端和后端的整体记录都可以定位到;
另外有的时候我们也关心一类用户的问题,比如说某个区域的联通运营商用户,比如都用了某款国产手机;通过透视宝的用户筛选功能,我们可以针对特定人群进行问题分析,快速找到这类瓶颈。
真正的端到端应该是从用户端到后端的物理服务器以及代码端的完整穿透;
而且应该是基于细化到每个用户的每个真实行为操作层面来看待;
化到每个操作层面的端到端,让深入定位问题有了可能;通过标记在每个行为操作上的Unique ID,透视宝将整个操作背后所有相关环节“拍照”;这样非常有助于我们真实还原问题细节;
透视宝能够帮助运营人员实时分析业务,明确业务性能问题以快速适应市场变化;帮助开发人员基于问题事件定位架构及代码瓶颈,以实现快速构建及改进持续交付;提供端到端全技术栈监控,帮助运维人员快速定位、预测IT系统问题,确保运维SLA与服务质量;面向管理层,提供多维报告与数据决策支持,帮助企业实现用户满意度及运营效率持续提升、企业营收不断提高。