淘宝系“去IOE”运动对电信及其信息化建设的启示


2012年电子商务领域最吸引眼球的事件莫过于淘宝系(也称大淘宝,阿里系)的“双十一”大促:旗下的淘宝和天猫两大平台双双爆发,创下骄人战绩;全天交易额高达191亿元,其中淘宝59亿元,天猫132亿元;与此同时,支付宝日订单数量也一举跨越了一亿笔大关。

不仅如此,来自中国电子商务研究中心的《2012年度中国网络零售市场数据监测报告》显示:2012年全年全国的网购交易额达到13205亿元,而淘宝、天猫合计就斩获了11600亿元,占比近九成。

阿里系的软硬件基础架构之所以能够承载如此巨大的业务量,技术团队自然功不可没,由其所发起的“去IOE”运动在其中所发挥的作用至为关键,在国内互联网界中也影响巨大,一时间欲效仿者甚众。

中国电信在自身的信息化建设中所采用的软硬件基础架构与阿里集团变革前的原始架构极为相似,而且近年来也在逐步试水电商、网游等互联网应用领域。深入分析阿里系的“去IOE”举措,不仅对中国电信自身的信息化建设可起到借鉴作用,同时也有助于提高电信对互联网应用建设规律的认识和把控,意义重大。

对淘宝系去IOE运动的分析梳理
IOE的术语及背景

首先,先解释一下相关术语及背景;

如果说信息系统的核心是信息,那么对数据信息进行管理的关系型数据库软件无疑是核心中的核心;辅之以运行数据库软件的小型机、以及存储数据库数据的存储设备,这三驾马车构成了数据库系统的基础软、硬件环境。

IOE则是三家计算机厂商名称首字母的集合,其中的I是指IBM小型机,O指代Oracle数据库,而E则表示EMC存储。三家厂商分别是各自市场中的龙头老大,强强联合,是上述数据库系统中较为高端的软、硬件基础环境,在业界的应用极其广泛,2010年之前的阿里集团也不例外(以Oracle为例,淘宝一度拥有20多个节点的Real Application Cluster数据库集群,是当时的亚洲之最),所建设的信息系统大都采用了这一模式。

顾名思义,所谓“去IOE”运动,则是淘宝系去除在软硬件基础架构上对这一技术模式依赖的一种尝试。

IOE的动机

这一运动的动机何在呢?

简而言之,是规模

互联网时代的到来,打破了时间和地域对企业发展的限制,赋予了互联网应用与以往信息系统迥异的特质——信息交流和业务往来不再受制于空间(一市县、一省、一国家)、时间(白天、黑夜,上班、下班),无论你身在何时、地处何地,只要能够接入互联网,一切就都能畅行无阻。这就决定了互联网应用的用户规模、业务规模、需求规模、访问量规模、数据规模、软硬件规模都是空前的,这也是作为软件时代产物的IOE在设计时所无法预见的——支付宝数据平台负责人、阿里巴巴首席DBA(数据库管理员)冯春培先生在2012年的一次演讲中就曾指出:传统的关系型数据库在扩张方面没一家解决得好的。换言之,在互联网时代,IOE约束了企业的长远发展。——阿里集团首席技术官王坚先生在接受专访时曾回忆2008~2009年,在做整个集团的预算时,第一次提出了“去IOE”这件事。每年,我都要负责整个集团技术预算拟定,当看到阿里巴巴对计算需求成指数级增长,并跟业务增长不成比例时,就意识到如没有技术的进步,一定会影响公司长远的发展。”

淘宝核心系统负责人章文嵩博士曾分析过IOE模式的优劣。他认为IOE模式的优势在于系统稳定、功能强大,且支持完善,便于运维;而缺点则包括:集中式的架构不利于水平扩展(scale out);闭源属性(“软、硬件黑盒”),导致企业对应用系统的掌控力度有限;加之其License价格昂贵、软硬件成本高启。

