为什么要"去IOE"

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

2013年5月17日,阿里集团最后一台IBM小机在支付宝下线。这是自2009年“去IOE”战略透露以来,“去IOE”非常重要的一个节点。“去 IOE”指的是摆脱掉IT部署中原有的IBM小型机、Oracle数据库以及EMC存储的过度依赖。告别最后一台小机,意味着整个阿里集团尽管还有一些Oracle数据库和EMC存储,但是IBM小型机已全部被替换。2013年7月10日,淘宝重中之重的广告系统使用的Oracle数据库下线,也是整个淘宝最后一个 Oracle数据库。这两件事合在一起是阿里巴巴技术发展过程中的一个重要里程碑。


何谓IOE?

IOE 这个说法来自阿里技术团队内部的称谓,然后才在整个业界流传开来。IOE是传统IT三大件,指以 IBM 、Oracle、EMC 为代表的小型机、集中式数据库和高端存储的技术架构。

I 指 IBM p 系列小型机,操作系统是 AIX(IBM 专有的 Unix 系统);

O 指 Oracle 数据库(RDBMS);

E 指 EMC 中高端 SAN 存储。


为什么要去IOE?

阿里巴巴过去一直采用的是Oracle数据库,并利用小型机和高端存储设备提供高性能的数据处理和存储服务。随着业务的不断发展,数据量和业务量呈爆发性增长,传统的集中式Oracle数据库架构在扩展性方面遭遇瓶颈。

传统的商业数据库软件(Oracle,DB2),多以集中式架构为主,这些传统数据库软件的最大特点就是将所有的数据都集中在一个数据库中,依靠大型高端设备来提供高处理能力和扩展性。集中式数据库的扩展性主要采用向上扩展(Scale up)的方式,通过增加CPU,内存,磁盘等方式提高处理能力。这种集中式数据库的架构,使得数据库成为了整个系统的瓶颈,已经越来越不适应海量数据对计算能力的巨大需求。

传统架构在主机端大多通过两台主机共享存储设备,平时其中一台主机使用存储通过数据库软件来管理。这样的架构只能有一台主机(RAC除外)上的数据库能够提供服务,另一台主机只能是作为热备冗余,不能启动数据库实例提供服务。所以,其处理能力就完全取决于这台主机的最大扩展能力,很难通过增加主机数量来增加处理能力。而单台主机的扩展能力毕竟是有限的,即使是某些厂商的大型机,同样也有其扩展限制。此外,传统架构对高端设备的依赖,无疑将直接导致系统成本的大幅度增加,甚至可能会导致系统被主机和硬件厂商所“绑架”,不得不持续增加投入成本。

在阿里看来,“IOE”实际上代表了一种高成本、高维护费、很不互联网(不擅长处理大规模高并发的互联网行为)的商用数据库系统,特别是阿里盘子越来越大,所需要付出的升级硬件和维护的代价也会越来越惊人,阿里巴巴采用数据切分(sharding)的策略,将部分海量数据应用从集中式Oracle切换到分布式MySQL集群,从纵向扩展到水平扩展,解决了数据库扩展性的问题,并用PC服务器替换了小型机。事实上,这里可以做一个不那么技术但比较简单的理解:传统的IOE代表的是集中式架构,而去IOE化其实就是推动分布式架构代替集中式架构,也就是更好的拥抱云计算—当然对阿里本身来说,用通俗的语言解读出阿里云甚至阿里的IT计算(甚至商业模式)发展路径:

1、鉴于类似双11这种超大规模并发行为的产生,背后需要的计算资源非常庞大,所以整个阿里对IT资源的投入都是非常大的。
2、当投入大量的资源应对高峰期高并发时,低峰低并发时就造成了计算资源的冗余,这个时候就可以以云计算的方式出租给中小企业。而当然企业就可能有更高的野心,比如把云计算作为主要的商业模式。但是对于那些对计算要求很高的公司,还不够。

软件决定整体架构,如果要动O,那么I和E就必须要动 – 相信不会有人在小型机上跑 MySQL 的。




Oracle RAC不能满足扩展要求么?
转自:可扩展的分布式数据库架构

