提高业务价值 APM应用与整合分享

杭州数云 罗兴峰
杭州数云信息技术有限公司成立于2011年,是国内领先的数据化营销软件产品和服务提供商,多年来致力于为消费品牌和零售品牌商提供整合软件产品、数据模型和专业服务的一站式数据化营销解决方案。随着业务的高速发展和产品功能愈来愈复杂,数云的运维部门经常要花大量时间来排查业务部门反馈过来的问题,为了更效率的解决系统运行时发现的业务问题,数云开始尝试APM。通过近一年的使用,APM不但帮助数云实现了基于业务流的信息自动采集和自动关联,同时改进了运维和技术部门的工做方法,提升了整个团队的工做能力,你们造成了用数听说明事情、说明问题的习惯。前端

1

下面是杭州数云信息技术有限公司运营总监罗兴峰以《提高业务价值,创见卓越用户体验——APM应用与整合分享》为主题带来的APM使用经验分享。
罗兴峰:个人分享和前面几位的出发点不太同样,前面你们聊的都是如何实现APM,而我要从APM的用户的角度谈谈APM的应用和整合。
数云做为一家业务型的公司,保证业务可以更好卖是咱们选择新技术的惟一缘由。今天在签到的时候领到一件很炫的T恤,当时很是想穿上这件衣服进行分享,但试穿的时候发现肩膀太窄,因而就换下来了。生产衣服的厂商常常会碰到相似的问题,但大部分消费者并不会告诉他这件衣服的问题,换一个角度来讲,数云在软件行业里面的位置就像衣服的生产商,若是软件里某个按纽老是要30秒之后才出来,一般不会有最终用户为了这种不起眼的“体验问题”跟企业沟通,而是默默放弃这个产品。对数云来讲,这种问题虽然很是须要优化,但除非客户的忠诚度很是高,不然没人会主动告诉咱们,这种可能对业务形成影响的“小”问题彻底值得咱们给一大笔奖金, 而APM的价值就体如今这里。nginx

2

从产品的角度来讲,由于数云提供的是复杂的企业级应用,放在互联网上销售,这种应用的架构很是复杂,体量能够用一个数量描述就是JVM大小达到30个G,里面有大量的业务数据在跑,一个客户会建立不少任务,假设并发的任务到一百,那么这一个客户就会有一百个内容在系统里面不停运行,并且时时刻刻都不一样,到底哪一个出问题了根本不知道,有时候甚至连客户都不知道,由于这些任务在后台是自动跑的,无人干扰,一个任务可能跑两天,可能跑一天,而这个任务若是关系到客户的营销,挂掉了就可能会形成几十万的亏损。系统出了问题却没有主动发现,杭州数云是否是要承担责任?
做为数云的运维,咱们不可能针对每个任务作一个单独的监控和报警,由于大部分故障都是特例。因此最大的问题就是这个故障到底在哪里,有多严重,同时这个故障的发生是不是偶发性的,1500家客户里面可能有一家客户在一个月发生一次这种问题,可是这一次究竟是什么缘由,就须要还原案发现场,好比说刚才说的全数据,当时那次点击或者那个做业的数据毫不能丢,若是丢了就看不了案发现场,就没法知道当时的状况究竟是什么,也许外部通道挂了,也许数据平台出现问题,甚至是断网。数云没有腾讯淘宝这么强大,容错那么厉害,不可能作到面面俱到,因此最重要的就是发现问题并把当时的问题记下来,和开发一块儿解决问题,这都是运维的工做。
咱们有一次遇到了性能方面的问题,当时有些客户反映某个功能很慢,可是咱们本身测试的时候很快,因而认为是偶发性的,从应用端看确实没有太大问题,追究以后发现问题发生在nginx到app这一层,受到淘宝机房通信带宽不稳定的影响。这其实只是个简单问题,但却耗费了两个核心程序员,三四个普通程序员,一个月的时间才找到问题出在哪里。一般最容易定位的问题是服务整个挂掉,最不容易定位的是不稳定,这种时候客户找来却没法快速排查当时的状况,须要找各个环节的日志,每一个环节的日志都得去看,并且是要关联起来,这一点很难。程序员

