BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

淘宝网吴毓雄谈线上线下性能跟踪体系
录制于:

| 受访者 吴毓雄 关注 0 他的粉丝 作者 贾国清 关注 0 他的粉丝 发布于 2012年1月5日 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。
15:40

个人简介 悟石,本名吴毓雄,毕业于南京航空航天大学,现就职于淘宝网,负责主站性能评测团队。具有4年半软件性能测试和性能评估从业经验,对B/S、C/S架构的性能评测有较深入的研究。

QCon全球企业开发大会(QCon Enterprise Software Development Conference)是由C4Media媒体集团InfoQ网站主办的全球顶级技术盛会,每年在伦敦、旧金山、东京、北京召开。自2007年3月份在伦敦召开首次举办以来,已经有包括金融、电信、互联网、航空航天等领域的近万名架构师、项目经理、团队领导者和高级开发人员参加过QCon大会。

   

2. 您能简单的介绍一下您自己和你的团队吗?

好的,我叫吴毓雄,在淘宝的花名叫务实。现在带领淘宝的主站性能评测团队,整个团队加我一共是有十个工程师,我们是一个专职做性能测试的团队,主要负责淘宝主站的一些应用,比如说像商品、交易、店铺等等这些比较核心的上层应用的性能测试和性能评估的工作。

   

3. 能再简单介绍一下咱们这个性能跟踪体系,是什么让您有了创建这个性能跟踪体系这种想法呢,或者说您创建的初衷是什么?

我们在做性能测试的时候,一般都会在线下来进行性能测试。测试完之后,应用就会发布到生产线上。但是发布后,它的测试环境和生产环境是存在一定的差别的,在这时我们就很难去评判这个测试结果到了生产线以后,到底是什么样子。所以说在这样一个背景之下,我们就想可不可以创造这样一个体系,通过把线下的结果作一个换算,换算到线上去,这样线下和线上它就能够对应起来了,比如说我们测出来TPS是20,那么按照公式换到线上以后可能是25或者30,这样子的话,就说我们的这个测试结果换了以后,就对生产线运维就有更好的帮助。

   

5. 咱们之前会有一个专题叫性能测试,性能测试和咱们性能跟踪的体系有没有什么本质的区别?或者说他们之间有什么关系?

那个性能测试是我们通常所指的性能测试,一般就是说处于测试和评估的这两个阶段,更多的是在线下的测试环境里面的活动。那么这个体系就是,我们除了线下的活动之外,我们会走到生产线上去,在生产线下,我们为了求到这个公式,其实也对生产线的应用系统进行了一些压测这样的工作。这样,我们就能够在最真实的环境下来获得系统的一个容量。而且,这样做了以后,线下和线上就形成一个闭环,相当于是一个闭环,那么线上的这个压测的结果,就可以作为容量的一个参考值,而且也作为我们线上线下换算系数的公式里面以及数学建模里面的一个原始的数据依据,这样还有另外一个好处,就是通过生产线上的监控,可以发现一些性能瓶颈,比如线下模拟不了的这种瓶颈,就可以到线下来进行测试和调优,然后再推到生产线上去。这样就形成了一个测试,然后线上评估,线下测试,这样子的一个闭环。

   

7. 以往的测试相比,就是更关注一个线上的一个考量?

可以这样理解,就是把线上作为我们这个体系里面的一部分来进行考量,他不是像以前那种脱节的现象,在淘宝这种现象已经得到了改变。

   

8. 还有就是想跟您了解一下,采用咱们的性能跟踪体系以后,您的团队和质量的改进有没有一个明显的变化,或者说带来哪些提升呢?

这个是有的,特别是在淘江湖产品里面,淘江湖团队是第一个吃到螃蟹的,用了我们这个体系。看到了生产线上的一些问题,然后我们对这个Cycle进行了一个循环以后,他们的性能有了比较大的提升。可能大家都知道,淘江湖里面经常会做一些活动,比如说像社区资讯的这种推广,旺旺付出,一旦旺旺付出了以后,可能有很多用户去点击,瞬间带来的流量冲击是非常大的,有可能会相当于平时的二十倍、三十倍,甚至四十倍。用了这个跟踪体系了以后,我们知道生产线上这个容量,还有它的余量,这样对于开发和运维人员他们都能够更好的去做一些前期的一些预防工作。

   

10. 前一段时间我听说咱们淘宝有一个双十一的活动,在那个双十一活动中,提到了一个水平扩容的问题,您今天的演讲也有关于扩容方面的一个讨论,我看您的重点有关于容量规划,想了解一下,咱们做容量规划通常应该注意哪些方面?系统扩容大致可以分为哪几块?比如说水平扩容等,能否做下简单的介绍?

