摘要:在DT(DataTechnology)时代,挖掘海量数据的价值,让数据成为新的经济增长引擎,往往离不开云的支持。来看看阿里云是怎么处理的吧!本文整理自3月27日极客邦科技「技术社群大会」上何云飞先生的演讲。
人类正从IT时代走向DT时代,从五年前开始,我们在云计算上面押了很多宝,才诞生了互联网金融,如果没有数据支持,互联网金融是不可想象的。」
——马云
「当云变成基础设施的,我们数据挖掘能力会越来越强,以后的数据会以人为中心,数据会越来越大。」
「这是我们真正的追求的梦想:让企业,开发者只需要关注数据存取更安全,和数据的的获取和插入就达到目的了。」
——何云飞(阿里云数据库产品总监)
1、数据库类型的过去、现在与未来数据库其实从上个世纪七十年代已经发展了近五十年,这五十年当中满足不断的用户对数据的需求。人类对数据的需求已经经过多个时代的转变:从层次的模型,到发信息的模型,分析型模型,以及互联网发展起来从螺丝口到KV的数据模型。这个软件的发展和硬件的发展都是相辅相成,一直在支撑着。
我们可以看到关系型数据库模型七十年代就特别起来了,而且甲骨文这样的巨头公司在1979年就开始跟进数据库的研发,一直到现在。今天讲到的大数据,其实在上世纪九十年代就有人提出来了,他们希望通过将历史数据,所有零散的数据归并起来,然后进行数据挖掘,以看到以前存在的问题,去预测未来,1-3年的趋势。所以分析型数据很早很早就有这个领域,一直在发展。今天所谓的大数据只是更大范围数据挖掘的演变。从最新的格局数据分析来看,其实我们也可以看到关系型数据还是占大半江山,这得益于关系型这个更利于人们理解和接受。因为知道人类社会本身就是一种关系,它是很容易理解的,按照人的思维去理解的一种模型。
这是一个流行趋势度的排名,这个排名是通过一些流行的搜索引擎里,通过一些文档资料,数据库从业人员的数量,以及搜索关键词的数量综合排名出来的。从这前十名数据来看,关系型数据占了大半江山:
这是在关系型领域的一个独立排名,可以看到前四名,有两个是商业型数据库,有两个是开源型数据库,这其实也是可以看到一个开源数据库的趋势。这个是从市场份额的分析,会发现甲骨文真的是老大。
什么是第一?马云曾经定义过什么是「第一」:「第一」不是你排在第一名,不是的;「第一」,是后面几名加起来还没有你多,那才是「第一」。可以看到甲骨文的份额是后面第二、第三、第四加起来的。
全球无数数据库的厂家在不断的支持数据库的发展,在中国,甲骨文在08、09年非常流行。以阿里巴巴为代表,全中国最牛的甲骨文DT都在阿里巴巴聚集。甲骨文在中国的发展已经很早拥有物联网模式发展,它让你免费下载,免费使用,然后再收费。这在外国很好,但是在集勤劳和智慧于一身的中国没用,因为中国人一直想着免费使用,还一直免费使用。随着物联网的发展,阿里在开源,尤其在数据库领域也有一些自己的产品,像PetaData等等的。
上图是一个整体的趋势,可以看到商业型数据库在下降,开源数据库趋势在不断上升。
这里主要说的与之密切相关的事情,首先是阿里巴巴自己去IOE。去IOE五是本身阿里巴巴自己内部项目的一个代号,但其实已经被一些生态的硬件厂商看到了一些机会,然后蝴蝶效应被无限放大了。
阿里巴巴本身其实当时的技术发展,已经受到了一些硬件的限制。甲骨文最大的集群是在阿里巴巴的,但是这也满足不了阿里巴巴这些在线交易数的要求,已经支撑不过来它的发展。当然说分布式,整个机房全都是趟过去就可以了。但是这个代价可想而知:
第一,它的交付速度,
第二,成本。例如双十一的时间就一天,一天结束后所有的机器就空闲了。
第三,它的资源不能被切割的,很难被切割,或者切割的力度很大的。
所以阿里巴巴当时启动这个项目,就是为了寻找一种可以低成本,快速交付,高并发能力的系统架构。但是我们也选择过,最后选择了MySQL。为什么呢?因为它本身是体积非常小,速度非常快,成本低,而且又开源。
而且最好玩儿的是那时候互联网刚刚发展起来,MySQL已经有了非常大的开发者生态在里面。MySQL那时候最火的是什么,是后面的应用,论坛。论坛里有一个特性是什么?帖子——回帖。如果前端应用要分布式扩展的话,回帖一个流程,流程需要自动增加的。这种增加如果用分布式去实现的话,这个还是很头疼的一件事情,它必须有一个全局ID实现的。但是这时候MySQL的引擎,它就是支持了这儿一个特性,它需要这里有一个全局仲裁点,它可以联合组建指针帮你搞定。所以开发者做一些论坛,做一些网站特别喜欢用MySQL,它就飞快的增长起来了,当然这后面也一些公司的支持。
首先我们有一个历史可以看到,就是Sun当时要收购MySQL的时候,它给IBM对标的时候,IBM有完整的体系,从CPU,开发框架等等的,但是Sun没有,所以它收购了MySQL,想借此发展。但是甲骨文比它更牛,甲骨文没有硬件,所以把Sun收购了。
2、云计算来了简短回顾了一下发展的历史,走过的路,可以看到今天我们坐在这里,其实在外面已经发生了千变万化的事情了。云计算真的已经来了。云计算不是突然掉下来的,也是随着我们的互联网的业务的发展,随着我们技术架构的变更,随着阿里巴巴去IOE沉淀下来的产物。
我们推云计算,希望今天所有的中小企业去享受阿里巴巴每年双十一的商业红利和我们去IOE的技术红利。既然在云上了,我们环境变化了,技术变化了,总会有一些新的标准出来。还是从数据库的角度上去看,以前我们要用数据库都是买机器,然后装上,所以以前是买机器的时代,现在是服务的时代。现在服务有两个变化:
第一,软硬件是同时交付的,可以按时、按年付费,这大大节省中小企业创业的成本。
第二,交付效用的提升。中小企业,不知道有没有专业的DBA,哪怕有也是瓶颈,很悲剧的,曾经我也是瓶颈。所以在云的平台上交互速度是生产力的提升,哪怕是财务都可以很快速的创建,让你的工作效率大大提升,而且是整套交互,包括数据库监控,靠可用,数据的备份,这一系列都帮你做好了。
到了云上以后发现我原来用的数据库云上有吗?有。因为发现几大云提供商基本集成了最流行的数据库在上面。在开发者层面来看,以前怎么用现在也怎么用,应该说更方便,因为再不用管后面的安装、监控、备份这些事情。
第三,重点是安全。以前你们用数据库在你们公司里,可以说已经安全,但不是最安全的。其实公共云应该比专有云更安全。为什么这么说?
首先,公共云本身是一个非常危险的DT,所以大家警惕性会非常强。在私有云领域还要求打造四层要加密,以防止文件拷走以后别人解不出来。其次,数据库的访问是要被审计的。最后,再上一层所有DBA和技术人员都关注不到的,就是应用层的数据窃取。
大家知道,去IOE的背后其实是希望用非常简单的,或者用通用的X86服务器来替换我们传统的去IOE的技术平台——硬件平台。大家知道X86的硬件能力是有局限的,目前比较通用的是256G,32Core为,但是这个容量和计算能力还是有限的,当然下一代我们会扩容。
对于互联网应用来讲它可能还不够,单个库不够,那么就用读写分离来做读获得就可以了。
其实读写分离碰到的问题也很多,首先读写分析在MySQL要解决读跟主库的数据同步的问题,一致性问题,延时问题,这些都要解决。特别是延时问题,但是知道MySQL主备还是单线写入,而主库是多并发写入。所以今天在方向上,我们在思考如何能让这个事情解决掉,而上应用感知不到这些麻烦的事情。
我们希望这还是一个数据库,首先在存储扩展上可以天然应用云上平台的共享存储,叫分布式云存储。可以讲数据盘扩到100T。存储和计算分离后,计算可以平行扩展。还可以让所有节点、数据在度曲的时候,数据隔离性是一致的。由于它的写节点,它不再存在读的压力,所以写节点的能力至少有一倍的提升。
这样的话,其实对于一般的中小企业来讲,如果拥有这样一个数据库,它至少可以熬过三年,有三年的时间让它喘息。这里的技术架构的扩展是基于先保证SQL接入优先的。因为大家知道要换一种架构,应用全部改一遍,这是非常麻烦的一件事儿。
当云变成基础设施的,我们数据挖掘能力会越来越强,以后的数据会以人为中心,数据会越来越大。其实对中小企业来讲,进入DT时代还很长很长,包括今天你有这样的数据量你怎么办?所以今天我们思考的是说怎么把你的数据先存现在。所以未来的数据模型,应该是说数据的技术点是希望基于分布式,压缩的,低成本的存储。这里其实有一个简单的示意图我们可以看到,未来虽然有这么大的数据量,但是80%的数据不会传输超过一公里。这是什么意思?所有的设备里它会帮你自动计算掉,聚合掉80%的数据。
所以未来嵌入式数据库是一个方向。嵌入式数据库一定是为未来所有设备产生的实时数据,帮它完成80%的数据计算,剩余的数据存到它的云上来。到云上来有一个高并发的能力,因为未来互联网的场景是几百万的端需要数据并发的传到上面来,所以对数据库来讲,并发的写入能力要非常的好。数据库有一个叫连接数的限制,经常在双十一的时候连接数被打爆,然后连接数就挂了,这是要克服的一个点。
还有压缩,还有存储,这些数据存下来以后怎么用?既然大数据炒的很热,它是未来,但是在大数据之前还有一个轻计算,这是大部分企业需要的。有些企业现在来讲只需要一个简单的包,需要一个简单的聚合,排名一些多维的数据。所以从数据库来讲,我们在方向上有一个至少PB级的存储能力,10倍压缩能力,多节点事务一致性,OLTP-OLAP,有机整合1份数据,2种计算。
3、业务的变化当互联网真的成为基础设施的时候,大家应用搬上来的时候,业务就会发生变化。其实这个变化现在已经可以看到。
举个简单的例子,跨境的全球的物流慢慢的已经出来了。今年阿里巴巴一大战略是国际化,我们希望更多的企业从国内走到国外,从国外把东西运进来。举个跨境物流的例子,中国的系统我们希望在美国也可以看到数据,怎么办?当然它可以直接调中国的系统,但是这个体验非常差,怎么来解决?解决的办法,就是数据最终一致性,慢慢的做同步,但会延迟看到。这肯定不是我们想要的,当然这也是现在的权宜之计。以前所有企业的数据,大家觉得数据的重要性从来没有像今天这样重视过,都想构建一个数据的容灾,但是成本很大。但是在大家心里都有一个谎言,就是成本太大了,容灾就不用做了。其实你想不想做?其实都想做。因为对一个企业来讲,它最后留下来的就是这些东西,最后没了,就真的没了。
这些东西在云上,有了云的基础设施以后,这就完全可以非常轻松的做到了。阿里云其实在中国有六个数据中心,在2017年应该会超过十个,你可以随意一个点做容灾,对你来说要购买的资源就是两个数据库,不用再建设那些基础设施,非常方便。
最后还有混合云。在上云的过程中不会所有的业务都一下子搬上来,这对技术人员挑战就非常大,所以他们会选择一部分数据上来,一部分应用上来来借用云的资源做弹性。这个时候就会有,从你自己企业里到云上数据交付的过程。因为云上的业务和你家里的业务还需要交付的。所以真正的未来,远一点的话应该有一个全球性云端,不用再让开发者纠结数据要同步,数据一致性有问题,任何东西都可以写进来,这是我们真正的追求的梦想,真的让企业,开发者只需要关注数据存取更安全,和数据的的获取和插入就达到目的了。
本文为专栏文章,来自:AI前线,内容观点不代表本站立场,如若转载请联系专栏作者,本文链接:https://www.afenxi.com/14401.html 。