云智慧副总裁刘志达:互联网+时代的高效业务运营

责任编辑:jackye

2016-03-30 16:15:13

来源:企业网D1Net

原创

2016年3月26日,由企业网D1Net举办的2016互联网CTO CIO大数据沙龙在北京隆重举行,大数据行业的大咖云集,干货纷呈,围绕大数据的落地应用,CTO CIO碰撞思想和观点,从互联网企业到运营商,再到政府,它们的大数据实践经验和教训在这里汇聚。

2016年3月26日,由企业网D1Net举办的2016互联网CTO/CIO大数据沙龙在北京隆重举行,大数据行业的大咖云集,干货纷呈,围绕大数据的落地应用,CTO/CIO碰撞思想和观点,从互联网企业到运营商,再到政府,它们的大数据实践经验和教训在这里汇聚。

主持人:应用性能管理是所有互联网公司都会关心的话题,接下来云智慧副总裁刘志达将和我们分享这方面的思考,带来“互联网+时代的高效业务运营”,大家掌声欢迎!

刘志达:很高兴有机会跟大家一起分享一下我们云智慧全栈应用性能系统解决方案。在“互联网+”时代,移动和社交已经改变了我们所有人的生活,社交现在已经从虚拟变成真实的一个环境,每天我们离不开微信,刚才开会的时候,大家也不断在用微信。

随着整个社交模式的改变和移动对人生活模式的改变,我们整个应用的商业环境也发生了改变。现在有很多新兴公司用互联网的模式在快速发展,这些数字就不再一一陈述了。更多的是说,在这种环境背景之下,企业对应用的预期会有什么样的一个变化。其实主要有两点总结:一个就是变化的速度,我们看到这些企业的发展是日新月异,每年的增幅非常快,所有的市场,产品的交付速度其实在94%。我们在谈这个速度的时候,更多是针对我们应用的交付。也就是说,一个新产品在上线,到用户手里,再到新的一次更新升级,这种迭代的速度。比如小米,小米他们其实都是以周为单位进行迭代,更极端是百度贴吧,百度贴吧现在大口碑并不是太好,但是以前在贴吧非常火的时候,它的迭代一次有几次,每天有几次,这是我们跟他们沟通了解到的。

另外一个变化就是我们操作可预期的用户体验。用户体验这部分,其实之前的几位朋友也都提到了就是用户体验。现在大家都在关注这个话题,不仅是互联网企业,因为互联网企业对用户体验更为看中,传统企业实际上也在向这个方面转型。至少去年的世界互联网大会海尔的张瑞敏就提出来海尔实际上在从一个产品经济时代转向用户体验的体验经济时代。

我们在谈用户体验的时候,其实有两部分,一部分其实是一些感性的东西,它其实不太容易去衡量。比如说对用户,对一个应用,比如颜色,它的使用习惯,或者是它的功能组合,这些都跟人的个人感官有直接的影响。所以,这部分是不太可预期的。比如说像12306网站,众所周知验证码实在是比较坑。这种验证码它的用户体验不好,实际上我们很难去衡量。但是,另外一种,我们刚才提到一些Citrix列了很多数据,用户访问多少秒会发生一个变化,有多少用户流失,这种情况是一个可衡量的,因为它是一个速度,其实说白了就是速度,也就是速度是怎么体现出来的?是你应用的性能表现,所以这部分是一个可衡量的指标。所以,我们其实更关注的,目前来说从应用本身角度,我是做技术的,我们关注的还是性能本身。当然,产品设计的,或者做运营的更会关心一些行为方面的数据。

针对这样的问题,云智慧提出的解决方案是什么?其实我们也聚焦在这两点上,一个是用户体验,一个是应用的性能。我这边有一张比较大的图,我在这里边会逐一的介绍。这里边有两个纬度,第一个是我们在这个层面从事我们叫面向产品全生命周期的持续高速,这里面从产生、运营到后期迭代,都有完整的一个交付周期。我们也提到一个新的名词,DevOps,主要在研发领域,这个被实践的比较多一些,但是国内真正DevOps做的比较好的还是很少的,大部分偏传统,也就是产品设计完开发,DEMO写出来交给测试,测试没有问题送给运维,然后事情其实跟研发已经没有关系了,运维保证系统平稳的运行。

