BT

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

Pavlo Baron在大数据领域的宏伟目标
录制于:

| 受访者 Pavlo Baron 关注 0 他的粉丝 作者 Harry Brumleve 关注 1 他的粉丝 发布于 2013年9月18日 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!
18:43

个人简介 Pavlo Baron是codecentric AG的首席架构师。他致力于分布式系统和大数据集的研究——即大数据背后的基础设施。Pavlo经常在大会上发表演讲,还写过三本德文书籍:《Erlang/OTP》、《实用至上的IT架构》和《脆弱的敏捷》。

软件改变着我们的世界;QCon旨在促进企业软件开发领域的知识与创新的传播;为了实现这个目标,QCon以实践为导向,主要面向能够影响团队创新的团队领导者、架构师、项目经理及技术主管。

   

1. 大家好,我是Harry Brumleve,我现在在QCon旧金山2012会场。我现在和Pavlo Baron坐在一起,Pavlo,请问你是如何开始软件架构师生涯的?

好的,你不可能直接从软件架构师开始的,你应当作为新手从软件开发人员起步。就我来说,我认为软件架构师依赖于经验。在你能够设计架构、设计复杂的解决方案之前,你必须经历开发人员的阶段。你会四处碰壁,学习别人如何工作,同事如何工作,然后你会意识到“现在能做的贡献不仅限于编码了”,这对我来,设计师仍然要写代码,但是你也可以只在软技能层面上做出贡献,比如和客户沟通,甚至谈谈管理,因为你有这方面的经验,你也可能有信心在不同层面谈论技术上的事情。你还可以帮助团队成员提升自己,这点相当重要,它绝不意味着要为每个人做决定,而是帮助人们和团队做出正确的决定。
实际上,我认为的架构师就是这样的。所以在整个生涯中,我也是这么做的,从普通的开发人员开始,我在这个行业从业已经超过20年了,老实说,我现在仍旧是个普通的开发人员。

   

2. 你准备在QCon上就大数据方面发表演讲。是什么引起你对大数据的兴趣的?

首先,对我个人来说,这是个广阔的领域,在这里,我可以用到所有的经验、已有的以及未来获取的知识,对于技术人员来说,这是个巨大的舞台。但是,从非技术人员来看,这就像我们的生活无法离开电脑,这不是说有了天网这样的东西,这只是众所周知在日常生活中是电脑帮助了我们,而大数据领域的工作实际上是用来支持这方面并使其发展,我对这个领域感兴趣是因为我看到了它帮助人类的机会,或许改变不了什么,但也可能会使世界变得更加美好,这才是大数据真正吸引我的地方。

   

3. 这可是大数据的巨大目标啊?

是的,你需要一个愿景对吧?愿景和目标是不同的东西,目标只是一小步,比如说你只能做出一点贡献,你看我们虽然曾拥有过海量的信息和数据模型,但没有合适的工具。现在,我们有了工具,有了信息,我们可以使这些信息增长,可以收集更多的信息,我们也知道如何处理这些信息,对我来说,应该将这些成果用于帮助人类自身。而不只是像帮助企业的小方面——这些是目标,而愿景就是——你看,人们使用电脑,就像电脑在帮助人们,做出决策或类似的事情。

   

4. 大数据看起来意味着……能够提供小规模或中等规模数据无法提供的东西,具体是什么呢?为什么大数据如此重要?

给你讲个有趣的事情。我有一次参加管理层的会议,与会人员已经对如何辨别大数据和中等规模数据的问题进行了讨论,但没有得出任何结论,我不由得笑了。就我来看,这不是数量的问题,我们又不是在搞“鸡翅大胃王比赛”;两者间还是有些不同的。这是各类数据如何处理的问题,这很重要,同时可以引申到不同规模数据的处理,完全取决于你要做的事情以及想要想提取出的信息。然后,你会继续,提取信息的需求会不断成长,你会变得饥渴,你需要更多,越来越多的数据,而这就是数量的意义。在我眼里,或者对我来说,大数据的“大”字,不是说TB算小PB算大。“大”是指无法预见的大量数据,这才是关键。你无法预测它的大小,你只要在数据增长、变得更大的时候,使用不同的策略,在存储设备上保存这些数据,等等。所以,我不能也不可能说清楚底多大才是“大”。

   