这里先来解释一下,什么是系统的可扩展性(Scalability)?水平(scaleout)和垂直(scale up)扩展能力的区别何在?本文中的可扩展性是指系统的负载可扩展性(Load Scalability),亦即系统在应对访问负载的波动时动态调节自身资源的难易程度(见维基百科)。

垂直扩展能力,是指在单一系统节点(或构件)内部追加资源的能力——为一台小型机扩容,增加CPU、内存或硬盘,就属于垂直扩展的典型做法。而水平扩展则意味着为系统加入更多的节点(或构件)——例如,将Web服务器由1个进程扩展为3个。囿于传统信息系统的应用场景、有限的用户和数据规模以及当时高昂的软硬件成本,集中式架构更看重系统的垂直扩展能力(scale up)。但时过境迁,单个节点的垂直扩展能力再强,也终究存在一个上限。一边是系统数据和负载的快速攀升、垂直扩展方式遭遇天花板,另一边却是硬件成本的持续走低,以及开源系统软件(操作系统、数据库、中间件)的日渐成和普及,水平扩展模式的大行其道也就水到渠成了。

就拿阿里集团来说:近年来业务一直处于飞速增长状态,淘宝高层在接受媒体采访时就曾透露:2011年淘宝和天猫的总交易额为6300亿元,而到了2012年,这一数字已经变成了11600亿元!如果把章博士的优劣对比置于这一大背景下,就不难发现:IOE的优势会随着业务的增长而丧失殆尽,而缺点却有愈演愈烈的趋势,逐渐演变为系统的致命缺陷:

假设仍然固守传统的IOE模式,即便将商用软硬件运用到极致、运用这一集中式的软硬件基础架构也难以应付业务爆发所带来的大数据、高并发问题,并最终成为制约淘宝业务发展的瓶颈;

另一方面,商用软、硬件的专有(proprietary)、闭源属性,令阿里集团始终无法将命运牢牢把握在自己手中:商业系统软件的黑盒属性会使用户在面对系统软件的固有缺陷时束手无策,更无法针对自身业务来进行代码优化和性能提升、进一步挖掘系统的软硬件资源;至于专有硬件,王坚当时就意识到:对于传统IT厂商的依赖使得相关技术及其维护已不在阿里自己可管理的范围之内,例如,大存储对客户而言基本就是“黑盒子”,客户都不能自行进行重要的维护,主要依赖厂家通过WAN网络或电话拔号连接上客户内部的大存储进行管理维护;并且,“技术路径上依赖于专用的硬件设备比较危险,随处可以买到的Commodity PC的架构长远来讲对于阿里和大多数企业则是最安全的。”

近期愈演愈烈的斯诺登事件更是折射出这种技术依赖在安全方面暴露出的隐忧。无独有偶,《华尔街日报》于2013816日援引路透社一篇文章报道称:中国政府机构称,将就安全问题对美国三大科技公司展开调查,分别是计算机和服务巨头国际商业机器公司(IBM)、存储设备公司EMC和全球领先的企业软件巨头甲骨文公司(Oracle)。,虽然该日报随后于820日又更正称报道有误并致歉,但报道中所涉及的偏偏是这三家公司,应当说也真实地反映了IOE”在国内信息化建设领域的统治地位。棱镜门事件的曝光,迫使国内各行各业纷纷加强了对西方科技公司的戒备,同时也在客观上推动了国内各大行业信息化建设上的IOE”运动。

相形之下,成本反而成了三者中最为次要的因素,但却依然不容忽视。反过来举个例子:你能想象一下,云计算中心(computer farm)里数以万计的机器都在运行着商业软件(操作系统、数据库以及中间件)吗?!单就成本而言,这就是天方夜谭!因此,成本降低是最显而易见的,每年阿里能省下不菲的软硬件许可及维保费用;但同时需要指出:取代商业软件的开源软件只能解决软件使用成本的问题,而开源软件的升级和维护成本则是不应当忽略的。