在这样一个过程当中解决现在我们所面临的问题还是比较难的,因为我以前是做传统行业,传统行业在一个软件交付周期迭代速度比较慢,半年或者一年,春季或者秋季发布,常规是这样,给客户做系统升级,基本上半年其实就算比较快的速度了,有的在一年,甚至两年才给客户更新一次。

对现在互联网的应用和产品来说,在以周为单位交付的时候,这个问题就凸显出来了。其实包括我们现在自己做开发的时候也会有很大的问题。我们从一个产品开发到测试到上线这个过程压缩到一个星期,这个对开发和测试要求非常高。怎么样保证开发和测试一个比较好的衔接,或者能融合在一起,单纯从管理方面去解决是没有太好的办法的,因为人的工作效率在这里,整个工作职能的分配都是固定的。所以,这部分我们提供了几个产品服务来解决它。一个就是针对移动端的自动化测试。其实这个解决什么问题呢?移动的产品有一个特点就是跟我们以前的业务不太一样的地方,就是移动的产品其实从技术端或者客户端,当然H5是另看了。对于应用来说是一个客户端,我们在测试的时候很多自动化的测试手段其实有两个问题,一个是对功能的呈现,另外一个移动其实存在网络问题,因为我移动用户并不是普通的传统的互联网,这是一个问题,我们提供了一个自动化测试的这样一套产品和服务,能够很快把移动的测试时间压缩到很短。另外我们提供了一个性能测试,这个性能测试其实它不是一个简单的常用的那些,在这个里面做的性能测试更多是针对真实的用户体验测试。

解决什么问题?就是我的产品在开发完,实际上我们做性能测试,大部分在实验室环境,也就是在公司自己内部,但是这样做完上线之后能不能达到我们预期的效果是很难去说清楚的。至少在之前有几家客户,我们在推荐性能测试产品的时候他们在讲,我们也在做性能测试,为什么还要用你们的性能测试工具来做呢?我们就说我们就试一下。我们测试了一万并发没有问题,我们能保证一万并发,但是我们从真实环境去测到不了三千就并发了。所以,这就是实验室环境和真实的生产环境实际上还是有很大出入的。这部分实际上需要的测试和传统测试不一样的地方主要是在环境上,后面我会详细的讲。

性能管理是我们的核心,性能管理主要要解决什么问题呢?因为一般来说我们在运维上对我的业务性能做的监控,知道覆盖在哪些层面?服务器、中间件,包括网络环境,这个是传统的做法。那么,从性能管理做法,实际上它是从业务入手,它其实不会从服务器角度去看,而是从应用角度去看。我的用户比如在网上做一次支付购买,这个过程可能我用户做了无操作了,最后完成了支付,这个过程里面每一步的性能是什么样子,其实这是我们性能管理典型的要解决的一个场景。另外,我们还有性能监控和安全,性能监控实际上是对刚才我们提到的基础的环境监控和网络监控,主要在这方面。在安全部分,实际上我们把安全问题做成日常的监控进行处理。

我们通过这些工具和服务获取到客户很多的新闻数据,我们能做什么?其实我们在接入客户其他的业务数据,我们通过数据分析能够衡量出我们所做的这些比如说测试后所做的改进,那么对我企业的业务会产生多大的影响,这个是可衡量的。

我分别来讲一下,一个是移动应用测试,刚才我也提到了移动应用测试我们所做的一个出发点,主要是提升它的测试效率。这里边涵盖了它的一些特点,就是我这个移动应用实际上我有操作系统和设备的问题在里面,也就是有不同的Android、iOS,还有不同的设备厂家,它的兼容性也是我们很关注的事情。

我们做的这个自动化测试的一个特点是什么?一个是我们能做的可靠的回访,我们要做持续的反馈,自动化测试。第二个我们做的还是比较准确,我们自带的一些验证都是在APP里面进行控制,我们能控制到APP里末面所有的用户操作。第三,就是我们所做的应用其实是一个跨平台的,它可以让你快速的进行测试。这个是我们给一个客户做的演示。这个其实就是我们一个客户的APP,这里边有几台机器,这都是真机。实际上我们给它APP打了一个包装,也就是做了一个外壳,通过这个外壳驱动在真实手机上反复的跑它的业务应用,里面录制了很多业务操作,包括我的一套的一系列的交易,它就会反复迭代的去跑。做这件事情的初衷,他们想解决的问题就是他们每次修改的时候只改很小的一个功能,但是对这种产品他改任何一个功能都要对所有的功能进行一次回馈测试,这个回馈测试远远超过开发这一小功能的测试量。所以,他通过自动化测试把这件事情转变成一个不需要人参与的一个过程。实际上什么条件下呢?也就是它白天开发完,它晚上自动化的进行测试。所以,第二天来了,测试人员只需要针对它所开发的部分做一些探索性测试就好了,不会测试是通过自动化测试来替代的。