5. 我想这是对大数据很好的定义,但是仍然比较模糊,当解决方案中准备使用大数据或者说它会产生大数据的时候,你该怎么说呢?

在我的对话中,我以不同的角度来观察大数据的整个领域,所以有不同的看法,比如说存储。首先,你将面临的问题是,并非所有数据都适合通用数据存储方式,所以你需要找到一些不同的解决方案,你还需要考虑到冗余、延迟以及容错等问题,尽管你把这份数据保存了三遍,但是这样会占用更多的存储,另一种对大数据的看法是,当你的用户分布在全球,你提供数据服务,有多少数据其实并不重要,如果仅从某个数据中心提供服务,就得面临距离带来的挑战了,这仍然是物理上的问题吧?
这里的关键是数据需要尽快地到达你的客户、访问者、用户那边,想象一下,如果你是汽车行业人士,你生产汽车,并且希望汽车宣传视频看起来更加诱人,对吧?而当视频播放的时候,卡得你甚至能数清画面的每一帧,之后会发生什么?——客户将失去购买的欲望,因为视频的播放应该更加流畅。因此,你能做的是去找CDN提供商如Akamai等,与它们签个肥得流油的合同,仅仅是为了让内容离用户更近一些。这就是这个领域中,你不得不做的事情,因为当视频还在缓冲的时候,你却希望这个视频已经加载完了,你需要使用别人提供的基础设施来达到这个目的,因为他们总是比你离访问者更近一些。
另一种看法是,大数据是个接近实时的东西,这是个不同的视角,虽然它可能不是存储但却是你所需要的,比如,从传感器接收永不停止的数据流并进行处理。同样,比如我们使医院自动化。 每个病人身上可能一直带有上千个不同的传感器来感知所有的数据,如果有一千个病人,可以想象,你需要考虑基础设施的问题,问题可能首先出现在网络层的某个地方——线缆连接是类似第一英里(译者注:第一英里是指用户接入运营商的地方,这里指网络接入层)的某个地方,然后你才能考虑如何处理数据流。比如,你不希望护士在深夜的时候,每隔15分钟去问病人是否正常,因为他不喜欢,实际上我也是,所以你需要在接收数据的时候进行分析,这是CEP(复杂事件处理)的常规领域,如果打开了窗户2个多小时,你需要知道这2小时内有没有出什么状况以便警告某人,所以你主动派了一个护士在那里,因为接收的数据量非常庞大所以你必须实时处理。如果不用存储这些数据,那在这种情境下,你能对整个基础设施做些什么呢——比如你想要电脑最大效率利用电能,最好的方式是将处理工作的负荷提升到100%,但你依然要在这里处理工作,因为他不会分发到上百台设备中去,如果需要分发这些数据,可能需要几台设备来进行数据流的分割。
不管怎么说,数据的分析将会是另一个问题,它是以昂贵的CPU性能为代价,因为通过文本分析异常或情绪等信息时会耗费大量CPU,可能无论你要从这么多数据(用术语怎么说,PB级的?)中分析出什么,都无需存储这些数据,但你需要实现正确的算法,它必须够快、够可靠,你还需要训练这些算法。这同样会耗费时间,你还需要准备一些供算法调用的数据,以及诸如此类的工作,我想说的是,你有不同的视角,当你将这些不同的视角组合到一块时,你会发现可能不会有多少家公司存在上述所有的问题,但是当把这些问题组合到一起的时候,问题的解决方案可能会是一个庞大、冗余的基础设施,它拥有大量的存储以及非常多的CPU,能够进行并行批处理,流和流处理器。这么说吧,如果有两个人在公共场所开始互殴,还是动刀子的,你如果只是录下了经过,对于被打败的躺倒的那人来说没有任何用处,你希望阻止他,所以你得有一个快速的解决方案。警报必须足够快,这将会占用大量的CPU和网络带宽来进行视频数据流的传输和后续的分析。

   