3

所谓关联起来就是把此次点击从前端到后端到数据库的全部性能数据链接起来,若是只有那一次发生了问题,究竟是什么样的问题,咱们当时关联的方法就是看时间,根据时间点判断日志数据是否是关联的,这要求一个工程师把全部日志数据从头至尾所有都看一遍,而真正能作这个事情的工程师不多,因而你们凑在一块儿搞了一个月,这是数云在第一年遇到的状况,虽然最后的解决办法挺简单的,但真正发现问题蛮难的。咱们还碰到过一次数据库性能的问题,当时某一个点击因为参数没有设置好,读记录要进行八十次数据库扫描,其中有不少操做都是无效的,但光是检查数据库是没法发现问题的。
如今就比较简单了,经过和云智慧近一年的合做,数云创建起一条完整的APM链路,把前端APP到底层应用组件都串接起来,这样作最大的好处就是能够准确得到一次访问的全部数据。前面说的某次点击是一次事务,从nginx到app,此次做业里全部环节的表现都能获得,这一点很重要。咱们首先能找到访问究竟是慢仍是快,而且经过阈值设置报警,这也是后来融合到管理里面的一项重要功能。获得报警之后再看究竟是哪里慢,原来须要根据数据库的日志来看,而应用的云服务RDS日志获取难度比较大,不少时候拿不到数据库日志,这种状况下经过应用获得接口的状况是比较好的办法。数据库

4

刚才说了APM是帮咱们找问题的一项技术,对一个应用方来讲,能真正把APM应用到企业里并产生生产力,还须要不少问题。好比用什么样的方式来管理APM的报警,总不能在APM平台上创建另一套监控管理平台或报警平台,由于没有人,没法为外部系统创建一个小组,留两到三我的每天看APM的数据。但咱们有本身的内部监控系统,云智慧把报警数据接入咱们的监控平台里,这样就能够用不变的工做流程来统一APM的监控结果,而后经过统一的API或者是告警短信发送到监控处理人员手上。后端

5

获得APM数据之后主要有两个用途,一方面是直接在云智慧的平台上把APM的性能表现数据呈现出来,特别是平台级应用监控数据和关联性数据,当时碰到了一个问题就是数云的数据量太大,关联性不好,经过关于APM数据如何落地的反复探讨,云智慧增强了产品自定义的能力,咱们的APM数据逐渐造成一些可定义的报表,整合数云内部运维分析系统,每一个星期均可以针对性能数据作相应的分析。就像开始说的T恤的案例,若是经过性能分析发现提供销售的全部小尺码没有任何人买,就说明个人产品设计可能有问题,由于用户需求不该该是偏向一端的,从业务数据的异常发现产品的问题。数云也有一样的例子,线上产品的性能表现是否是可以经过业务分析,发现哪里是慢的或者老是报错超时,把数据反馈给研发,而且持续跟进这个问题是怎么解决的。
咱们和大型企业有比较大的区别在于,创业型公司的运维不只要对自己的事情负责,还要对产品的质量负责、对产品的交付要负责,你要覆盖到功能,甚至要比研发还研发。咱们作的报告不但指出这周哪个地址是慢的,而且要知道哪一个方法慢或者是哪一个域慢,这种报告的业务价值很高。
APM是一项很炫酷的技术,只要作好了前期的配合,最后落地方式很是简单,由于借助APM,一个毕业一年、彻底没有技术背景的小姑娘都能完成报告。这对于创业型公司或应用APM的厂商是很是重要的,咱们这边作报告的小姑娘常常拿着报告去找研发拍桌子,这个东西何时改,研发都不知道线上有这个问题,可是这个小姑娘知道。经过APM,运维在业务发展过程当中承担起更重要的责任,也确实解决了不少问题,并且从发现业务波动到解决问题的速度很是快,两到三天就能够解决掉。
经过这件事,整个运维团队甚至公司的技术团队发现,咱们的定位开始向业务运维和运营化运维的方向发展,这很是适合初创型公司和成长型公司。同时咱们几个工做了两到三年的运维工程师也在迅速进步,如今都成了很是合格的运维架构经理或者是运营型运维经理,他们成长最大的标志是懂得了取舍,很是清楚在一个阶段咱们本身要去作的技术是哪些,哪些技术是咱们不能作的。浏览器

