林仕鼎:产品迭代速度决定企业竞争力

原创
云计算
互联网服务的特点就在于做成快速迭代,而迭代的本质是让参与系统进化,迭代的速度就决定了服务的竞争力。

2013年4月26日-27日,由51CTO传媒集团旗下WOT(World Of Tech)品牌主办的2013大数据全球技术峰会在北京富力万丽酒店召开。本次峰会将围绕大数据基础架构与上层应用的生态系统,解决大规模数据引发的问题,探索大数据基础的解决方案,激发数据挖掘带来的竞争力,让数据发出声音。51CTO作为本次峰会的主办方,将全程视频、图文直播报道这场数据的盛宴,更多内容请点击专题:2013大数据全球技术峰会

 

2013大数据全球技术峰会专题

26日上午,百度云首席架构师林仕鼎发表了主题为“大数据的系统架构支持”的演讲。演讲中,林仕鼎谈到,“互联网的服务,它其实是在处理数据,而且它会接触到海量的用户,然后通过用户又产生新的数据,我们对这些用户的数据进行分析,可以改进这个系统,这也就带来了互联网服务的两个典型的特点,一个就是超大规模,首先你要管理互联网上的所有数据,然后能够支持海量用户的请求。互联网的数据,大家知道,所有的网站也在发生变化,当用户的兴趣发生变化,我要使得这个系统能够跟得上用户信息的变化,我们需要把这个行为做快速调整,这个快速调整就是通过架构和数据分析来达到”。

[[71733]]

百度云首席架构师林仕鼎

百度目前的数据总量100~1000PB,数据处理量10~100PB每天,网页是千亿~万亿级别,日志100TB~1PB每天,巨量的数据使快速迭代成为互联网产品的主要创新手段。互联网服务的特点就在于做成快速迭代,而迭代的本质是让参与系统进化,迭代的速度就决定了服务的竞争力。但是这个迭代并不是没有方向的,这个方向在哪?要通过数据分析来得到。支撑这一点的平台和能力,就靠大数据,迭代的速度决定了这个公司的竞争力。而互联网产品的迭代包含想法→快速开发→原型→测试→系统→部署运维,进而形成产品。

如下为演讲全文:

林仕鼎:非常荣幸有这样一个机会跟大家介绍一下大数据相关的技术想法,刚才王总分享了很多的故事,在这个故事的背后,其实还是要靠我们技术来驱动的,所以我想介绍一下这方面的技术,特别是从一个互联网公司,还有我们做搜索引擎的公司角度来看,这个数据是什么样的。

我是07年到百度来,刚来就开始做搜索引擎,我之前在微软做系统方面的研究,做了搜索引擎之后,我个人就有了非常大的震撼,这个世界真的变得不太一样了,有几点。第一个是说我看到了数据中心有非常多的机器。第二点,这么大规模的系统它用来做什么?它其实是用来做数据处理。对互联网公司来说,在公司的技术特点发生变化的那一刻是后台机器数量超过前台技术的数量,绝大多数互联网公司都在前面做响应请求的技术,但是对搜索引擎,我们从第一天起,就在处理和加工后台的数据,无论是搜索还是广告,都是这样的模式。

我们看到因为互联网的服务,它其实是在处理数据,而且它会接触到海量的用户,然后通过用户又产生新的数据,我们对这些用户的数据进行分析,可以改进这个系统,这也就带来了互联网服务的两个典型的特点,一个就是超大规模,首先你要管理互联网上的所有数据,然后能够支持海量用户的请求。互联网的数据,大家知道,所有的网站也在发生变化,当用户的兴趣发生变化,我要使得这个系统能够跟得上用户信息的变化,我们需要把这个行为做快速调整,这个快速调整就是通过架构和数据分析来达到。

我们先看一下这个数据规模,大概现在的数据总量接近一千个PB左右,网页的数量大概是几千亿的网页,从大量的网页里面我们拿出几百亿来建索引,大数据具有这样的特点,就是它单位密度的数据价值是比较低的,因为这里面有垃圾站。对于大量的网页,我们每年更新几十亿左右,每天会享受用户的查询也会在几十亿左右,我们查询的也是几百PB。正是因为这样的一个规模,这样的一个压力,使得我们的技术产生了不一样的变化,那我们怎么去支持这个超大规模,并且把它变成一个服务,使得用户可以访问呢?首先是靠快速迭代的方法,对于快速迭代,大家可以看到,我们把这两个算法都放上去,给每一个算法都拿一个总的流量,只要一小部分的流量就可以验证算法,通过用户选择的结果留下比较好的算法。而在线的这样一个实验是需要基于很多离线分析的数据,我们需要把你用的算法需要的数据都处理好,我们需要把用户沉淀下来,然后跟每一个部分的算法提供单独的数据,让它去分析。