IOE的相关技术

阿里集团的技术团队敏锐地意识到:既然现有的IOE模式行将成为企业发展的桎梏,“去IOE”运动也就成为势所必然。那么,谁将取而代之呢?

从章文嵩博士的演讲可知:阿里集团的“去IOE”运动,在硬件上是以工业标准的X86服务器取代原来的IBM小型机,在软件上则是以开源的MySQL数据库取代闭源的Oracle商用数据库;至于存储问题,则采用互联网应用所惯用的数据库拆分(sharding)技术在中间层加以化解。

IOE”运动绝不仅仅是以一种软、硬件来替换另一种软硬件,而是以尖端的硬件技术和互联网开源技术相结合、以取代传统的IT基础架构,其本质在于由集中转为分布,这本身就是一次革命性的技术蜕变。

应当说,这一替代方案并非无中生有,阿里集团技术团队在此之前是做了大量准备工作的。早在2008年,阿里集团就尝试在外围系统中引入了MySQL数据库。自2010年起,他们正式组建了数据库开发团队,开始从软硬件一体化的角度来全面优化MySQL数据库的性能。所谓的“软硬件一体化”,意即从软件和硬件两方面着手:一是数据库分片(sharding)中间件技术的研发和成熟;二是选择开源的Mysql数据库来替换商业数据库市场的龙头老大:Oracle;三是选取了极其尖端的PCI-E flash卡技术来提升数据库性能。

下面将沿着这一脉络,展开进行描述。

数据库分片(sharding)技术,采用了数据库设计中的水平切分手法,对数据库schema进行水平横向切分,将切片(schema相同、数据不同)分置于不同的数据库实例中,而数据库实例又运行于不同的机器节点上——系统也因之从集中式架构一变而为分布式架构,从而将针对数据库的访问负载分解到各个节点上。此外,采用这一技术,也消解了存储设备的必要性——应为这一设计本身就是对数据集中存放方式的反动。

数据库分片技术是水平扩展原则在数据库设计领域的具体体现,可以平滑应对访问量和数据的激增,缓解大数据、高并发给应用所带来的压力,是互联网应用的惯用设计手段。

当然,数据库分片技术也并非银弹,有其特定的应用场景,力求数据库分片之间的数据关联度最小——share nothing。此外,引入分片技术,不可避免地给整个应用系统的开发、运维增加了难度:需要考虑分片逻辑,导致应用编码和调试、测试的复杂化;数据库分片后,系统节点增多,引入单点故障;与此同时,日常运维中数据库schema的调整以及数据备份的工作量较之于集中式架构也要多出许多。

为了避免单点故障,阿里集团还使用了MySQL的主从(master-slave)复制机制,以保证主数据库在发生故障时从数据库能够顺利接管;并进而采用读写分离技术(r/w splitting,写入主库、读取从库)来分散IO负载——以追求更高的数据库IO效率。Tddl(Taobao Distribute Data Layer)中间件的研发成功,一方面很好地解决了应用开发领域的相应问题——应用透明的分库分表层是对数据库分片技术的支持;另一方面,所开发的动态数据源功能,对上述主从机制和读写分离技术加以支持,这些都从很大程度上降低了分片给整体架构带来的复杂性。

如果说数据库分片技术的引入是为了应对海量的数据和访问压力,那么将关系型数据库由Oracle替换为MySQL的原因则主要有两点:一是自主把握核心技术;二是降低成本。

据冯春培先生回忆:阿里早在2006年就开始考虑与Oracle之间的关系——“当时我们了解到国内某银行使用服务商的全套产品(硬件+软件)以后,无法替换,因此我们在预测一旦由一家服务商绑定,我们的风险有多大,于是我们准备了向MYSQL的转移。

而淘宝DBA丁原在一次受访中,曾经给出了淘宝某项业务所需成本的真实数据:

l2010DB+硬件的投入在1100万左右;

