一些思考

大概1、2年前,看到某媒体评的互联网未来4个热点:云计算、大数据、社交、移动互联网。当年的热点现在怎样了?

最先被过度炒作的概念是云计算。这本来是个技术名词,但后来“云”这个词就泛滥了,前些年铺天盖地的“云XX”,似乎什么词加上个“云”的前缀就瞬间高大上了。我见过公司附近“云公寓”的广告。。。聊天时还有人说要搞“云咖啡馆”。。。止增笑耳。我司似乎对“云”有特别的偏爱:云阅读/云音乐/云笔记/云课堂。。。为何腾讯不搞云微信,阿里不搞云淘宝呢。。。
也许从营销上来说,云计算确实很成功。一个概念要想被炒热,首先要容易理解,太专业的广大群众也不懂。但也不能太通俗,否则不能用来装X。不是什么概念都能火的。但火到一定程度,就离挂掉不远了。
那到底什么是云?在我狭隘的视野中,云是一种服务,特殊之处在于可伸缩性和近乎无限的扩展性。无论你提供的服务是什么,虚拟机/tomcat/数据库/包子/手纸。。。都可以。但“云计算”一般都是指技术相关的。可伸缩性包含两层:按需使用和按需付费,否则和传统的虚拟化技术有何区别(Xen)?和传统的VPS提供商有何区别(Linode)?不是把一大堆单独的个体聚成一堆就叫做云了。
身为四分之一个业内人士,我觉得IaaS/PaaS还算靠谱,但SaaS很多时候是个伪命题。用户用的是你的产品,他才不关心你的服务是如何实现的。云存储和普通的网盘,对终端用户有何区别?用户又何必去关心?即使后台的实现是不同的。很多的SaaS,感觉有点像以前的大型机+终端的时代。用户只要用终端连上来使用就可以了,不用安装不用配置。也有点像以前“浏览器解决一切”的思路。电脑只需要装一个浏览器就可以了。一切需求都通过Web满足。
真正能从云计算中受益的是企业,而不是用户。企业可以降低成本,快速做出产品原型。所以很多企业也在推行内部的私有云。大多是基于OpenStack。但我还是感觉很难用。。。云主机有各种各样的问题。。。
总结下,云计算如果做的好,如AWS,确实能够改变一个行业(只是改变行业内部,不是改变用户)。但现在还有点遥远。不过能远离炒作,远离媒体,踏踏实实的发展技术,也算是个好事。

大数据,算是我的本行了。大数据有些步云计算的后尘,炒作的太多。这也是一个容易理解也容易拿来装X的概念。媒体总是过一段时间就换一个概念炒。比如以前的“纳米”、“物联网”。
我的感觉,大数据技术很多,但成熟的少,门槛很高,落地太难。
大数据相关的技术发展非常快,可能也是因为我比较关注这个领域,经常有各种不知名的项目冒出来成为Apache TLP。但是发展太快也很头疼,往往不知道该选择哪种产品。这算痛并快乐着吧。比如流式计算,是用storm还是spark streaming呢?现在我基于storm写的程序,如果以后出现了特别NB的技术,想迁移要多大成本?很多东西架构也在变,在hbase 0.94下积累的很多运维经验,到hbase 0.98下未必有用。以前很多任务是用MR跑的,现在要换成spark,这玩意非常吃内存,这需要多少硬件/时间/人力成本?另一个问题就是API不稳定,有些项目兼容性做的不好。
技术发展快当然是好事,但从企业的角度来看,追逐技术要付出很大代价。比如在hadoop还是0.1x版本的时候,我司开发了自己的MR计算框架。很多统计任务都是在这个框架上做的。但hadoop成熟以后(0.20.203),我们是应该继续使用自己的框架,还是迁移到hadoop?迁移就是成本,企业是否能接受?(当然我司是接受了,否则我也不会在这里敲这些文字了。不过改代码的过程还是挺痛苦。)
hadoop为什么能成为事实上的标准,不是他的技术多先进,spark比他NB的多,google后来开放出来的Tenzing/Pregel/Dremel等系统,开源界也有相应实现,为何都没有hadoop应用的广泛?为何很多项目都要围绕hadoop开发,甚至形成了hadoop生态系统?首先hadoop开发的早,到现在已经比较成熟了。其次是稳定,社区做出了严格的兼容性保证,MR到YARN这种巨大的架构变化都能保证用户不用改自己的代码。hadoop社区还是很靠谱的。
另一个尴尬的事实就是大数据技术的使用门槛很高。或者说,都是面向程序员的。曾有很多用户跑来跟我们说,哎我们听说hadoop/spark很NB啊,我们也想试试。于是他们要去了解很多概念、了解MR编程模型、了解kerberos认证,光MR的那一堆参数就够头疼的,其实他们只想要一个很简单的count distinct而已。hive/pig/spark sql之类的能解决部分问题,但也不是万能的。所以我们在和各个产品合作时,都要他们出一个技术和我们对接。这种方式很有问题。“我们提供一个hadoop环境,你们自己去写程序吧”就好像是“我们提供一台电脑,你们自己去写操作系统吧”。。。
实际上,真正关心数据的不是程序员,而是各个产品的业务人员,比如商务/市场/运营/PM。但他们又没有能力写程序提取自己想要的信息。必须要一个能充分理解产品逻辑的程序员和他们配合。这种配合效率低下,毕竟中间多了一步,这个程序员也会觉得自己很苦逼。
业界也在做出一些尝试降低使用门槛,Cloudera/Hortonworks/MapR都有一些产品,印象中腾讯和阿里也有,我们也在做一些努力。但效果不如人意。
除了使用成本,维护成本也很高。只有大公司能真正搞起来。以hadoop而言,若企业想将自己的数据接入hadoop,需要很多的前期投入:硬件(机器少了没有优势)、人员(要有专人负责)、技术(开发和运维)、推广(不是所有人都愿意用的)。即使能搞起来,也需要持续的运维成本。hadoop是个很复杂的系统,部署就很麻烦。而且开源项目是不会有技术支持的,不一定什么时候就踩到个坑,很多问题都要自己去看代码解决,要时刻跟踪社区的动态。大公司能基于hadoop做二次开发,很多需求能自己解决。小公司么,能维护正常运行就不错了。运维也是人肉运维,耗费很多精力,我们经常半夜爬起来处理事故。。。换言之,基本没有自动化运维。业界有些解决方案,但都不是很成熟。
其实很多开源项目都是这样,注重技术,忽略易用性,忽略可维护性。
上面说得都是些技术问题,至少都有办法解决。大数据真正致命的问题在于落地非常难。技术终究不是目的,技术能带来什么价值?有哪些企业真正从大数据中获得价值了?天天计算一堆日志,算下PV/UV,就能叫做大数据了?不对,那只是“统计”。我印象中似乎只有《纸牌屋》据说是借助大数据提升收视率什么的,而且炒作的成分居多。其他还有什么成功的案例?恕我孤陋寡闻。说到底,大数据只是提供给你“一大堆数据”以及“处理这些数据的手段”。至于你怎么去用、能否从中产生价值,这不是大数据本身关心的。还是要靠一些传统的理论比如数据挖掘、预测、推荐、机器学习。大数据帮你把鸟枪换成大炮,但是扳机还是要你自己去扣
啰嗦了一堆,总结下。大数据只是工具,不是目的。关键不在于技术,而在于应用。现在业界的应用都很初级,谁能先做出杀手级应用,谁就能统治市场。