几乎每个数据库产品都有集群解决方案,Oracle RAC是业界最流行的产品。其架构的最大特点是共享存储架构(Shared-disk),整个RAC集群是建立在一个共享的存储设备之上的,节点之间采用高速网络互连。Oracle RAC提供了非常好的高可用特性,比如负载均衡和应用透明切换(TAF),其最大优势在于对应用完全透明,应用无需修改便可以切换到RAC集群。但是,RAC的扩展能力有限,首先因为整个集群都依赖于底层的共享存储,所以共享存储的IO能力和可用性决定了整个集群的可以提供的能力,其依然无法摆脱对 大型存储设备的依赖。Oracle显然也意识到了这个问题,在Oracle的MAA(Maximum Availability Architecture)架构中,采用ASM来整合多个存储设备的能力,使得RAC底层的共享存储也具备线性扩展的能力,整个集群不再依赖于大型存储的处理能力和可用性。

RAC的另外一个问题是,随着节点数的不断增加,节点间通信的成本也会随之增加,当到达某个限度时,增加节点可能不会 再带来性能上的提高,甚至可能造成性能下降。这个问题的主要原因是Oracle RAC对应用透明,应用可以连接集群中的任意节点进行处理,当不同节点上的应用争用资源时,RAC节点间的通信开销会严重影响集群的处理能力。所以使用 Oracle RAC有两个建议:1.节点间通信使用高速互联网络;2.尽可能将不同的应用分布在不同的节点上。基于这个原因,Oracle RAC通常在DSS环境中可以做到很好的扩展性,因为DSS环境很容易将不同的任务分布在不同的计算节点上,而对于OLTP应用,Oracle RAC更多情况下是用来提高可用性,而不是为了提高扩展性。


参考


谈谈去 IOE 运动

掰开揉碎说阿里巴巴的“去IOE”

阿里“去IOE”核心技术剖析 

2013阿里技术嘉年华:阿里去IOE实践_陈招尚/胜通

张瑞:Oracle与MySQL搭档满足业务需求

可扩展的分布式数据库架构

基于MySQL的高可用可扩展架构探讨 (PDF)

阿里集团DBA陈招尚:阿里去IOE实践

阿里巴巴如何“去IOE”

淘宝技术发展












本文转自ljianbing51CTO博客,原文链接:http://blog.51cto.com/ljianbing/1621860 ,如需转载请自行联系原作者




相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
SQL 机器学习/深度学习 运维
用公有云的创新速度演进混合云,微软再立云计算产业新标杆
用公有云的创新速度演进混合云,微软再立云计算产业新标杆
205 0
|
存储 数据中心 云计算
|
弹性计算 运维 分布式计算
刘伟光:全分布式架构引领核心系统架构转型新趋势
刘伟光:全分布式架构引领核心系统架构转型新趋势
刘伟光:全分布式架构引领核心系统架构转型新趋势
|
存储 Cloud Native Devops
云计算的未来将是混合云
云优先的企业战略正在显著增强。混合云IT运营管理提供商OpsRamp公司对大型企业(超过500名员工)的IT领导者进行了民意调查,发现其公共云服务占据了IT预算的更大份额。
134 0
|
边缘计算 弹性计算 Kubernetes
云计算的演进之路
云计算,每天都在不断重塑商业和技术世界,同时也在不断重塑自身以满足不同客户的需求。自诞生之日起,从部署模型到区域覆盖,再到运营模式,云计算从未停止过发展。但是,无论其自身的广度和深度如何延伸,亦或其部署和运营模式如何灵活和多样化,始终遵循一个原则:一致性。即,以一致的技术堆栈为支撑,提供一致的体验。作为这一领域最活跃的创新者之一,阿里云在过年十年里一直秉承这一原则不断推动云产品的创新和发展。
云计算的演进之路
|
存储 弹性计算 运维
阿里“去 IOE”十二年,弹性计算如何二次去 I 和 E?
云计算的本质是服务,如果不能将计算资源规模化、大范围地进行共享,如果不能真正以服务的方式提供,就根本算不上云计算。众所周知,阿里云是完全经历了从 0 到 1,再到 100 的过程,将计算发挥到极致背后有一个关键的服务,那就是弹性计算。
阿里“去 IOE”十二年,弹性计算如何二次去 I 和 E?
|
运维 Kubernetes Cloud Native
十年前提出去IOE的阿里云,如何做到全球云原生领先?
阿里云曾开启了中国的云计算时代,未来将帮助更多企业云上成功。
1220 0
|
Linux 云计算 Windows