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”;
- 需要信念,才能走的下去。
相关推荐
SDCC软件SDCC 软件SDCC 软件SDCC 软件SDCC 软件SDCC 软件
标题“sdcc-4.2.0-x64”指的是SDCC(Small Device C Compiler)的一个特定版本,4.2.0,适用于64位操作系统。SDCC是一款开源的C编译器,专为微控制器和其他小型设备设计,支持多种8位、16位和32位的微处理器架构。 ...
### SDCC 编译器简介及使用指南 #### 一、引言 SDCC (Small Device C Compiler) 是一个开放源代码的 C 语言编译器,主要用于微控制器的编程。它支持多种微处理器架构,如 MCS51、Z80、DS390、HC08 等。SDCC 编译器...
SDCC(Small Device C Compiler)是一款专为小型处理器设计的C编译器,它为开发者提供了一个替代Keil C51的选项。该编译器是基于GNU GCC(GNU Compiler Collection)构建的,这意味着它利用了GCC的强大功能,同时...
**SDCC:源码公开的MSC51和Z80 C编译器** SDCC(Small Device C Compiler)是一款开源、免费的C语言编译器,专为微控制器和其他小型设备设计。它支持多种处理器架构,其中包括了非常经典的8位微控制器系列:MS51...
**知识点详解:sdccman手册2.9.0——深入解析SDCC编译器的安装与使用** 在深入了解sdccman手册2.9.0之前,我们先来明确一下SDCC(Small Device C Compiler)的基本概念。SDCC是一款开放源代码的C语言编译器,专门...
在Linux环境下,使用SDCC(Small Device C Compiler)编译51单片机程序是一项常见的任务,尤其在进行课程设计或项目开发时。SDCC是一款开源的C编译器,支持多种8位、16位和32位微控制器,包括经典的8051系列,也就是...
SDCC(Small Device C Compiler)是一款专为微控制器(MCU)设计的开源C编译器,它能够将源代码转换成针对各种小型微处理器的机器码。标题中的"sdcc-3.8.0-x64-setup.rar"表明这是一个关于SDCC 3.8.0版本的64位...
使用 sdcc 编写51单片机.zip使用 sdcc 编写51单片机.zip使用 sdcc 编写51单片机.zip 使用 sdcc 编写51单片机.zip使用 sdcc 编写51单片机.zip使用 sdcc 编写51单片机.zip 使用 sdcc 编写51单片机.zip使用 sdcc 编写51...
SDCC,全称为“圣地亚哥国际漫画展”(San Diego Comic-Con International),是一个全球知名的综合性流行文化展会,尤其在动漫、电影、电视、游戏等领域具有极高的影响力。2017年的SDCC吸引了众多粉丝和业界人士...
SDCC(Small Device C Compiler)是一款开源的C语言编译器,专为小型设备设计,如8位微控制器,如51系列、PIC系列和AVR系列等。它支持多种微处理器架构,使得开发者能够在不同的单片机平台上进行交叉编译,实现程序...
sdcc 4.3 x64 windows 安装包
用于SDCC的CH554软件开发套件 这是CH554 SDK的端口,从Keil C51到SDCC。 CH55x系列微控制器之所以引人注目,是因为它具有极低的成本,USB设备和主机外围设备以及预加载的USB Bootloader。其他资讯包含翻译后的注释,...
linux上sdcc编译器编译51单片机的一些头文件和代码.zip linux上sdcc编译器编译51单片机的一些头文件和代码.zip linux上sdcc编译器编译51单片机的一些头文件和代码.zip linux上sdcc编译器编译51单片机的一些头文件和...
windows下的sdcc, 适合64位系统, SDCC的全称是Small Device C Compiler,所以不仅仅是单片机的编译器;目前SDCC支持Intel 8051, Maxim 80DS390, Zilog Z80与Motorola 68HC08 等系列CPU的代码编译。免费、开源、跨...
《SDCC:小型嵌入式系统的C语言编译器源码解析》 SDCC,全称为Small Device C Compiler,是一款专为微控制器和其他小型嵌入式系统设计的C语言编译器。它以其轻量级、高效能和跨平台的特点,在嵌入式开发领域中得到...
《SDCC 2.3.0源码解析与编译器知识详解》 SDCC,全称为Small Device C Compiler,是一款专为微控制器和其他小型设备设计的C语言编译器。版本2.3.0是该编译器的一个重要里程碑,它提供了对多种微处理器架构的优化...
源代碼是針對SDCC編譯器C語言所改編的,是(單片機C語言程序設計實訓100例--基於8051+Proteus仿真)書中的基礎篇範例,註解皆改為繁體中文,且所有範例均經過(SDCC編譯器(免費8051整合環境編譯器).zip)安裝完的編譯器編譯...
windows10 64位应用sdcc,开源程序,用于MCU(比如80c51)开发,支持多种C标准,不放心的移步原地址下载(文中有)