这里再吐槽下数据仓库。我觉得这个东西过于理论化了。能搞出结果就行呗,非要建这么复杂的模型?数据仓库的目的是,我需要的任何数据都能从仓库中算出来。可惜在大数据面前,这个理论有些过时。你需要的任何数据,都可以直接从原始数据中算出来,没必要在中间抽象一个数据仓库,还搞什么雪花模型、星形模型,搞那么多维度。在RDBMS的时代,计算能力有限,也许这确实是必要的。但大数据时代,计算能力极大扩展(比如MR,简单暴力),这个理论就有些多余了。这算是学术界和工业界的脱节?

关于MR还有些争议,有数据库大牛认为MR是一个巨大的倒退。我倒觉得这很好理解。计算能力不足时,当然要用各种手段提高效率,比如索引、分区、分表。计算能力提升后,只要简单的全量扫描就能满足我的需求,干嘛还要搞那么麻烦?好比我穷的时候,买东西要讲究性价比;突然变成亿万富翁,什么性价比就见鬼去吧,想买啥就买啥。

社交,我是个局外人,毕竟不是搞这行的。
当年Facebook还没上市,关于扎克伯格的那部电影还很火,大家听到“社交网络”这个词还很新鲜。
似乎微博、微信啥的,很是火了一阵,但就没有然后了,感觉后劲不足。
就我本身而言,没感到和QQ/短信时代有什么区别,只是工具的变化而已,因为我是个社交的失败者吧。。。
现在的APP,没点社交属性都不好意思发布。但无论APP本来的社交属性是什么(熟人/陌生人/职场/婚恋/兴趣组),广大人民群众总会找到用它来约X的办法。。。人民群众的智慧是无穷的。。。
也许社交影响最大的是网络营销。。。发广告成本降低了,目标更精准了。。。
总的来说,很少有专注于社交的产品了,这个领域已经是几个寡头的地盘,大家都审美疲劳了。而且社交产品用户粘性较大。你的朋友都在用微信,你会跑去用易信/来往?除非有能令人耳目一新的交互方式,比如Snapchat这种。社交更多是作为产品的一个附属功能。

移动互联网,这是确确实实改变了我们生活方式的概念。也许一半的功劳都要归乔老爷。。。
云计算和大数据只是一种技术,社交是一种产品形态,而移动互联网是一种基础架构,或者说是一种思考方式。它会深刻影响到所有跟互联网有关的事物。它比前几个概念重要的多。就像拨号上网的时代我们很难想象可以在线看高清视频,能看看flash就满足了。PC时代我们也很难想象手机功能会如此丰富。这不光是互联网的进步,而是要求硬件、软件、制度、消费习惯等等一起进步,可以说是整个人类社会科技的进步。也许说是颠覆更合适。
而且由此衍生出来了各种智能硬件、可穿戴设备、智能家居等等,相关技术还有非常丰富的想象空间。
总之,虽然移动互联网这些年发展迅猛,但潜力仍然很大。有点“人有多大胆地有多大产”的意思,看你敢不敢想。它也会继续改变我们的生活方式。

最后再啰嗦下。虽然互联网上各种概念被轮番炒作,但真正能赚到钱,有清晰商业模式的业务无非几种:电商、游戏、广告。其他的模式都是从这几种衍生而来。互联网赚钱的方式就两种:1.向用户收钱(B2C、付费游戏、各种会员制);2.对用户免费,向第三方收钱(C2C、广告)。
至于那些只靠风投的钱活着的。。。呵呵。就像庞氏骗局一样。

忘了在哪里看到的,说互联网只是个渠道,它本身不产生价值。深以为然。所以现实中以渠道为生的行业(各种商场、各种中介)受到互联网的冲击最大。

胡言乱语,博君一笑。