SDCC 2013:阿里周宝方谈“去IOE”战略及实施
2013中国软件开发者大会(以下简称SDCC)于8月30-31日在北京新云南皇冠假日酒店举办。作为CSDN和《程序员》杂志倾力打造、千人规模以上的顶级技术盛会,今年SDCC 2013以“软件定义未来”为主题,来自于国内外一线的技术精英,就大数据分析与BI、架构实践、研发管理、IT基础设施与运维、产品与设计、开放平台等专题和参会者进行了深入的分享和探讨。此外,32小时编程马拉松、CTO论道论坛等量身定制的特色环节也受到了参会者的强烈关注。
来自阿里技术保障部DBA负责人周宝方分享了《阿里“去IOE”战略》为主题的精彩演讲。他跟大家分享了阿里“去IOE”战略历程、核心技术与心得体会。
阿里技术保障部DBA负责人周宝方(后羿)
IOE三个单词分别表示:IBM、Oracle、EMC,更确切地说是IBM小型机、Oracle数据库与EMC存储设备的组合。他表示,斯诺登事件让更多企业考虑“去IOE”的必要性,但是“去IOE”拥有很高的技术门槛,较大的技术风险,水很深。而集中式的严重制约是“去IOE”的核心原因,而IOE本身限制了很多开发者技术的发挥和许多企业的长远发展。同时,他还认为,“去IOE”技术难以复制,对接该技术的云计算平台更合适,需要信念,才能走下去。
周宝方向大家介绍了阿里的“去IOE”战略,包括2010——2013年预算指导原则的演进、阿里“去IOE”历程中所用到的技术架构及心得体会。并且还在大会上对一些坊间传言进行了澄清,比如阿里是使用MySQL去IOE的,其实除了MySQL,还有OceanBase、RDS。
2010~2013年预算指导原则的演进
做预算一个很重要的指导原则是阿里技术的不断发展,每年阿里做预算不单单是盘点钱的事情,而是梳理未来技术一年的规划。在这个过程中,阿里逐步确定了以云计算的思路来逐步展开应用。下面是周宝方对这四年“去IOE”整个预算过程的总结:
- 商用技术
- 开源技术
- 自主技术
- 云计算
“去IOE”历程
阿里”去IOE“前架构
首先对业务进行垂直拆分,就是按照功能拆分,misc/bmw/shoop相继拆分;然后再进行水平拆分,就是大家所说的分库分表。后来阿里又逐步放弃使用RAC来处理大数据,而是以云的思路来处理大数据。
至于为何一定要“去IOE”呢?他在大会上也跟大家进行了具体的分享,技术上主要包括以下几点:
- 集中式的严重制约:集中式强大单点远远满足不了阿里特别是当时淘宝爆炸式业务增长应用的模式,这里可分为三个方面,稳定性、跨IDC容灾切换、快速扩容;
- 技术面临失控,创新潜力受限;
- 专用设备规模化场景下诸多限制;
- 成本:这应该是整体最次的因素;
- 安全。
除掉以上核心因素,他还跟大家分享了当时的内外部环境、去IOE核心技术、需要克服的技术难点及“去IOE”里程碑。
(1)内外部环境
内部环境,主要源于2009年11月份的预算报告初稿,当时决定阿里以后不再购买小型机。外部环境主要包括:PC服务器处理能力增强、以及Flash技术的出现。
阿里”去IOE“后整体架构
(2)去IOE核心技术:
- 存储技术(MySQL/OceanBase/RDS);
- 分布式数据处理技术;
- 数据流;
- 规模化运维体系和研发支撑体系。
(3)“去IOE”需要克服的技术难点:
- 功能:Oracle到MySQL功能上落差大、存储过程、join操作;
- 高可用:小型机、存储高冗余机制、PC怎么做;
- 数据一致性:Oracle物理级别的一致、MySQL有没有问题。
对以上技术详细进行拆分,还可分为:
- 如何去存储过程;
- 如何无缝数据迁移;
- 如何分库分表分事务;
- 如何数据路由;
- 如何异构数据实时同步;
- 如何数据安全;
- 如何面对规模运维。
在克服掉以上这些困难后,
(4)“去IOE”里程碑
时间 | 关键事件 |
2010年1月 | 三淘核心系统”去IOE“启动 |
2010年7月 | 完成商品库"去I“ |
2011年7月 | 完成商品库"去OE" |
2011年9月 | 完成交易库"去IOE“ |
2012年12月 | 完成三淘"去IOE“ |
2012年6月 | B2B/阿里金融启动 |
2013年4月26日 | CBU/ICBU完成"去I" |
2013年5月21日 | 支付宝完成"去IE“ |
2013年6月4日 | 阿里最大的现金流结算系统"去O" |
2010年1月份启动,大概2011年7月份完成商品库的“去IOE”,这也为后期交易的“去IOE”奠定了坚实的技术基础,这期间主要经历了三个阶段:
- 16套读写分离Oracle,后来压力太大,根据卖家查询的部分,从数据库移至实时搜索;
- 2010年7月,商品去小机;
- 201年7月,商品KOE项目,使用Flashcache和PCIE-SSD。
心得体会
在完成”去IOE“后,周宝方感触很深,他表示,”去IOE“首先赋予了阿里非常灵活的技术架构,支撑业务的快速发展,比如双十一,阿里可以很淡定地做业务扩展;其次是阿里掌握了技术自主可控操作;另外还包括基础工程技术和人才的积累、技术的沉淀、成本、安全性的提升等等。
最后他还跟我们分享了一些心得体会:
- 对I、O、E们客观上造成误伤,本质是以自主可控的分布式Commodity PC架构替代集中专用的IOE架构,并非为了做而做,也并非纯粹为了成本或纯粹为了不用外国技术,更不是用某些国产PC/RDBMS/存储作为替代技术;
- 个人的技术成长方向有必要和企业发展所需的方向契合,甚至推动变革;
- 很高的技术门槛、较大技术风险、水很深;
- 开源只是在入手时零成本,而后(对传统企业)会是极高的维持和发展成本,这并不为很多人所意识到;
- 并非所有企业都适合“去IOE”,但规模型的企业需要考虑;
- “去IOE”技术难以复制,对接“去IOE”技术的云计算平台更合适“去IOE”;
- 需要信念,才能走的下去。