l2011DB+硬件的投入在2200万左右;

l2012DB+硬件的投入在4400万左右;

仅这一项业务,每年的成本在成倍增长,整体的成本压力也就可想而知。

但是,Oracle虽然许可证价格不菲,但作为商用关系型数据库市场的王者,功能强大,运行稳定,在业界有口皆碑。电子商务涉及财、物、人,稍有不慎就会带来经济上的巨大损失。在这样的平台上启用Mysql来取代Oracle,的确需要极大的勇气和实力。

反过来看,作为最受欢迎的开源数据库,MySQL也随着互联网的蓬勃发展而日趋成熟,不但源码开放、性能优异,而且易于使用、稳定,拥有良好的社区生态环境——不易于被参与开发的任何一方所把持。此外,随着国内MySQL数据库方面的领军人物陆续×××阿里,技术团队对MySQL的把握能力日益增强。

综合上述种种原因,向MySQL数据库的切换也算是顺理成章。但整个实施过程还是秉持了审慎原则,采取小步慢走的方式(小业务、小范围)逐步推进。虽然切换的过程也有波折、有反复,但技术团队还是在不断解决问题的过程中完成了经验积累和技术验证,并最终实现了数据库的平滑过渡。

阿里系技术团队在将数据库整体架构由集中式转为分布式的同时,在提升单个节点的硬件性能上也下了很大的功夫。

众所周知:最终影响数据库性能的关键因素是对存储介质的访问速度。因此,阿里集团团队挑选了当时速度最快的非易失性存储(Non-volatile Storage)卡技术——PCI-E flash卡。

这一选择实际上包含两层技术含义:

首先,就存储介质而言,flash芯片属于固态芯片的一种,读写数据时无需任何外部电源,相对节能、环保。而机械硬盘则由磁盘和读写磁头组成,并配有马达驱动;就访问时间而言,二者也有云泥之别:前者采用电子寻址机制,后者则需要通过电机驱动机械臂、移动磁头寻道来读写数据,相形之下,高下立判——2013年初网上的较新数据表明:由SATASerial ATA)接口驱动的传统机械硬盘,其数据读写速度要略高于200MB每秒,访问时间略低于8毫秒,每G字节的价格则只有区区几个美分;而最快的SATA接口flash介质的传输速度可以达到550Mb甚至更高,访问时间则不过是1ms的一个零头(0.1ms),比机械硬盘快了近百倍!当然,高性能都是有代价的:每G字节的价格高达0.71美元之间。

此外,阿里系技术团队摒弃了传统的SATA接口技术,采用了当时最为尖端的PCI-E接口的flash存储卡,以追求最优性能。这两种接口是不可同日而语的:在标准X86服务器当时的硬件体系中,主板芯片还是由南桥和北桥组成。其中,北桥用来处理高速信号,通常负责与中央处理器、随机存取存储器(即内存)、AGPPCI-E接口以及南桥进行通信;而南桥则负责处理低速信号,并通过北桥和CPU通信。南桥包含了大量周边设备接口、多媒体控制器和通信接口,例如:SATA接口控制器、IDE控制器、USB控制器、以太网控制器以及音效控制器等等——IDESATA等常见的硬盘接口是由南桥芯片负责管理的。但随着技术的日新月异,Fusion-IO等新锐公司研发出了PCI-E总线接口的存储卡来承载flash存储介质,借助于双重技术红利来追求X86环境下极致的介质访问速度。所谓PCI-EPeripheral Component Interconnect Express),是一种计算机高速串行扩展总线标准,它与CPU之间的通信物理链路为:PCI-E接口——北桥——CPU;而传统的硬盘SATA接口和CPU的通信物理链路则是:SATA接口——南桥——北桥——CPU;两相比照之下,前者甩掉了南桥、通过北桥直接和CPU通信,区位优势不言自明。

那么,采用上述硬件方案的效果如何呢?