6. 站在大数据帮助人类的角度,你讲的拯救一位刀伤的受害者的例子十分精彩。但是说的有些过于复杂了,所以,你认为人们需要大量的大数据方面的培训吗,是否邀请博士来解决这些围绕并影响人类的问题呢,毕竟它们如此庞大而且复杂?

问得好,我也没有博士学位,也不会要求你有博士学位,但是你必须要有坚实的理论基础才能够做这个事。我很喜欢数据科学家这个想法,我们将在企业中寻找这类人才,他们需要学习以打下数学和计算机科学方面扎实的基础,并结合使用两者。这些人必须有正确的心态。可能我不会是变革世界的伟人,但你必须坚信你能利用所学将世界变得更加美好。
要问我的回答,我会说“不”,但你需要学习很多东西,只有这样,当你有所准备的时候,当你有这些理论基础的时候,你将会很快意识到你其实什么都不懂,即使你开始解事物的本质,但是你意识到知道多少实际上并不重要,而且一直如此,我想说的是你不知道的远比你知道的多。但是,你从良好的教育所学会的,应该是做试验、愿意试验、检验结果、真正的做些私人研究(或许是在夜晚的某地),而不是增加搞定MVC框架的总数或类似的事情。

   

7. 如果一般的开发人员通过某些努力可以达到你的要求的话,你是不是发现大多数开发团队和企业正在朝着这个方向前进?

这个问题相当棒,你刚说的开发团队就是我前面提到过的,我们需要那些知道自己能够对数据做些什么、如何获取信息、如何使用科学分析方法的人加入,这不只像开发软件,这还需要尝试不同的算法,并搞清楚如何对这些算法进行训练、调优,并知道结果已经被优化了,而且还要对这个领域感兴趣。我认为专业数据科学家已经开始这方面的工作,所以我希望大学能够在这个方面走的更远。我们实际需要的是丰富的概念,不仅仅是开发人员,还必须是数据专家,他们并不在意使用什么工具,他们只有一个愿景,一个目标,为了达到它使用任何可用的工具,这个工具集需要非常庞大,才能够实现最终的目标。这只是我一系列的想法,你可能需要做出改变,改变以往大学的教育计划,必须在教育过程中为学生提供正确的想法。
有个观点非常有趣,当作为外界、企业的客户时,他们将解释如何真正利用在大学中学习的人们,以及离开大学后不知道如何对事物进行调整所以参加工作的人们,这都来自于经验。所以,是的,为了让开发团队了解这些,应当从教育开始,非常必要,我认为我们已经开始这么做了。

   

8. 你提到的大数据帮助人类的理念,大学和开发团队如何真正提升大数据的品质和认可程度呢,通过增加专业人才吗,另外,你还能从哪里预见到今后大数据进化的方向呢?

这只是我个人的看法,是关于通过不断发展的系统帮助人类做出合理的决定,所以称作为决策支持系统或是建议系统,随便你叫什么,这不是说要打造一个天网,就是我前面所说的天网。电脑很蠢的,它们只会完成你让他们做的工作,但它们很擅长快速完成以及重复这些工作,虽然我们希望不会出错,但这是不可能的,但是不管怎么说它们能够重复做事,而且做得很快,所以我们使用它们。而最后的确认,最后的“是”或“否”会由一位有资格的人类,通过电脑,基于上百万个因素做出最终的决策。它已经帮你提前计算、聚合完成所有的信息,你只需要进行决策就行。当你能做出决策的时候,你就能教会电脑去做更多的事情、分析更多的数据,在帮助人类这条道路上走得更远。我认为,进化将会发生在建议系统和决策支持系统。

Harry: 感谢你接受我们的采访!

Pavlo:也谢谢你的采访!

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


找回密码....

Follow

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

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

Like

内容自由定制

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

Notifications

获取更新

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

BT