You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
5.8 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 082 | 阿里巴巴的大数据故事:数据分析平台发展史
阿里巴巴是国内最早开始做大数据的公司,也是国内最早开始做云计算的公司。阿里巴巴的数据分析平台非常齐全,今天我带大家看一看阿里巴巴的大数据发展历史。我们首先看看数据分析平台方面的发展。
## MaxCompute
阿里巴巴作为国内最大的互联网公司之一也需要一个大数据分析平台。阿里巴巴发展大数据平台走了两条路一部分业务用的是开源的Hadoop另外一部分则用了自己研发的平台。这个自己研发的平台最初叫ODPS也就是现在的MaxCompute。
阿里巴巴的平台研发时间上比微软、谷歌或者雅虎起步的时候稍微晚了一点。这个平台最初主要做法是前端和Hive兼容使用了Hive的语法后端从查询优化到查询的执行到数据的存储都是自己开发的。当时负责开发的是徐常亮。
平台的开发一开始并不顺利。但是通过几年的磨合这个平台也开发得有模有样了和阿里内部使用开源Hadoop的组并驾齐驱。到后来很多阿里内部业务都泡在了MaxCompute上。当然阿里巴巴的MapReduce叫作E-MapReduce至今依然是阿里云支持的服务之一。
MaxCompute在2015年迎来了一次大换血。当时微软Cosmos部门负责SCOPE开发的领导微软合伙人之一的周靖人加盟阿里云成为阿里的副总裁兼首席科学家MaxCompute成为了他手下负责的方向之一。
此后随着曾在微软SCOPE队伍里的中国人的加盟MaxCompute的负责人换成了微软来的关涛同时加盟的还有后来MaxCompute的总架构师林伟。这群新来的人对MaxCompute的整个框架做了很大的改动让整个框架更加得模块化。在2017年的时候MaxCompute 第2版也顺利发布了。
目前阿里巴巴内部的很多数据分析任务都跑在MaxCompute上。这也是就我所知除去谷歌和微软以外全球第三家不基于Hadoop生态圈而是基于自己开发的系统做大数据分析的公司。
## OceanBase
OceanBase是另外一个非常重要的产品严格一点来说它属于蚂蚁金服集团。OceanBase是阿里巴巴集团的新一代分布式金融关系数据库主要面向对象是蚂蚁金服集团内部的各种金融业务。
阿里巴巴公司建立的早期业务主要跑在Oracle的数据库上。但是随着时间的推移Oracle数据库越发无法支撑阿里巴巴的业务规模而Oracle的昂贵价格也让阿里巴巴的运营成本居高不下这就有了用自己的软件代替Oracle数据库的想法。
阳振坤老师是OceanBase项目的负责人。根据2017年财富排行榜公布的信息他的目前身价是70亿元。但是阳老师至今依然领导OceanBase的工作为理想而奋斗。
OceanBase起始于2009年最初是支付宝钱包项目的一个子模块。后来OceanBase独立出来慢慢做成了一个通用的数据库系统并被用到了蚂蚁金服集团各个不同的项目上。2014年的OceanBase是第一个稳定版本还一度开源过。但是那个时候的OceanBase有一个问题数据写入时只能从一个节点写入会造成写操作的瓶颈。
伴随蚂蚁金服业务规模的扩张这个问题导致OceanBase在很多项目上成为瓶颈。2014年开始研发的新版本最终将这个问题解决掉了。2017年的时候按照蚂蚁金服集团非官方的说法OceanBase已经全面取代了Oracle成为蚂蚁金服主要业务的、唯一的数据库平台。
## PolarDB
阿里巴巴早年大量使用Oracle所以培养出了中国最早的一批Oracle高手。但是阿里巴巴也是大量使用MySQL的所以集团内部也培养出了第一批MySQL的高手。
以俞峰为首的团队是阿里巴巴内部对MySQL最为精通的团队之一。这个团队对MySQL进行了大量改良使之支持了阿里巴巴的很多业务其核心业务主要是在非金融方面。包括MySQL的两地三中心主从备份的版本都是从这个团队里出来的。
2017年正式发布的PolarDB是这个团队把这种MySQL的认知发扬光大以后最新的云端产品。如果要对标业界的产品那么最合适的应该是亚马逊的Aurora。但是从技术层面上来说PolarDB和Aurora有很多不一样的地方。
PolarDB兼容MySQL的API后端则通过最新的硬件和软件相结合的方式使性能达到了MySQL的10倍同时还可以有效地处理大量的并发请求。这个系统无疑代表了阿里巴巴大数据方面一个很高的里程碑。
当然在阿里巴巴旗下的数据分析平台还不只这几个。比如说阿里巴巴有HybridDB for Postgress我们可以认为这是类似亚马逊Redshift的产品。此外阿里巴巴还有对主要的NoSQL开源产品的支持比如说MongoDB、Redis。这些产品都在ApsaraDB的品牌下。
## 重叠的功能
每次我面对阿里巴巴的产品时,都有一个很大的困惑。这些产品看起来是阿里巴巴内部不同的团队独立开发出来的,然后它们作为不同的产品出现在大家面前。
比如说到今天如果要我在OceanBase和PolarDB之间给用户推荐一下我会不知如何决策。因为从功能上看这两者都是做事务处理的数据库。从宣传上看两者都很牛都支持了双十一当然是在不同的业务上。
这种困惑并非只有我有,知乎上类似的问题很多,各种回答也是众说纷纭,有时候项目负责人也会亲自上场回答问题。但是看完答案, 我的困惑更多了。在阿里巴巴发展的不同时期,不同的团队开发了功能类似的产品,这很正常。但是如果这些产品都一股脑儿摆在用户面前让用户挑选的话,商业上就不知道怎么评价了。