对于搜索引擎,我们有很大的网页库,可以增加几千亿的网页,对网页库会不断的进行更新,包括把垃圾去掉,给每一张网页找到特征,包括它的权重等等。对这样的一个网页还是不能提供服务,需要生成一个倒排表,倒排表的数据可以提供给用户的,从网页到倒排表,它的量特别大。但是这个排序大家知道,你会拿到很多的结果,多的会有几百万、几千万套,这时候你的重点是在于怎么对这些数据进行排序。但是怎么排序是好的呢?这个有很多原因,我们做了一个实验,这个实验是把排序的策略放进来,让用户选择哪一个比较好。当然,用户的选择可能并不是很直接的,还需要通过一个测试过程,在不同的特征间去找。你去做这个测试,是需要从网页里面抽取出来,也就是说这是一个搜索引擎主体数据的一个过程,我们基于这个数据驱不断迭代。

对于非搜索引擎的产品也有这么一个过程,大家知道,很多的产品实际上你的想法很好,但是你的想法是否被用户买账呢?这个不一定。从这个想法到原型到系统到最后的上线,其实需要很长的时间,假如说我们有方法我们在每一个阶段都去验证这样的算法,使得我们在付出更大的代价之前就可以对算法做一个验证的话,这样会非常有效地提高我们的生产效率。在每个阶段,我们都有一些对比,可以通过数据的分析,变成用户的查询日志,并进行快速开发,而且需要有一个开发的框架支持,这个虽然还很不完善,但是你可以在上面讨论,然后对这样一个原型经过一些测试变成一个系统。现在有了云平台的支持,我们可以很好的把原型部署上去,因为你不再需要考虑数据库、你的机器、操作系统的问题,而且还有很多云测试,帮助你去测这样一个系统。然后就是部署。

当然,因为这个产品出来以后,同样有很多方式去改进你的创新,这时候就需要搜集和处理的过程帮你去做这个工作。这是一个典型的互联网产品迭代,技术是否有竞争力,就在于迭代速度是否很快,在每一个阶段中,是否能够更快地到达下一个阶段,是不是有办法根据用户的反馈去调整,这些都会带来一系列的要求。所以说,对比互联网用户来说,有两方面的抓手,一个是数据,一个是架构技术。同样的,我们可以看到,这样一种系统演进方式的变化体现了IT生产力。最开始在打印机时代我们只有硬件,PC出现以后我们有了软件,我们的软件是以服务的方式为主,从我们提供服务那一天开始,这个服务就没有停止过,但是它在不断的生成,也就是说我们有大量的工程师和软件一起构成的这些系统。

到了云的时代,我们的规模变得越来越大,这是我们软件加上数据中心,我们叫做集成设施,包括大规模的存储、大规模的数据仓库等等,构成了整个业务的基础性。然后,在这上面,我们把人类的智慧结合起来,既包括工程师的智慧,也包括用户的智慧,我们对数据进行分析,然后去做改进。

总结起来,互联网服务的特点就在于做成快速迭代,而迭代的本质是让参与系统进化,迭代的速度就决定了服务的竞争力。但是这个迭代并不是没有方向的,这个方向在哪?要通过数据分析来得到。支撑这一点的平台和能力,就靠大数据,迭代的速度决定了这个公司的竞争力。

云计算有一个完整的体系,最下面有数据中心,服务器,硬件基础设施,还有包括架构、数据智能,因为云被赋予了太多的意义,这种数据中心计算有一个特点,对于大数据相关的技术除了在应用层面,还有加上数据智能、包括大规模的数据分析、实时的数据引擎这样的软件技术,这是一个相关的技术,因为我们谈大数据就离不开系统的平台。主要的技术领域有存储、有计算,还有超大规模系统,包括体系结构、虚拟化、数据中心。

除了这种结构之外,还要关注结构访问模式是怎样的,这个数据写下来之后就不会改,还是要不断地发生变化,你是否要支持扫描或者是区域查询与操作,这些都是要做到的。

对于计算,有像数据密集型计算,你读出来的数据基本都能处理掉。但是,除了数据密集型之外,还有其他的类型,包括计算密集型、通讯密集型。计算的模式都会落到你要做计算的迭代,而这个计算的迭代,每一轮都要把所有的系统访问到。这些问题都不是靠这样一个模式能解决掉的,随着我们对数据及时性的要求越来越高,越来越多的需要考虑一下计算密集型和通讯密集型的模式。它其实是一个存储和计算相结合的模式。不管是我们做存储还是做计算,实际上有很多的设计、开发、运维问题。

对分布式存储系统,主要有这几种内容,有Pipe、Table、File、K/V。对于不同结构的存储,其实在我们以前,实际上就是给每一种类型结构都单独开发一个系统,随着这些业务规模的扩展,这些系统逐渐变得很庞大,很多都在上万台,我们发现有大量的共性的地方,当规模大的时候,这种对象、文件、表格会产生大容量、高并发、低延迟的现象,所以我们就要统一存储体系,这样的模式最终落到介质上,就是一个个块,这个块可以存在Disk上,也可以存在Flash上。因为上面有不同的接口,所以我们也有不同的数据访问层。除了存储之外,其实我们还要帮助访问与传输的问题,一个数据存下来,如果访问不了的话,也是一个问题,对于计算,我们把计算逻辑放在数据上面来计算,并不希望做到跨数据中心和对外的存在,但是如果说你这样的服务提供出来给外围使用的时候,就存在这样的问题,所以我们在外围也提供了支持。这是我们在分布式上做的工作。