我们做的这个测试的过程其实也比较简单,就是说只需要把这个APP给过来,我们实际上在这个上面进行了一个封装,打一个包装,但是它包装完之后还是一个APP。我们用这个做脚本录制,录制完了这个脚本其实跟Web的自动化测试一样,生成这样的脚本,对这个脚本实际上可以做加工了,会在里面打一些参数做验证的东西,或者是一些条件,测试的数据都可以加进去,然后在那边把这些测试场景我们可以合并成交易,测试交易之后,真正放到实际的手机上,这个实际手机一种是安装到我们的环境下,另外客户可以自建一套自己的测试环境,也就是十几台手机就可以做这样的测试了。实际上测试过程是实时的,测试结果会反复回来,这样的循环迭代,完成整个的测试。这个是我们主要在一些银行用的多一些。

性能测试,主要是针对Web层面或者API层面的性能测试,要解决的问题跟传统的压力测试不一样的地方就是一个是环境的差异,第二个就是真实的线上测试,我们拉回到现实环境,但是这个可以做到真实环境去测试。怎么去做到?过程其实是一样的,测试脚本到实时分析数据,这也是几步,它最大的区别是什么?一个是这个测试压力是从网络上发起的,我们其实说在云端发起的,所有的测试点是在云主机上和我们自己的云端的服务器上。客户实际上它的应用是在自己的环境,这个测试整个的过程就跟它上线之后实际用户访问是一样的。

另外一个,在这种测试环境下,我们这个测试环境下,实际上测试过程是实时的,传统的做法是脚本写好,开始跑,比如我压100万的UV,5个小时看结果,如果在这个过程中抗不住压力崩掉了,就崩掉了,它再调整压力,再重新测试,调整压力再重新测试。我们这个服务是这样,可以逐渐加压,因为我们做压力测试的目的不是把系统压死,而是要找到它的一个合理的承载范围。所以,可以从一个比较低的数据UV,我们说的UV就是用户访问,从比较低的数据开始逐渐加压力,边加的时候就可以看到系统的出错情况怎么样。在这种方式下,可以逐渐一直找到,比如我的登录错误率超过0.5%,我认为这个就不能接受了。到这个程度下,我的UV是多少,这个是可以很准确的衡量出来的,而且可以随时停掉。

所以,在这种机制下,我们就不仅在测试环境可以用,生产环境也可以用,生产环境面向最终用户,云端下是没有任何问题的。所以,我们压力测试跟传统压力测试不一样的地方主要在这两点。这是我们实际的压力测试过程我截下来的一个图,实际上这是整个压力在执行到一半的时候,这是压力曲线不断上升,然后我们每分钟事务数,失败事务数,这都是动态变化,包括我们对应的服务器的一些信息,它的一个性能状态。其实我们可以了解到整个系统当前的状态,可以随时选择调整压力和停止测试,这是压力测试。

还有一部分我们叫应用系统管理,这部分做的事情相对比较有意思一些,是面向业务的基于端到端的一个全栈的应用性能管理。所谓全栈实际上是从用户端一直到服务器端整个全链路会打通。主要面向的业务是什么?我们会把用户在他的应用上所做的这些访问,我们定义成一些交易,比如说,我一个支付是一个交易,我做一次的业务查询算是一个交易。定义成一些交易,每个交易后边有一些事务,假如这个按钮会出发一个事件,这个事件对应一个事务,这个事务响应可能有一个请求或者多个请求,每个请求会到服务器端,去服务器端分析所有请求这些错误情况,包括当时的交易情况都能做一些记录。

