2017云栖大会POLARDB专场,广州通易科技有限公司技术负责人刘锬带来ApsaraDB云数据库助力优驾产品升级和架构变革的演讲。本文主要先介绍了优驾产品,接着介绍了应用需求与技术架构,最后分享了上云之路和使用云数据库的体会。
以下是精彩内容分享:
优驾产品
我们做的产品是车联网的产品,最右边是连接汽车API的盒子,我们做APP连接盒子。我们出了一个旗舰产品,4G后视镜和车的连接大屏,产品本质上来讲就是AI助理,帮助大家解决一些用车的小问题,怎么开车出行,怎么精明养车等。
我们的产品深度支持100多个车品牌,我们能读出来的数据能力和专业4S店诊断仪诊断出来的数据一样。
应用需求与技术架构
这是数据的架构,车里传感器非常多,很多数据流都在汽车总线上跑。而车对外暴露一个API 16桢接口,把车和网络连接起来。盒子不管是和手机、平板、后视镜、车机,都是通过蓝牙连接,数据上传到云分析数据。
汽车里的数据流比我们想象当中要多,仪表上可见的都是数据流,仪表上不可见的也有各种各样数据流,还包括在车上能看到各种各样故障灯。假设有100个数据流,每个数据流都是在50毫秒产生一个数字的变化,这个时候数据量是很大的,比如在国庆期间,有一位用户大概15天的时间从广西南宁出发,然后把青藏线和川藏线全部走了一遍,跑了8千多公里,他把8千多公里数据在一个时间点提交传上来,他的数据一天行车1200公里,1200公里数据大概有50万条原始数据,还不是我们处理后的数据,这意味着8千公里大概就是350万条左右,一次性一个峰值一个用户就把数据提交上来,我们就很痛苦自己多出一个BUG,导致不正常。
现在数据库存储成本高,我们并没有把所有数据都存到数据库。大家知道一个应用只有10万个用户,其实是非常小的应用,但它的数据量很高。我们想要做的事情是在车出现异常之前发现它,发现它之后找到解决方案,我作为一个车主能不能去之前就知道车可能会怎么修,哪一个部件坏了,甚至于部件在网上哪个卖家卖得最便宜,这是我们想要解决的问题。
我们通过大数据预测车况异常,数据接进来之后用一些机器学习算法,包括专家的知识库做一个问题预测。然后能够把维修方案给出来,跟哪个部件有关,然后再去做维修配件电商全网比价,把所有电商上汽车配件全部抓下来,看它的价格比较,告诉你去哪一家买是最便宜的。这个应用的范围很广。
与云共舞
最开始产品上线的时候,我们自己弄了一个服务器,用户量很少。大家也知道应用的特性,数据快速增长,我们天天还想着开发一些业务的功能,数据库性能也很差,用户工作量也很大。后来阿里云技术专家提了很多意见,和我们探讨怎么把自建服务器上环境迁移到云上面来。
上云之路
最开始我们用云的时候,买InnoDB的实例,性能很高,运维起来很简单。我们没有DBA,只有开发人员客串DBA。这时候还是有两个问题:第一,数据还是快速增长,数据存储成本肯定还会很高;第二,当时数据库实例是2TB,通过2TB的上线,这时候要做分库分表,再买个实例很麻烦。
MySQL的RDS是2个TB,hadoop是PB级别的。大家有没有想过一个问题,10个TB的数据和100个TB的数据也要用hadoop吗?有没有一类产品,它能够突破这个上线,因为MySQL我们用起来很熟悉,MySQL能不能支持大数据产品的应用。阿里云出来一个产品支持TokuDB存储引擎,5倍的压缩比。当时我们把一些事物处理放在InnoDB,OLAP放在TokuDB上。
但问题又来了,TokuDB还是有上限的,后来出现了Hybrid,我的体会有几点:
第一,它依然是支持MySQL的,所以用起来不需要再去学习什么,很方便;
第二,它存储成本会相对低一些,因为它是SSD和SATA混合,也支持高压缩,TokuDB引擎在里面依然可以用;
第三,一份存储数据既可以做TP业务,也可以用AP业务。大家也知道要把这些数据拿出来做分析,要把数据拖到另外一个地方去,用之前准备工作太长,这个数据库好的地方在于我写一次,APP业务也可以在上面跑,有分布式数据库;
第四,直接可用,最后数据突破上限PB级。
其实产品出来之后,一样还存在问题,只读实例,成本线性增加、创建速度慢;数据备份,2TB、50小时。POLARDB一次性满足了我全部的幻想,我们作为一个不知名的厂商在做很小的产品,在解决一些很小的问题,使用POLARDB,我可以用很少的成本。
使用云数据库的体会
云数据库用了这么久,在这几年用阿里云的数据库产品给我印象最深刻的是阿里云的价值观,他们能把客户放在第一位。
首先,它不怠慢客户。我们的产品在刚刚出来时也没有什么用处,只是自己有问题而已。在这个时候他们不会因为你是一个很小的客户,提出问题就不重视。我们从当时提出问题到现在阿里云推出的各个产品线,解决了当时提的问题,MySQL能不能支持大数据场景下的应用。
其次,积极互动。他们的产品有什么意见,他们会经常主动问意见。
第三点,阿里云的数据库有一个特点,你有什么新的需求我们就开发新的产品对应你。
第四点也是最重要的一点,坚持性价比。性价比很重要,我之所以用你,你的东西固然好,但必须得便宜,中小企业关注的是成本。