2011年,淘宝核心数据库之一的交易库采用的是IOE架构,成本约为2000万元,性能约为9000TPSTransaction per Second),而淘宝的每笔业务平均大约需要3个事物,也就是说,当时的架构可以支撑淘宝每秒开展3000笔业务。

为了进行比较,阿里集团技术团队按照新的软硬件方案搭建了测试环境:在硬件方面选用了高端X86服务器和PCI-Eflash卡,数据库软件则选择了开源的MySQL数据库,并导入生产环境中的真实数据、存储于PCI-E接口的flash卡之上——整体的成本约为12万元。

测试方案是:将生产系统中的交易过程在测试环境中进行回放(replay),在此过程中进行性能度量,以保证测试结果尽可能贴近实际。

最终获得的性能指标为8000多笔TPSTransactionper Second),直逼2000万成本的IOE架构!转而从性价比角度观察,传统IOE架构完成一个数据库事物(transaction)所需的成本约为2200多元,而采用新架构后,一个事物仅需15元,后者不到前者的百分之一!理论上说,2台价值12万的X86服务器性能足以与价值2000万的IOE架构相当。换言之,采用新的技术架构后,满足近乎同样的性能需求只需付出原成本的百分之一!这样的结果实在令人瞠目结舌。

顺便补充一点,采用新技术方案后,数据库的响应时间(即服务器端收到请求瞬间到发回响应瞬间的时间间隔)也得到了大幅改善——从IOE架构下的几ms下降了一个数量级,达到0.xms——EMCDMX存储设备虽然采用了高速Fibre Channel,但物理传输路径比PCI-E flash卡要长出不少(后者通过北桥与CPU直接通讯,而前者HBA卡所采用的接口即使与flash卡一样先进,后面还是多出了从HBA卡到盘阵的传输路径),故此在传输延时上依然大为逊色。

IOE实施过程回顾

正是基于这一测试结果,阿里集团在2011年陆续将其核心的交易库和商品库都迁移到新的技术架构之下。在设计中,为了增强系统的横向扩展能力和稳定性,淘宝引入了TDDL分布式数据中间件,将交易库和商品库拆分为16shard;同时,为了进一步提升数据库的整体性能、加强其高可用性,还引入了主从复制和读写分离机制——为每个节点部署了从(slave)数据库(即商品库和交易库均为16x2台机器),读写分离则由TDDL控制。单单以交易库为例,32台机器的硬件成本在400万之下,不到原来IOE架构投入的五分之一;而可获得的TPS却从原来的9000一跃而为12.8万,上升了13倍之多!

核心数据库的成功切换,标志着阿里“去IOE”运动所需的技术日趋成熟。自此之后,技术团队势如破竹:2012年双十一大促,“去IOE”后的阿里基础架构成功通过了一次严峻的“大考”;2013517日,阿里集团最后一台IBM小机在支付宝下线;同年710日,淘宝重中之重的广告系统使用的Oracle数据库下线,这也是整个淘宝的最后一个Oracle数据库。这两件事合在一起是阿里巴巴技术发展过程中的一个重要里程碑——肇始于2009年的“去IOE”运动终于圆满地划上了句号。

IOE的经验总结

那么,IOE“运动又有哪些经验值得我们总结呢?

首先,IOE”运动得以成功实施,关键因素还是在:组建一只实力雄厚的技术团队。而阿里的技术团队人材济济,兵强马壮,既吸引了众多业界知名的技术专家×××(诸如LVSLinux Virtual Server)项目的创建人章文嵩博士、淘宝褚霸、淘宝丁奇,淘叔度等等),也通过运动的深入开展造就了一批技术骨干,又储备和培养了众多的技术后备力量,技术人材的分布梯队化、层次化。

其次,技术团队多年来浸淫于电子商务领域,对于大规模分布式事务处理(尤其是交易和支付环节)积累了宝贵的技术经验。