6

为何呢?好比在APM方向上咱们不会有大量投入,这不是咱们本身的业务点,因此这块交给云智慧,而咱们要作的是中间的架构,不会有任何公司帮咱们。因此咱们须要想办法接入全部的严控系统,包括外部的、自建的、还有产品内部的,要把外部资源和本身的资源同样使用,才能得到快速发展。而咱们要作的无非就是算账,我用多少钱本身作,我用多少钱找别人作,找别人作的话用什么样的标准接入进来,这样的话才能实现统一的方法,这个东西是创业型公司的运维须要作的。网络

7

专业的人作APM就很厉害,由于咱们作不出上面的东西,在最初没有这些黄色的点的时候咱们很难用一个技术或者一种方法把数据从前到后都串起来,因此咱们花的最多的时间就是把全部案发现场的线索进行关联,一个老干警破案都不是依靠单个信息,而是把全部信息汇总起来的能力,APM干的事情很厉害,一方面把全部的信息自动采集,另一方面把全部的信息自动关联,这一点不是通常的企业能作的,实施过程也花了比较长的时间,但这些时间的花费是很是值得的,由于如今APM已经可以很好的帮助咱们发现问题、解决问题了。
咱们全部的产品在上线以前都要进行压力测试,就是用大负载把应用打到崩溃为止的压力测试,由于在双十一之类电商大促的时候,产品的压力是平时的一百倍,压测就是要保证产品在极限的状况下也能健康运转。压测时要看哪一个系统最早挂掉,哪一个位置哪一个功能模块最早挂掉,经过APM来测就会比较容易聚焦,这样就能够制定双十一的系统运行方案,若是最后搞不定,零点到四点必需要降级,只要把那个点降下来就能够了,APM能够帮咱们发现这个点。架构

8

除此以外,咱们对人力的需求变少了,并且门槛更低了,同时全部人的有效工做时间变长了,从原来天天都忙于干不过重要的事情(好比前文提到的定位问题),到如今专一于解决问题。过去的运维对于技术水平要求很是高,由于底层的系统支撑都是在平台上跑,因此须要对集团的平台有很深的了解,而如今事情难度下降了不少。原有要被动等到客户来投诉,客户说什么功能已经挂了之后再找问题、解决问题,而如今只要每周都作性能分析和性能报警,客户尚未什么太多的问题,甚至客户还没用的时候,咱们就发现新功能哪里有性能瓶颈,哪里报警了,而后告诉产品、研发、运营这个功能立刻要调整,这就赢得了不少时间。特别是双十一这种时候,若是没有及时推出某个功能,极可能就会被竞争对手抢得先机,商家不能等就会购买对手的产品,这时咱们的产品才姗姗来迟,营销的机会就没了,无论说是研发的责任仍是运维的责任,对于公司来讲都失败了。
在BAT这种大型的互联网公司工做是很是聚焦,好比作网络协议性能测试,只要测多大的包能把这个服务干掉就行了,而创业公司的运维部门还要让公司更好的发展更好地赚钱,让团队的员工得到职业成就感,职业成就感是超出解决技术问题的成就感,由于公司用你的技术问题赚钱了。一样APM厂商也颇有职业成就感,由于他们的技术可以帮助客户解决问题,这种成就感也很是强。
数云从接触APM到如今大概一年的时间,去年咱们没有这种东西,开始时双方都只是一个模糊的需求,咱们把这个东西落地去实现,而后改进咱们的工做方法,提升整个团队的工做能力,中间克服了不少问题,你们造成了新的习惯,用数听说明事情、说明问题,这就是APM最大的价值。并发

