2006 年 Hadoop 的诞生标志着大数据技术时代的开始,而 AWS 商用则表明云计算正式开始了改变信息时代的步伐。自此之后,大数据和云计算成为最近十几年最为火热的技术,学术界和工业界都大量投入到相关技术的研发,极大的加速了大数据技术的商业化落地。大数据和云计算技术的融合,更是加速了数据业务模式的创新,也催生了对大数据技术的底层架构的优化和升级。
趣头条在 2018-2019 年经历了业务的高速发展,主 App 和其他创新 App 的日活增加了 10 倍以上。相应的,大数据系统和平台也从最初的 100 台机器,增加到 2000 台以上,技术栈从单一的离线数据报表,发展到离线 + 实时 + 机器学习的完整系统。
趣头条的大数据治理,有个特殊之处,就是从完全依赖阿里云 EMR,到使用自研 Hadoop 集群管理平台+EMR 混合部署模式。趣头条大数据技术总监虞沐也说道:“上云还是占大多数,从云上下来的还是少数。“ 趣头条为了满足高速发展的要求,为什么选择自建 Hadoop?考虑了哪些因素?QCon上海2019我们采访了虞沐,了解了相关背景。
趣头条的技术选型
2018 年 9 月 14 日,成立仅仅两年零三个月的趣头条于美国纳斯达克上市。去年底用户数破亿。
随着用户的增长,大数据集群从最初的 100 台增加到 2000 台。大数据技术团队从最初 8 个人的规模,一年之后就发展到 30 人左右。
大数据技术的选型有三个指标:成本、稳定性、性能。在企业发展的不同阶段,侧重点会不一样。
18 年的时候,稳定性是第一位。因为业务快速发展,用户数量每季度翻 50%,整个系统非常不稳定。稳定性的问题解决以后,需进一步的考虑速度和性能的提升。今年发展到一个相对比较平滑的时期后,重点开始转移到成本上了,比如说,原来三个小时完成的任务,现在就希望缩减到一到两个小时完成。同时也能更快的将一些数据和指标反馈给业务,业务能更快的做决策。虞沐补充说道:“因为公司从财务角度要考虑它整个的投资的回报比例。如果业务这个季度只增长了 30%,但是我们系统开销增长了百分之百,那显然是不合理的。那么就需要帮业务梳理过去在成本上欠下的历史债务。”
今年 3 月,趣头条发布公告称,获阿里巴巴 1.71 亿美元投资。
跟阿里之间的投资关系,也决定了两者之间会有很多技术合作,这时候的架构选型就不仅仅考虑纯技术因素了。
虞沐曾在硅谷工作十二年,18 年底回国入职趣头条,他表示:”这种需要考虑商务合作的方式也是跟我过去经历的纯技术、成本选型不一样,需要考虑‘BAT 生态’的问题。“
趣头条大概两年前从自建 IDC 环境搬到阿里云。搬到阿里云以后,趣头条的增速比阿里云提供的 EMR 产品的增长要快很多,甚至很多时候是跑在阿里云前边。
最开始发现 EMR 不满足需求的时候,趣头条选择跟阿里云的团队一起去做一些定制的开发,这个阶段大部分工作也是由阿里完成。
趣头条曾经有很长一段时间都是阿里云上 Hadoop 最大的一个用户。因为大多数企业的集群规模在 50-100 台之间,阿里云产品能满足这些 95%的需求。而趣头条作为头部用户集群数量达到上千台,有很多历史遗留问题,例如用户和权限管理的缺失,缺少 Federation 对于各部门的隔离、不能很好的支持海量小文件存储、低价值数据的归档和删除、计算队列的利用率低等等。阿里云 EMR 还无法完全满足定制化的需求,导致客户机管理混乱。
发展过程中还得考虑成本。公司体量发展到一个量级,达到一个零界点之后,自己做机房能很大程度削减成本,能达到 10%。投资越大,节省的就越多,比如上千万、上亿投资的 10%。而且自建机房相对来说也能提升自己整个的技术团队的能力。不仅是大数据,还包括 IT 团队、运维团队、技术架构团队,能力都有很大的提升。
但是当有机器发生故障时,就需要有内核级别的专家坐镇,去定位问题。同时 IDC 属于一个长期的投资。机器一次性购买之后,能够长久使用才能逐步体现出整个成本上的效益。
“经过和阿里云沟通,以及做过’下云‘的调研后,我们决定不完全‘下云’,而是减少阿里云的使用。”
趣头条整体还是部署在阿里云上,但有很大一部分核心的集群会迁移到自建的集群上。主要使用的阿里云资源是 IAAS 层。在机器的层面、网络的层面和软件层面,会扩大自研的比例,这个比例会超过 2/3。
趣头条选择以自研+开源的方式,选择合适的供应商版本,自己做定制开发,自己去控制成本和系统的稳定性。也在系统的外围建立一个护城河,实现拦截异常的功能。同时将复杂的大数据底层做了封装,用 API、平台的方式实现了一个简单的入口。使用开源之外,自研达到 30%的程度。
不要 All in Cloud!
在大数据争夺架构霸权之战中,云计算显然是赢家,Hadoop 背后的势力在慢慢减弱。
虞沐认为 Hadoop 面临的最大问题是不同体量的公司需要解决的问题不一样,甚至企业在不同的阶段对 Hadoop 的诉求也不一样。云计算厂商提供的托管服务在部署和运维上给予了用户很多便利,很多体量小的企业选择上云,因为自建数据中心不划算。而大企业选择混合部署的方案的比较多,比如拼多多、今日头条。
包括硅谷很多大企业也会选择上云或混部,比如说 Groupon、Netflix。
很多小公司和 Groupon 一样,从云中起家,因为云允许公司快速部署和进入市场。Groupon 一直寻求财力自建数据中心,但是云服务可按月、天支付费用,对财务压力更小,最后他们关闭了硅谷机场旁的小型自建数据中心,全部上云。
Netflix 在 08 年的时候遭遇数据库损坏导致三天无法给用户提供服务,因此他们决定全部迁移上云。耗时七年,在 2016 年 1 月,Netflix 宣布完成了云端的迁移,并关闭了所有的流媒体服务数据中心。但是 Netflix 有自己的 CDN 服务,“成本原因,它总要有些自己的东西。但主要的业务以及系统都在云上。这是个比较典型的例子“。
另外一个例子是 Twitter,最开始是完全自建的数据中心。但现在 Twitter 大概 1/2~1/3 的规模是在 AWS 公有云上。
“的确,上云还是占大多数,从云上下来的还是少数。”
云上不仅是大数据,还包括其他的一些比如技术架构、数据库、微服务相关的东西,一旦上云,需要在两者之间达到一个平衡点。
“公司发展到一定体量,就不要 All in Cloud“,虞沐表示,“如果说都用云提供的服务的话,可能自己团队的技术能力就会减弱。如果有一天,万一有些原因需要搬离的话,可能就没有这个技术能力去支持迁移的动作了,就和云绑定了。”
未来的关注点
虞沐表示未来还有三个方向值得关注:
第一,离线转实时。目前实时计算成本还比较高,当技术越来越成熟了以后,可以用类似或者相差不太多的成本,将业务从离线转成实时化。过去一天才能看一次的报表,现在仅需要 5 分钟顶多一个小时,这对业务的冲击是非常明显的。
第二,容器化。容器化这波浪潮比以前的 VMware、Openstack 要大很多,必然会冲击到大数据领域。趣头条现在准备将一些计算引擎迁移到容器上。一方面是出于成本的考虑,另一方面是提高整体性能,因为容器有弹性伸缩的功能。如果有一天需要“下云”,实现起来就很容易。在容器里面,可以像搬运一个货柜搬走就行了。
第三,机器学习。机器学习这块的门槛也越来越低了,很多公司如果想实现人脸识别、语音识别、NLP 相关功能,可以选择一些开源的框架,这些东西不再像以前一样只存在象牙塔里。包括硬件环境的门槛也越来越低,就可以进一步的释放大数据的能力,不仅仅是传统上的 BI、报表了。
采访嘉宾:
虞沐,James。2001 年安徽大学本科毕业后,先后在上海 HP 和 SAP 工作。2007 年赴美国硅谷工作,先后在 eBay,赛门铁克,三星从事分布式系统开发。2013 年开始从事大数据和公有云相关开发,先后在百度美国,xAd,和 Facebook,从事技术管理和架构师工作。2018 年底回到上海工作,在趣头条担任大数据技术总监,经历公司快速发展,带领团队自研开发多个大数据和机器学习平台。
更多国内外一线技术大咖分享请持续关注 QCon 全球软件开发大会,访问官网与技术大咖面对面交流实践心得。
评论