来看一下分布式计算,大家比较清楚看到的是MapReduce,你还需要有Join、Select、Top的支持,很多时候你要处理的数据实际上只是里面一部分,你要做一些Top的操作,要把所有的数据读出来,这个代价是比较大的。所以说,对于不同的操作,我们希望能够给它统一成一个描述,这个描述就是以有效的方式去描述,定义出它们之间的关系。对于每一个关系之间有一个大数据,我们要对这些数据之间进行切分,把大的任务分解成小任务之后,通过排队的方法就可以把它放到机器上去执行。也就是说这里面其实有好几个层次,这个任务应该怎么去表示,分为几个步骤,之间是什么样的关系,有了这个关系,然后有大有小,这时候很难执行,我们就需要把它统一成一定的计算量和数据访问量,这是我们的执行层。当然,如果说如果这个战略方式比较难以被使用的话,对这个数据来说,我们还要有一个接口,把这个问题表达出来,翻译成一个个的操作方式来执行。也就是说我们做一个计算平台的话,除了里面的数据模型之外,很重要的就是这个平台的架构怎么设计,另外我们做的平台一定会支撑很多个任务在上面并行执行,这时候怎么提高机器的利用率,我们看到大多数的计算平台的实现都没有短期的架构,所有的东西都是在一块的,你要改进的话,只要把它分解成不同的任务。所以说,我们需要对系统进行分层,比如说对一些流程要进行描述,让用户去写这样的问题,对模型和数据流怎么做优化,怎么使多个运算合并起来,其实你可以把多个任务合在一块。

这是大规模的数据处理,要靠实时存储与计算,它同样是一个完整的体系,现在大家听到最多的是流计算,除了这个之外,我们要做图查询、KNN查询等等,它们都有一个共性,就在于它要处理的数据要么是流式产生的,要么是复杂事件,因为数据库的结构是简单的,之所以简单,是因为它以前的特点是你没法做随机。有了更高层的数据结构,可以让你很轻易的生成一个几亿维的数据,你只要很简单的写你的程序就行。我们可以用复杂事件处理引擎去支持我们的检索,这些技术都是用来做大数据分析需要的基础技术。在系统集成,我们关注的是一个统一的操作算成,比如说加减乘,通过这样我们可以简化流程。对于复杂事件处理,很多时候我们需要对一个序列的事件做这样的操作,比如说这个事件的价格你要取平均值,比如说有三列,我关注第二列、第三列是什么,或者说我做一些描述,我们可以通过比较高层的描述,对这些数据进行直接处理,还更复杂的,就是有些pattern。

其实我们说大数据时代,还有一点就是我们对整个程序的写法和思考的方式上面发生变化,可能以前我们写的是面向对象,现在有了大数据之后,我们考虑问题已经放在数据上了,我们的定义就是说你需要对数据进行操作,你要关注到这个数据的属性,那么就要有更高层的属性,让你可以直接对数据进行描述、对事件进行描述。这是一个流式计算模型,过去一段时间,这个数据是一个动态的概念,需要不断地发生变化。最后一张我们可以套用这个模型,你需要建多大的仓库,对这部分数据进行处理之后,它需要多长时间反馈回来,这是流数据处理需要注意的,你需要怎么考虑把这个数据和内存中的数据进行结合。

最终,我们的目标就是希望做到更大、更复杂、更快。有了这样一些技术支持,我们实际上可以对数据进行更多的技术处理,比如说可以进行分布式存储与计算以及流式处理,包括Machine Learning算法,向量引擎,使得每一个需求方可以以一个更智能的方式去表述,通过这样的模式,我们把这些串起来,当你去做尝试的时候,你需要有很多的数据,我们希望能够把人引进来,通过大规模人工辅助标注系统让人参与进来,这时候我们就可以做这样的评估推荐智能加工。这是我们在技术层面上对数据进行加工的一个系统。谢谢!


以上是51CTO.com记者从一线为您带来的精彩报道。后续我们还有更加精彩的独家报道,敬请关注。

责任编辑:曾真 来源: 51CTO
相关推荐

2011-12-13 14:46:44

戴尔

2012-04-04 20:00:50

IBM社交商务Lotus

2013-05-17 11:40:57

华为UCCC

2011-03-17 09:16:47

2017-12-08 20:13:43

华为云

2016-12-01 17:14:58

99Click

2012-07-04 13:28:51

2015-07-01 17:05:27

2013-08-22 10:29:14

用友用友U8+

2017-01-15 17:39:23

移动通信转售虚拟运营

2012-11-02 09:45:41

云计算技术云服务

2012-12-21 14:15:10

Microsoft D企业级管理解决方案ERP

2020-11-28 22:17:29

戴尔存储

2012-12-12 16:26:21

2018-06-13 10:36:49

ARWOT

2012-08-29 14:59:56

天玑科技IT人才培养

2013-07-09 10:44:47

2010-01-18 23:11:22

IT服务运维管理摩卡软件

2020-02-12 14:00:11

SolarWinds
点赞
收藏

51CTO技术栈公众号