9

最后回顾一下今天的分享,对于不一样类型的企业,APM带来的价值不一样,帮咱们省时间、省人力、加快市场节奏,提高研发能力,提高运维能力,让企业健康成长,是创业公司比较重要的。不少大型公司的业务特色会更复杂,甚至未来APM会成为新的业务增加点,极可能会本身作APM。但咱们也看到了新的方向,APM不只能够作基于IT的应用性能分析,还能够作业务性能分析。有一次产品经理跑过来和我说,你帮我看看产品里面哪一个功能点是客户最喜欢用的,而后这个用户用的好或者很差,咱们那次作的数据就是来自APM采集的数据。经过与云智慧的合做,咱们对APM的了解也愈来愈深,知道APM采集了哪些数据,能作哪些事情不能作哪些事情,咱们不断加深合做,由于APM必定要在系统层面实施,一个业务模块是怎么样、热度如何、客户反应如何、哪一个区域点击最多,都是APM可以获得的,将来还能够延展出更多价值点。
APM在各个环节的传感器思路,是一种比较容易实现的思路,有不少公司经过侵入式埋点的方式实现监测和数据获取,但做为第三方服务企业是不适合过分侵入客户系统的,因此经过发起探测的思路获取数据,效果是同样的。咱们用传感器的数据也干了不少不同的事情,好比硬盘的挂载点,由于会碰到不一样的机型,网络网卡这些问题,因此能够用一些小的机器人把数据传过来,这些点不必定决定你使用哪一个APM产品,但这个思路必定可让你的工做获得改善。谢谢你们!
Q&Aapp

Q:刚刚您分享了不少APM所带来的积极的东西,我想更多的了解一下如今您采用了什么东西,您如今遇到哪些尚未能解决的问题,好比说像后台能不能检测到。
罗兴峰:以前监测不到后台任务,如今能够了,只不过这个事情尚未在线上大批量的作,由于经过别的手段也能采集到这些数据,但他们确实已经作到了。
Q:在产品发布初期的问题不少,对APM的依赖会很是强,随着产品的演进,APM的重要程度有没有变化?

罗兴峰:咱们如今不倾向于等产品上线,就直接在灰度的时候跑,等到很是稳定了之后咱们会把后端APM的探针下掉,由于浏览器特征太多了,没法决定客户是怎么写的,可能会碰到冲突的问题,可是冲突只要能识别,把冲突发现了就是能够调,没有什么搞不定的,无非就是写法的问题。数云的产品有个好处,就是客户是toB的,他们对浏览器端的要求很是低,若是是To C用户就要作大量的兼容测试,常常是发现性能有问题,找后端程序员定位,定位了好久说全部的数据都是好的,结果发现前端的JS有问题,只要稍微一改立刻就行了。这就是浏览器监控的重要性,必须真正从客户这一端发起,云智慧这个功能其实仍是蛮强的。若是是To C的产品就必需要作这个事情,咱们会尽量往前端走,产品的用户体验仍是很是重要的。数云的产品复杂度过高了,一个客户对于产品的使用率,可能只有其中30%—40%,可是有些客户喜欢这30%,有些客户喜欢另外30%,因此产品必须是可以灵活自定义的,容许不一样的方式使用咱们的软件,怎样平衡这些产品功能,是咱们如今面临的主要问题。

图片描述

云智慧是业务运维解决方案服务商,旗下产品监控宝(www.jiankongbao.com)、透视宝(www.toushibao.com)、压测宝(www.yacebao.com),已累计为电商、移动互联网、广告传媒、在线游戏、教育医疗、金融证券、政企等行业的几十万用户提供了一站式的应用性能监控、管理及测试服务。

相关文章
相关标签/搜索