这种做法主要的目的是什么?就是其实我们的交易做业务情况分析的时候,做一些用户功能,对一些交易可以定义它的价值。比如这一笔交易可能是十块钱,我这些交易,比如我执行了500万次,正常如果它都能执行完我有多少收入,如果这个交易有几个交易,因为有某些性能的提升,有些交易失败了,实际上我可以算这个性能对我的业务影响到底有多大,这是具体衡量的。这个实际上是我们从前到后一个打通的过程,我们简单解释一下,底下这张图我们把用户从不同入口访问的请求,到后端服务器端如何处理,整个逻辑图分析出来。每个环节,比如从这端到前端的应用处理,中间花多长时间,这段到缓存数据库花多长时间,整个链路上的时间都能拿到,我们知道这个性能,比如这个性能不好在哪里?然后我们进而分析一些统计,对哪些类请求,哪些业务,它的性能表现好与不好和它的交易成功这个比值我们能拿到,它的用户实际的这是一个交易的整个我们用一个实际的图来表达,这是单次,底下是汇总的,也就是系统当前的状态,这是每一笔交易的过程。其实我们捕捉到非常细的信息出来,然后对应可以看到我们交易的所有的状况。这些信息对运营是非常有价值的。

整个做法是怎么来做的呢?因为做技术的人大家会更关心一些。其实我们把这个东西分成两个层面,一个层面就是交易性能全过程的跟踪,用户体验有两个,一种是移动的入口,一周是普遍的Web入口,Web入口跟传统的做业务分析其实做法是一样的,在上面打了JS,然后做用户的行为数据搜集。另外一个是从移动端,这个请求发到后端,这个地方请求的时候会针对这个有一个K,每一步后面都会有一个K会跟过来,我们把数据搜集起来,就可以拿到所有的数据,就能形成我们的所有业务。这些都是一些主动性的监控,把对应的服务器和基础硬件、中间件的环境,这些性能数据都拿起来,我们就能看到一个完整的业务性能。这个是我们从体验到安全到网络到业务应用到基础架构全覆盖,然后做持续的监控优化。

补充一下其实这种都是在业务内部来做的,还有一部分实际上是模拟实际用户,从模拟型做。就是当这个业务没有人访问的时候它的性能是什么样,其实我们也需要知道。我们在全世界各地雇了很多的监测栈,会对持续的应用发起请求,看这个目标的应用是否是正常的。除了Web的形式之之外,现在还有一种APP,现在APP应用越来越广泛了,所以针对监控一样我们也是通过这样的方式去模拟进行监测,说APP是不是正常可用的。我们把一些数据汇总起来,其实这个数据严格来说我也不好说它算不算真正的大数据,但是它具有很多大数据的一些特性。我们把这些数据汇总起来,我们其实想把这些大量用户的性能数据搜集起来,我们未来有一个想法,类似这样的一个设想。假定我的业务想做一个活动,我想引入五千万的流量,我现在的结构是否能撑得住,如果撑不住,那我需要什么样的架构来支撑它。这个实际上是我们可以去未来做一些预测的数据。

我们在数据上的想法主要是解决端到端执行分析过程中所产生的这些数据,怎么去体现出来它的价值。所以我们在这边做的大数据比较定向的只是对我们这个领域来做的,是相对来说比较容易落地的一些事情。主要介绍一些主要的产品和服务。这是我们在大数据上做的一些呈现,这是数据来源,来源于不同的产品和服务,这是我们现有的性能管理的产品的数据,这些是业务数据做的一些汇总,这是我们的一些呈现。

我们给客户提供的价值有几点,从市场角度主要是针对实时的业务分析帮助他适应这个市场的变化。另外,对研发来说,做快速构建,持续改进,持续交付。对运维来说,主要能快速定位解决问题预测并预防问题,最后对运营来说叫提高用户的满意度。我们现在IT都是由内转外,大部分资源其实都在云化,在这种情况下,实际上我们的产品对云端的应用可能更有效果,尤其我们的服务本身也是SaaS,也是随时来随时用的这种方式,本身就是一个比较新的应用。在云迁移、云监控管理其实都何以考虑用这样的产品来做。

简单一句话介绍一下我们公司,我们公司主要专注在应用性能管理方面,其实公司2009年就成立了,一直在做这部分,但只不过我们运营做的比较晚,也就这两年才开始做运营。谢谢大家!

链接已复制,快去分享吧

企业网版权所有©2010-2025 京ICP备09108050号-6京公网安备 11010502049343号