再者,开源软件在IOE”运动中发挥了重要作用,值得关注:阿里系技术团队中不乏能够对开源软件源代码进行修改和定制的开源高手,其替换原IOE体系的软件栈中采用了大量的开源软件(Linux操作系统、MySQL关系型数据库、Nginx Web服务器、Java虚拟机jvm等等)。同时,阿里技术团队还不断将对开源软件的改进和定制回馈给开源社区,并开源了自主开发多年的各类基础软件。丁香园”CTO冯大辉就指出技术团队在开源软件领域的投入取得了惊人的回报,现在来看,此乃相当有前瞻性的举措,值得肯定。阿里技术团队正在试图掌控整个网站体系中的所有组件的核心技术,这将是一个趋势。

此外,新兴的PCI-E flash卡、SSD(固态硬盘)等尖端存储技术的成熟和大规模商用为数据库服务器性能的跃升提供了硬件基础——存储介质的访问时间获得成数量级的改善,是重要的技术支点。

IOE对电信的借鉴意义

凡此种种,对于中国电信及其信息化建设,又有何借鉴意义呢?

中国电信在互联网时代的处境及对策

众所周知,随着互联网的兴起,电信传统的语音和增值业务不断受到蚕食,面对OTT企业的发展壮大,形势日益严峻。而无论国内国外,固网宽带业务和移动互联网业务作为新的业务增长点,却似乎都陷入了增量不增收的怪圈         ——中国电信也不例外,据2013年上半年财报显示:其固网宽带业务开始出现增量不增收的局面——“固网数据及其他收入增长5.0%。宽带用户达9582万,同比增14.5%,但ARPU值从同期69.3元降到63.1(-8.9%),收入同比仅增长5.5%”,值得警惕。

为了应对这一危局,迎接互联网时代的挑战,中国电信董事长王晓初提出了“一去、二化、新三者”——所谓“一去”,即“去电信化”;“二化”,即“市场化”、“差异化”;而“新三者”则是指:中国电信要做“智能管道的主导者、综合平台的提供者、内容和应用的参与者”——这被外界解读为“对运营商转型策略最集中的回答”。

在此之后,为了贯彻这一战略,中国电信也是动作频频:

20123月成立中国电信云计算公司,并引进业界知名专家出任高管;

围绕互联网应用,在南方陆续成立八大业务基地,广泛涉足游戏、视讯、音乐、阅读等互联网应用题材,并获得外部资本注资;

又于2013819日与网易成立合资公司,联合推出IM工具“易信”,不但向“微信”的霸主地位发起挑战,也和自主开发的IM“翼聊”“同室操戈”,共同接受市场的检验。

在这些举措之间,不难观察到“一去、二化、新三者”的种种印迹:强调以独立公司化模式来运营互联网应用、利用市场来调节和配置资源、尝试建立综合平台,形成服务和业务的差异化,至于参与内容和应用就更不必说了。

拥抱互联网时代,电信同样需要去IOE

简而言之,“去电信化”也就意味着中国电信加速拥抱互联网时代的到来。虽然领导层在拓展互联网业务上的态度依然谨慎(新三者中位列第三),但笔者认为这一趋势已无可避免:要破除宽带流量“增量不增收”的难局,必须在应用和内容上下功夫;而要消除OTT企业对电信威胁,其最佳方式就是进入OTT公司的业务领域——运营商与互联网业务提供商之间的界限早已经日渐模糊。有谁会想到:有朝一日Google会回溯到产业链的上游,去涉足城市的网络建设和运营(Google2012年初开始着手在堪萨斯城铺设光纤)呢?!在4G牌照即将发放的情况下,腾讯将微信的对讲功能改造为全双工实时通话,也不是什么难以想象的事情。

既然开发杀手级互联网应用(killer application)是势所必然,那么阿里系IOE”的几点动机对中国电信而言也就同样成立,有些理由甚至还更加充分:

首先,如果电信能借助其既有客户群成功拓展出杀手级的互联网应用,那么用户和访问量的庞大规模就决定了商用IOE架构对应用长期发展的制约作用,分布式系统架构是此类应用设计的必由方向。

——以近期电信和网易联合推出的易信为例,该产品团队于821日发布告用户书称:产品发布后24小时注册用户数达到100万,发送文字、语音、图片类消息共计1200万条。发布后当天就达到苹果应用商店社交类免费排行榜第一,综合类免费排行榜第三。而伴随亮丽的注册用户数和应用下载量,短期用户数量剧增,流量大导致拥堵,给服务带来巨大压力,易信正在迅速扩容,投入更多资源满足用户需求。

很显然,假设其现有架构采取了类IOE的集中模式、并且能够通过垂直扩容来缓解访问压力,这也只是暂时现象,从长远看是难以为继的——“分布式架构才是正解。

再者,对于阿里而言,当时开展核心业务所依赖的关键技术严重依赖以IOE为代表的传统IT厂商,这对于企业的长远发展而言,绝对是重大隐患。阿里系当时所面临的困境,换做中国电信同样也无法规避。

更有甚者,作为涉及国家安全的通讯行业,安全也是决策者们需要考虑的重要因素。斯诺登就爆料称:美国国家安全局曾***中国电讯公司,以获取手机短信信息——这也间接证明了安全在电信领域的重要性。而“去IOE”运动的开展,必然会为中国电信在安全方面的形象带来极大改善。

再就成本而言,作为规模庞大、同时也是信息化建设相对较早和较为成熟的的中央直属企业,中国电信每年都需要为商用软、硬件支付不菲的费用(软件许可证费用和软、硬件维保费用),而“IOE”又占据了其中的大部分份额。开展“去IOE”运动,无疑会对企业降本增效起到极大地促进作用。

IOE运动在互联网应用中的适用场景

既然“去IOE”运动的好处如此多多,那么是不是就能包治百病呢?是否就能放之四海而皆准呢?

答案无疑是否定的。

任何技术以及技术解决方案都并非“银弹”,都有其适用场景,也都存在着固有的局限性。不加分辨的盲目拿来使用,轻则“南橘北枳”,重则“失之千里”,设计者不可不慎。在设计系统架构时,需要始终保持清醒的头脑,紧紧围绕业务和需求开展工作,万不可陷入“唯技术论”、“为了技术而技术”的陷阱。

“好的架构是进化来的,不是设计来的”——诚哉斯言!

细心的读者应当注意到,淘宝系的“去IOE”运动从酝酿到成熟、再到实施,其实是存在一个演进过程的。淘宝子柳所撰写的系列回忆文章《淘宝网的技术发展史》,更是精彩地回顾了这一技术演变过程:随着业务的发展,系统从原始的PHP+MySQL架构演变为企业传统的IOE架构;再随着业务的爆发势增长而逐步“去IOE”化。表面上看,数据库从MySQL又回归为Mysql,似乎是在原地踏步。实际却揭示出技术演进的深刻内涵:只有合适的技术,没有完美的技术;换言之,有什么样的业务规模,就应当采用什么样的技术架构。技术必须与业务规模相适应!

“去IOE”运动,尤其是其中的大规模分布式事务处理技术和数据库拆分技术——是电商技术团队在天量级交易频次的压迫下一种自然而然的自救行为,是应对极端业务环境的极端技术手段。处于孵化期或者培育期的互联网应用,是没有必要在这方面做过多考虑的。

所以,开展“去IOE”运动的前提必须是,你拥有一个“杀手级”的互联网应用,系统架构尚处于“集中式”,同时又面临着与日俱增的巨大业务访问量需要处理。

IOE对电信企业信息化建设的借鉴意义

不过,话又说回来:“去IOE”运动所引入的大量软、硬件技术依然可以在中国电信自身的信息化建设中找到应用场景,值得借鉴。

中国电信是信息化应用较早,信息化程度较高的国企,其CTG-BOSS体系架构在行业内也久负盛名。不过,毫无悬念的是:企业内部的大多数IT应用都采用了以“IOE”为代表的集中式架构。

需要指出的是,传统电信业务与互联网业务的一个显著差异在于:前者是按照行政区划来拓展业务和配置资源的。这就意味着,电信的企业信息化系统所承受的业务访问压力要比互联网应用小得多,至少:通过合理的功能划分可以做到这一点(CTG-BOSS的功能划分也体现了这一设计理念)。换言之,集中式架构在电信内部是有其设计合理性的。

但是,随着技术的发展,X86 CPU的处理能力日新月异;再结合SSD(固态硬盘)技术和PCI-Eflash卡技术的成熟和大规模商用,致使X86服务器的性能直逼原来的IBM小机,性价比则应当更胜一筹——前文中淘宝核心数据库的测试数据也证明了这一点。

因此,选择通用X86服务器(commodityserver),可以帮助电信摆脱对IBM小型机专有技术的依赖,大幅降低投资和运维成本。

同样,蓬勃开展的开源软件运动也催生出大量功能强大、性能优异的工业级开源软件。淘宝系技术团队在“去IOE”运动中就采用了大量成熟的开源软件,从Linux操作系统到MySQL数据库,乃至Nginx Web服务器,历经过无数次严苛的实战考验,无疑是商用系统软件的绝佳替代品。这也是电信在企业级应用系统软件选型时可以充分参考和借鉴的。

此外,借助于中国电信在云计算中心上的带宽和资源优势,应当考虑对电信内部的企业信息化平台实施向云端的战略转移,在做好基于IaaS层面成功迁移的前提下,进一步规范和理顺PaaS层和SaaS层,此举可谓一举多得:在将云计算的技术红利转化为降本增效的管理红利的同时,能够不断丰富和完善云平台的运维经验、锻炼技术团队,同时也为拓展云计算市场客户提供了典型成功案例。

结语

最后需要再次强调:“杀手级”的互联网应用也好,电信内部的信息化系统建设也罢,“去IOE”技术的背后,关键是人和团队。数据库分片技术(shard)、分布式事务处理在缓解了性能和存储压力的同时,给系统开发和运维都提出了新的挑战;选择开源软件虽然能够有效降低采购成本,但其升级、除虫甚至定制问题却又是无法回避的。——这些都需要一支有实力的技术团队来面对和担当。

身处互联网时代的中国电信面临着巨大的竞争压力,“去电信化”的战略口号迫切需要寻找到落脚点和出发点。“他山之石,可以攻玉”——深入研究淘宝的成功案例,积极吸取和应用其先进经验,对于中国电信加快转型步伐、植入互联网基因,必将起到极大的促进作用。



参考资料(排名不分先后):

1、冯大辉谈谈阿里系的技术积累

2、张宇婷《王坚:阿里巴巴为什么“去IOE”》,来源:商业价值

3、章文嵩《淘宝软件基础设施架构》

4、ArikHesseldahl,ChinaWants to Investigate IBM,Oracle and EMC

5、ArikHesseldahl,ChinaIs Not Investigating IBM,Oracle and EMC, Even as Tensions Increase

6、佚名《冯春培揭秘阿里选MySQL数据库惊险历程》,来源:51CTO网站

7、李伟《成本趋动淘宝应用开源数据库mysql实践》,来源:IT168网站

8、子柳《淘宝网的技术发展史》

9、通信产业网《王晓初与马云达成三项交易:“去电信化”与“新玩法”》,来源:钛传媒

10、韦乐平《运营商必须“去电信化”!》,来源:虎嗅网

11、付亮《中国电信半年报简析:繁荣中有隐忧》,来源:钛媒体

12、《易信用户剧增服务正扩容 300M流量赠送开始到账》,来源:环球网科技

13、维基百科