容量规划我们正在做这个工作,主要是两个方面,一个是线上系统的容量,还有它的成本计算;第二个就是扩容方案,这是淘宝现在所包含两个部分,可能各个公司都不太一样。那么在这两块里面,第二个问题是扩容,我们是更强调的是水平扩容,因为在这种互联网型电子商务的网站,水平扩容可能对大家来说成本是比较低的。而且也比较快,因为我们需要快速去反应。

   

11. 很短的时间就能很快实现了?

对,在我们的规划里面,会分层来做,做这个容量规划。淘宝相当于是一个BSS的系统,中间件有一层,下面的数据库有一层,存储是一层。那么这样子的话,我们把它按层来切割,然后每一层通过水平的方式去扩容。

   

12. 在您提到有一个数据建模的这么一个概念,在软件测试中,大家对数据建模可能都有一个理想的一个憧憬,您在这个规划性能评测过程中,使用通过数据建模这种方法,遇到哪些困难或者说您数据建模的依据是什么?是通过什么手段来保证建模的最后的结果是准确的,而且能够指导咱们生产的?

困难其实是蛮多的,因为就一个软件从业人员来讲,我们的数学功底,其实并没有数学专业的人那么强,在人才上对我们是一个非常大的困难。我们通过一些硕士生的帮忙,比如我们需要招一些硕士生,我们把这个原理将给他们,具体的建模工作由他们来实现,我们来把控数据的准确性,这样子运用大家集体的智慧,把东西做出来。至于准确性的话,我想在数学模型里面,不一定我们一建出来,它就是能够准确的,这些模型也是在逐渐的调整过程当中,比如说三个月我们用一百条原始数据来建立一个模型,下个月可能又在增加另外一百条数据,这时候我们原始数据就有两百条,我们会对这个模型再做一个微调。

   

13. 不断的验证它?

对,不断的验证,不断的修正,因为在建模领域里面,原始数据的样本空间如果越大的话,它的准确度应该会越高,所以这个是我们一个持续性的工作。

   

15. 我知道在咱们淘宝的团队里面有一个叫能力模型的概念,这个能力模型在您的工作中使用到了吗?或者说对您的现实的工作有哪些帮助呢?

首先我说一下能力模型在我这边很少能够用到,我也是听其他团队有一些同事在介绍这个东西,按照我的理解这个能力模型跟容量应该是一回事,各个团队他在实施的时候,可能方式不太一样。

   

16. 最后再问您一下,您对您的团队,或者你现在性能评测系统的未来有一个什么样的规划?你对未来是怎么展望的?

我们团队的话,我是这样规划我未来的团队,我希望大家是一帮这样的人,首先我们是一个兄弟连,大家能够共同来奋战,这个领域在国内,在我看来还是比较新的,而且难度比较大的一个领域。大家齐心协力的话,事情会更好做一些。其次,就是我希望这个团队里面的成员是一帮技术牛人,大家对系统的架构,还有对系统的编码,都是非常熟悉的。现在也在提供这样的机会给大家去做这些方面的一些深入。而且淘宝有几百个应用,这样的机会也是很多的,这是团队方面的第二点;团队方面的第三点,我想把这个数学模型和我们未来的技术选型也作为团队成员的一个必备能力,在这么多的数据海洋里面,如果我们没有一些模型去做这些事情的话,那么我们遇到的困难会更大,像昨天余锋有提到过的一个概念叫拍脑袋。如果没有一些模型指导的话,我们可能很多事情都是拍脑袋拍出来的,就比较盲目,不太准确。刚才的第二个问题就是线上线下的跟踪体系。

   

17. 对,跟踪体系打算如何去完善它,你有什么想法?

完善,首先还是建模,会做这样一个完善。

   

18. 可能这个模型还要再做一些调整?

对,因为这里面其实涉及到两个数学模型,一个是线上线下的性能换算系数;另外一个是性能指数,性能健康指数。那么这两个模型,其实线上线下换算系数有了样本空间以后,应该是更容易做的一个事情。但是健康指数的话,相对来说会比较困难一些,因为它选取的是这个性能里面的一些指标。还有我们赋予这些指标一些权重值,未来根据不同的应用,可能各个指标的权重值是不一样的,我们现在都是一刀切,这个模型还是有一定误差在里面的。

   

19. 还是不断的去完善它?

对,然后另外一方面的话,我们在跟踪体系里面有一个理念,把数据转化为信息(Turn data into information),怎么样能够更好的去把这些数据精准的推送到用户那边,让用户能够更快的、更容易的找到他的性能瓶颈,这块的我们也是会一直做下去。现在相当于是有了一个初步的稍微成熟一点的一个模式在做。但里面还是有一些比较细的一些东西我们还是没有做好,所以这块的话我们会继续做下去。

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT