从Oracle到MySQL,余额宝云实践分享

原文链接:http://www.csdn.net/article/2013-11-/2817426-interview-financial-case-yuerbao-aliyun07

余额宝、百度百发、腾讯财付通谋划的互联网理财工具,吹响了互联网对金融行业的进军节奏。而后,网易、和讯、京东商城、苏宁云商等二线实力企业纷纷涉水。另一边,一众金融精英也在频频转换思路,不仅银行网络中心从副行长牵头的服务部门一跃成为行长主抓的业务部门,而且高调发布互联网金融理财产品与携手互联网企业并行,力图实现金融互联网的新价值。一时之间,互联网金融热潮涌动,无数专家多视点多维度进行了深入剖析,数十篇业内深度文章从产品、渠道、市场与趋势等全面解析互联网金融本质。

天弘基金创新支持部总经理樊振华(左),阿里云金融云服务架构师白培新(中),深圳市金证科技股份有限公司副总裁徐岷波(右)

但汹涌的背后,是鲜为人知的技术实战。从传统封闭的IOE格局迁移到更加动态扩展、成本更经济的云平台中,要跨越的障碍实在不少。即使在云计算发源地——美国,囿于安全性、合规性和风险等方面的挑战,金融业虽然与AWS接触频频,但还没有走出实质性的那一步。到了国内,习惯有标杆可以模仿的我们,是继续等待?还是走出新路?

好在,5个月,开户用户超过1600万,货币基金累计申购超过1300亿的余额宝在市场上砸出了声音。而我们一直极为关注的,余额宝一期二期技术迁移实践经验也终于浮出水面。余额宝的背后是四方力量:支付宝、天弘基金(基金合作方)、金证股份(软件供应商)和阿里云,在2013年阿里云开发者大会中,记者有机会直面其中三位核心人士:天弘基金创新支持部总经理樊振华,深圳市金证科技股份有限公司副总裁徐岷波,阿里云金融云服务架构师白培新,却发现:经验,比我们想象的要复杂;过程,却比大家想象的要简单。

一期“IOE”,二期要“入”云,原因何在?

外界看待余额宝是个整体,但没想到在技术实践上,余额宝是有一期和二期工程的。樊振华对CSDN云计算说:“最初余额宝与互联网的尝试,在整个基金行业也是第一次。完全是摸着石头过河。为了稳妥,我们在一期的时候是采用传统IOE的架构,总投资400多万。但是没有想到数据量和交易量会增长幅度如此大,远超平台承受能力,以至于到了余额宝二期时,如果还采用IOE的模式,初步估算至少需要投入5000万(主系统+同城灾备+异地灾备等)。再加上后期人力和周期服务,要三个月完成目标,这将是不可承受之重。”

怎么办?要知道,由于安全、合规和风险等方面的考虑,金融对公有云很抵制。但当余额宝6月13日上线,6月17日召开新闻发布会之后,天弘与支付宝一起来评估是否在11月的时候支持“双十一”大促时,却发现:如果支持,那么按照2012年的数据,余额宝平台所承受的压力要骤增数十倍甚至数百倍,估算约为1亿客户数,3亿笔交易,2.5小时完成清算。采用当时的IOE架构,投入将要增加数千万,设备、软件之外,甚至是余额宝一期所用的机房也完全无法满足需求。

不仅如此,余额宝发布之后不到两个月,就为天弘基金带来百亿级别的资金增量及百万级活跃用户,平均每月规模增长100亿元左右,天弘增利宝已经成为国内用户数最多的货币基金。如此增长之后,保证安全+降低成本+为未来业务提供弹性扩展架构已经成为必须。

如果说6月13日是一期的截止时间点的话,那么“二期,是从7月初开始开发的”。没有先例,是否就需要继续等待下去?没有先例,是否要继续投入上千万去扩容和升级?没有先例,是不是可以等等看,期待国外会有案例给以启迪和复制?可市场会给予大家等待的时间么?

“余额宝迁移到云平台上,已经成为我们自发的需求。当然,也别无其他选择。”樊振华说。

下定决心,决策过程反而没有想象中那么复杂了。“评估系统上线,只有三项标准:成本评估、安全评估、架构扩展评估。尽管国际上,金融行业还也没有采用公有云平台的先例。这不仅是单纯的技术障碍,还是意识、理解、勇气和监管要求等复杂交织的结果。但市场逼着我们向前,所以决策并没有大家想象的那么复杂。”

事实证明,“没有选择的选择,到后来却发现是最好的选择。”樊振华笑着对CSDN云计算的记者说。

去IOE,最难的是去Oracle数据库

要将曾经根植在IOE的软件迁移到阿里云上,开发、调整、优化必不可少。但时间如此紧张(最多就3个月),那么,一开始,打造合作多方的信任关系自然至关重要。

“余额宝本身拥有极强的互联网属性,数据量大、业务量大、响应速度要求高。时间这么紧,天弘、金证和阿里云、支付宝,简单沟通后立即投入了启动工作。也因为时间太紧,所以我们也没有调研的时间,更没有可调研的成功案例。可以说,基于多方的信任,资源共享和无所畏惧,是我们走到一起的根本原因。”樊振华如此表示。

去IOE,硬件相对容易些,最难的是与应用密切相关的数据库

Oracle数据库向MySQL转换的时候,连最简单的批量插入,由于对于底层理解的不同,都有很多问题。在Oracle中,开发者是不需要关心底层问题的,但在MySQL则不同,要关注很多。批量提交,事务开启还是关闭,都需要人为干预。

数据库解决的问题是插入、删除修改。所以迁移的时候,这些问题需要一个一个去研究去解决,然后复制过来一个一个测试,开发阶段的测试工作量可想而知。业内认为MySQL无法支撑大数据清算,这是有根据的。但在彻底了解MySQL之后,天弘感觉迁移就如同修路一样,原来基于IOE是条路,而基于云架构,一条不行,可以修50条路,100条路,总归是可以化整为零,用水平化、分库分表等方式,并行化思路来解决,用小单位来解决问题的。虽然在迁移中,对中间层的要求更高,但是可行的。

白培新详细介绍了一些技术难点。在数据库切换过程中遇到一些比较困难的点,比如说Oracle集中管理强,MySQL单机的能力显然要弱很多。余额宝迁移到阿里云上之后,要考虑双十一对于天弘基金系统吞吐量的压力。在评审架构后,通过对性能进行预估,采用了50个MySQL实例的方式。但需要天弘将业务逻辑、应用层所用的数据库通过一个维度来进行水平拆分,然后将这些业务平均分配在这50个MySQL实例上,以保证每一个MySQL的性能负载比较平均,从而实现用50个MySQL来支撑的大业务量。阿里在去IOE方面实践的时间长,有经验,阿里云底层专业的DBA团队和数据库专家都参与到项目中,共同和天弘来做拆分方案。而后,在从Oracle平台到MySQL的过程中,金证承担了主要的迁移工作。

徐岷波也对CSDN云计算表示:“金证在金融行业有20年的历史了,客户广泛。由于业务需要,金证对DB2、Sybase、Oracle、SQLServer这样在金融行业应用较多的数据库都有应用。这也使得金证在开发新系统的时候,一直非常关注‘跨平台特性’,尽可能不要用到哪一种单一数据库的很特殊的功能。所以金证开发的系统,完全没有采用存储过程的模式,所有的应用和业务逻辑都是在中间件这一层,于是所有的业务( 数据管理、业务服务等,如现在用到的PA和直销,未来用到的交易、管理、甚至数据仓库这样的业务系统等)都可以放在应用服务器上,数据库就是存储的功能。这也使得从余额宝的Oracle到MySQL的切换数据库比较容易实现。除此以外,余额宝使用的中间件也是金证开发的,原有软件架构非常好,虽然第一次接触MySQL,但跨平台很容易实现迁移。但如果系统利用了大量存储,且大量业务是跑在数据库上,中间件也是用的Oracle的,那么应用移植其实就非常难,因为每一种数据库的存储过程的差别是非常大的,现在来看其实有很多有利的因素是我们各方的配合达到现在这样的效果。”

事实上,单纯从技术上看,余额宝是个性且不易复制的。一方面,金证的直销系统和中间件都是自主开发的,比较可控;另一方面,业务系统对底层的业务依赖主要是在应用层,整体的改造难度较小。不过即使如此,有了多方汇聚的极强技术实力,阿里云还是和金证一起,用两天时间来将金证系统中所有SQL语句都过了一遍,大概是有几十万条SQL语句,才彻底解决一些性能优化的问题

好在,迁移到云上之后,白培新表示:“在预测环节,实时并发数,要求为3000TPS(每秒可以开3000户),但测试结果是可以开到5000,极限容量可以到12000TPS。”徐岷波进一步补充说:“50个MySQL的实例完全可以支撑余额宝的双十一峰值业务,并且在没有做过任何优化的情况下,还留出了很大余量。如果经过系统调优,以过去的工作经验来看,在现有的设备和硬件网络环境下,性能翻一倍应该是正常的。”

除此以外,樊振华对安全也很满意:“在测试中,阿里云提供的数据库服务主备切换时,速度非常快。再加上我们化整为零的策略,全部热插播硬盘,使得数据的安全性得到了很大的满足。一直到现在,都没有出现过任何问题。坦白说,在基础平台安全方面,阿里云已经比较成熟了,尤其是在应对高流量、大数据量冲击的时候,要比很多中小基金自己的系统稳定和安全很多。”

据悉,每一次系统迁移的演练是需要36个小时,反复演练多次,确保万无一失,才在9月份正式做了切换。

下一步,大数据挖掘与分析

从IOE向云中迁移,余额宝的项目团队作出了非凡的努力。

樊振华说:“天弘投入了10个人,金证投入20多人,阿里云(主要是专业金融集群)投入了50多人,支付宝投入了数十人,就这样,组建了我们的百人技术团队。项目组从7月闭关到9月底,每天从早上8点开始一直到晚上12点,根本没有周六周日,很辛苦,非常辛苦。而由于项目开发中出现了很多问题,非常多的问题,争吵、低落、抱怨都是常态,甚至一度整个团队都觉得项目失败的概率很高,几乎处于崩溃边缘。但好在几位项目带头人非常有信心,知道最高的风险点在哪里,我们和金证、阿里云从架构设计到技术迁移、业务实现,一点点来抠,一点点地解决问题。四方合作,忘我的奉献和投入让我们终于拿下这个如今成为行业典范的项目。现在余额宝的系统架设在300余台云主机上,使用了阿里云的ECS+RDS+SLB+云监控等多项服务。 ”

“真正去了IOE,发现没有想象中复杂。”几乎是每位组员的感受

一直很低调的余额宝,在技术上更加低调,老老实实做事。据悉,二期整个团队都是封闭的,“我们做什么外面基本都不知道”。在切身体验了互联网金融“用户多,数据量大;分时段爆发增长;用户体验要求很高”的特性之后,下一步,天弘希望能够联合更多伙伴,建设数据中心、数据仓库,并继续完善安全监控,争取在数据挖掘和分析方面,提供更多“非高大上”的产品以及创新的服务。

时间: 2024-10-10 20:23:21

从Oracle到MySQL,余额宝云实践分享的相关文章

WOT干货大放送:大数据架构发展趋势及探索实践分享

WOT大数据处理技术分会场,PingCAP CTO黄东旭.易观智库CTO郭炜.Mob开发者服务平台技术副总监林荣波.宜信技术研发中心高级架构师王东及商助科技(99Click)顾问总监郑泉五位讲师,分别针对时下热门的HTAP数据库TiDB.去ETL化的IOTA架构.数据工厂架构.实时敏捷大数据理念实践.基于场景的大数据营销等话题,展开实践分享. 作者:查士加来源:51CTO 2018年5月18-19日,由51CTO主办的全球软件与运维技术峰会在北京召开.来自全球企业的技术精英汇聚北京,畅谈软件技术

宜信敏捷数据中台建设实践|分享实录

内容来源:宜信技术学院第2期技术沙龙-线上直播|宜信敏捷数据中台建设实践 分享嘉宾:宜信数据中台平台团队负责人 卢山巍 导读:宜信于2017年推出了一系列大数据开源工具,包括大家熟悉的DBus.Wormhole.Moonbox.Davinci等,在技术社区内得到了广泛关注和好评.这些工具是如何在宜信内部应用的?它们和宜信数据中台是怎样的关系?又是如何驱动各种日常数据业务场景的? 本次分享对这些问题进行了回答,同时重点分享了宜信敏捷数据中台的设计.架构以及应用场景,提出一种敏捷数据中台的建设思路,

数据中台:宜信敏捷数据中台建设实践|分享实录

内容来源:宜信技术学院第2期技术沙龙-线上直播|宜信敏捷数据中台建设实践 分享嘉宾:宜信数据中台平台团队负责人 卢山巍 导读:宜信于2017年推出了一系列大数据开源工具,包括大家熟悉的DBus.Wormhole.Moonbox.Davinci等,在技术社区内得到了广泛关注和好评.这些工具是如何在宜信内部应用的?它们和宜信数据中台是怎样的关系?又是如何驱动各种日常数据业务场景的? 本次分享对这些问题进行了回答,同时重点分享了宜信敏捷数据中台的设计.架构以及应用场景,提出一种敏捷数据中台的建设思路,

20多条MySQL 性能优化经验分享

当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能.这里,我们不会讲过多的SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库.希望下面的这些优化技巧对你有用. 1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的.当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了. 这里最主要

唯品会、滴滴、沪江架构师,关于微服务粒度、高可用、持续交互的实践分享交流(下)

架构师小组交流会:每期选择一个时下最热门的技术话题进行实践经验分享. 本期小组交流会邀请到了沪江黄凯.唯品会郑明华.滴滴赵伟.七牛云肖勤,对微服务粒度.高可用.持续交互展开了交流. 本期接着上期唯品会.滴滴.沪江架构师,关于微服务粒度.高可用.持续交互的实践分享交流(上)进行了交流. 第一轮:话题交流 滴滴赵伟:在整个服务,从单体服务到微服务的演进过程当中,如何去影响业务的这种正常发展? 唯品会郑明华:从单体服务到微服务的改造,有两种方式,一种是小打小闹,每次稍微改一点,这个时间会非常长,有时候

数据库笔试面试题库(Oracle、MySQL等)

数据库笔试面试题库(Oracle.MySQL等) ⊙ [DB笔试面试67]在Oracle中,关于表分区下列描述不正确的是()⊙ [DB笔试面试65]在Oracle中,哪一种表分区方式建议的分区数是2的幂(2.4.8等),以获得最平均的数据发布()⊙ [DB笔试面试63]要以NAME's address is ADDR格式返回数据,以下SQL语句正确的是⊙ [DB笔试面试61]以下关于数据模型要求错误的是()⊙ [DB笔试面试59]以下关于视图叙述不正确的是()⊙ [DB笔试面试57]下列关于SQ

Oracle和MySQL分组查询GROUP BY

Oracle和MySQL分组查询GROUP BY 真题1.Oracle和MySQL中的分组(GROUP BY)有什么区别? 答案:Oracle对于GROUP BY是严格的,所有要SELECT出来的字段必须在GROUP BY后边出现,否则会报错:“ORA-00979: not a GROUP BY expression”.而MySQL则不同,如果SELECT出来的字段在GROUP BY后面没有出现,那么会随机取出一个值,而这样查询出来的数据不准确,语义也不明确.所以,作者建议在写SQL语句的时候,

oracle、mysql时区设置对timestamp的不同影响

因最近国际去Oracle上MySQL,这就不可避免的涉及到时区和timestamp问题.做一下实验,总结一下. Oracle 首先看下oracle concepts对timestamp的定义: The TIMESTAMP data type is an extension of the DATE data type. It stores fractional seconds in addition to the information stored in the DATE data type.

Oracle也Mysql的区别

Mysql与Oracle区别总结如下:1. Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高.2. Oracle支持大并发,大访问量,是OLTP最好的工具.3. 安装所用的空间差别也是很大的,Mysql安装完后才152M而Oracle有3G左右,且使用的时候Oracle占用特别大的内存空间和其他机器性能.4.Oracle也Mysql操作上的一些区别①主键Mysql一般使用自动增长类型,在创