很多人谈到“去IOE”话题,会理所当然的认为,将IBM、Oracle、EMC的全部产品从信息架构中移去就是去IOE,其实不然。IOE其实是特指IBM、Oracle、EMC的专有系统:“I”指的是IBM大/小型机;“O”指Oracle专有数据库;“E”指EMC存储设备。由于推出较早,行业应用丰富,性能指标优秀,所以“IOE”架构成为针对各行各业的企业关键应用而设计,基于向上扩展(Scale-up)技术高端设备,并形成了围绕着它们而开发的大型数据库、商业中间件与应用的产业生态。

由于出发点不同,不同的人在理解“去IOE”的过程与结果也是不一样的。“去 IOE”话题很容易走向到两个极端:一是单纯变为企业购买成本问题,二是简单地变成一个是否能用国内产品技术去替代IOE的问题。

笔者认为,企业业务才是价值的核心问题,在不影响或是更好全面支持业务的前提下,如何平衡成本与业务风险 ,实现安全、可复制的“去IOE”才是本文需要讨论的重点。而建设银行新疆分行应用国产主机代替IBM小型机的实践,则可成为我们参考的案例。

点燃“去IOE”话题

“去IOE”话题的开始,要从去年夏天阿里巴巴集团正式公布技术团队合并,并宣布用开源的MySQL数据库替换Oracle数据库说起。

2013年6月20日,阿里高调宣布其对为支付宝用户服务了5年的最后一台小型机下线。在阿里巴巴集团首席架构师王坚的主导下,采用PC-Server承载MySQL数据库,支撑大并发大数据量的核心业务系统。

王坚这样概括“去 IOE”运动和阿里云之间的关系:“去 IOE”将彻底改变了阿里集团 IT 架构的基础,是阿里拥抱云计算,产出计算服务的基础。“去 IOE”的本质是分布化,让随处可以买到的 PC 架构成为可能,是云计算能够落地的首要条件。

我们可以这样理解,在王坚的眼中,“IOE”是软件时代或是“买计算机”时代的产物,而在云计算时代,则变成买“计算能力”的时代。尽管“IOE”的性能与可靠性表现出众,但随着云计算能力的快速提升,理论上说,“IOE”就一定能去掉!

这明显是互联网思维下的“去IOE”。

观点看似没有问题,但抛开实际的“去IOE”过程而言,由于阿里以电商业务发迹,进而迈入公有云服务市场的业务特点来看,阿里高调“去IOE”的发布其实是在为自己的未来业务站台。

从阿里的技术发展历程来看,阿里是从主要依靠商业软件、到开源再发展到更多的自有技术或是说云计算的。

在最早依赖商业软件时,阿里是当时是亚洲最大拥有20 多个节点的 Oracle RAC 数据库集群,之后成为开发使用开源软件 MySQL 最好的企业之一,再到研发自己的关系数据库 OceanBase,目前也已用在了不同的业务场景。

从用 Oracle 做处理数据,到用 Hadoop 集群 (是业内单个机群节点数最多的 Hadoop 机群),再到用自己飞天平台上的 ODPS。这样演进的路径也表明:商业软件、开源软件跟自有技术永远是一个搭档,对于不同企业来说,是择优选择的问题。

传统企业几乎不可复制

从2010年开始的“去IOE”运动耗时3年,经过阿里巴巴集团1.7万名内部技术人员的努力,才高调的宣布了“去IOE”成功。阿里巴巴无疑将自身作为风险极高的“去IOE”创新试验品,下定决心才有了现在的成果。

阿里巴巴后来总结“去IOE”是“技术门槛很高、技术风险很大、水很深”的技术改革,敢冒如此风险的首要原因就是,考虑成本可控、技术可控等因素,不愿继续增加成熟商用系统以满足阿里巴巴特别是淘宝爆炸式业务增长的架构需求。由于其中的特殊性和特定性,这一过程虽然具有示范效应,但却有着太多不可复制的底层技术细节。比如互联网交易系统对数据一致性要求低于传统银行,但任何交易都存在数据复杂性与一致性的协调问题。因而虽然阿里巴巴采用分布式架构处理部分交易系统,但也需要对分布式开源数据库进行大量定制化改造。

在全新的IT架构下,淘宝的业务变得更加开放、灵活、高效,并在中国的互联网行业产生了很大的影响,欲效仿者甚众。当然,企业没有总结和沉淀积累,绝对不会盲目去实践,尤其是传统企业。

阿里技术保障部DBA负责人周宝方稍后接受记者采访时也表示,“去IOE”技术门槛很高,其他企业根本无法复制。”

“去IOE”的理性思考

成本问题恐怕是企业“去IOE”的最大动力了。

确实,负责掌管企业核心业务的“IOE”们的身价不菲,专有系统不仅仅售价高昂,每年去维护这些系统都是一笔不小的费用支出。这就像去买一辆豪车的价格其实只是个开始,而保养、修理费用是不可以忽视的。

之前说过,“去IOE”不应单独被视为企业购买成本的问题,至少说起来就像豪车的售价与4S店保养费用都是明码标价的。而很多企业为了成本问题,在“去IOE”的过程中使用购买成本几乎为零的开源软件来替代专有的Oracle数据库,就像淘宝采用MySQL去代替Oracle数据库之初,阿里和淘宝曾经多次尝试从Oracle数据库迁移到MySQL,但是都失败了,最根本的原因就是懂MySQL DBA技术的人才极少。

去Oracle并不是单纯的成本问题,但用户又不得不去考虑它的成本。首先,这是一个技术的替换过程,其次必然会考虑更加省钱的数据库软硬件解决方案,最后就是时间成本问题。很多人在谈阿里的成功,却忽视它背后花了3年、1.7万技术人员时间用重金打造的一个“成长”过程换来如今的低基础架构成本与高工作效率。

3年时间、1.7万人,在说明互联网模式下的“去IOE”不可复制的同时,也进一步清晰与量化了阿里“去IOE”的成本。

笔者看来,目前Oracle数据库是“IOE”中最难去掉的那个,原因就是因为与业务核心绑定紧密,去除所花的成本与风险很大。尤其是传统企业,以金融行业为例,目前国内就难以找到让客户满意又能替代Oracle的产品。原因其实很简单,在传统企业IT基础架构不是很完善,缺乏最佳实践,经常面临捉襟见肘的局面。如果冒然替换,不但起不到成本降低的要求,低效的工作会让自己的用户无法满足。另外一个问题,Oracle集成体系在传统行业已经根深蒂固,几乎***到金融业,运输业,电信业,连锁业等等,客户也是在这个过程中形成了一种依赖。

所以,从理性出发,“去IOE”其实是一种趋势,但并非是一种决绝的方式。

“去IOE” 服务器是第一步

诚实的说,就像阿里巴巴一样,很多企业“去IOE”的目的其实是为了平衡成本与支持实现业务价值。

作为企业IT系统的承载基础与计算核心,服务器的价值在于三点:可靠性(硬件)、计算性能(性价比)、操作系统(广泛支持与强壮性)。

由于摩尔定律的持续拉动,计算性能在最近十年的增长可以说是突飞猛进,IOE中IBM的大/小型机以往所能够傲视群雄的性能优势已经逐渐丧失,而服务器设计中也越来越考虑RAS特性,也将可靠性与“IOE”中的“I”逐渐拉近。与数据库与业务应用的强烈绑定,存储系统的多样性设计相比,对于传统企业来说,替换掉IBM专有服务器其实可以是“去IOE”过程的第一步。

新疆建行的实践

然而实际操作层面,企业如何才走出“去IOE”的第一步?

作为金融领域的龙头之一,在2011年,中国建设银行所辖的新疆区分行就使用了浪潮天梭K1系统替换掉了IBM小型机。

以往建行新疆分行的核心系统是IBM小型机加上IBM专用的AIX操作系统,支撑起核心交易数据库IBM的Informix,与管理信息系统Oracle数据库,中间件则是Oracle的WebLogic和Tuxedo。

在做了充分的调研之后,新疆建行采用整合、测试、迁移的“三步走”战略,将核心系统迁移到了浪潮天梭K1之上。迁移之前的新疆建行业务系统大多是分散部署,大约有18个。因此,在迁移核心系统之前,项目组花了半年时间将过去分散的18个子系统整合成一个统一的特色业务平台。

从一个国外专有系统迁移到国产主机,也必须对天梭K1与各个第三方软件的兼容性进行测试。由于天梭K1采用的是浪潮自主研发的K-UX操作系统,这也是全球第五个通过第三方Unix组织03认证的操作系统。项目组花了大量时间和精力进行测试和优化,成功的将Informix关系型数据库和 Tuxedo中间件,及各类工具软件、管理软件以及Oracle数据库、WebLogic等各种软件也迁移到了天梭K1上。

2010年8月,新疆建行第一批业务系统成功迁移上线。到了2011年5月,除了几个已经确定要下线的非常小的业务系统(大概占到整个系统的3%左右),其他所有的业务系统也就是新疆建行的特色业务系统全部顺利迁移到了天梭K1上面。此后又运行了一年的时间,2012年5月,整个项目顺利通过了国家组织的专家组的验收。直到现在,新疆建行的核心系统仍然运行在这台天梭K1样机上面,状况非常良好。

新疆建行试用国产小型机的成功,使得建行的其他省行动了心。其根本的原因,还是因为国产小型机的成本优势太明显:国外小型机的购置成本至少要比国产小型机高出三分之一,三年之后每年还要交纳高达10%-15%的维护成本。而且由于核心的技术人员都在美国总部,一旦小型机出现故障,本地工程师解决不了就只能反馈给美国总部,可能一个月之后才能解决问题。

在成功验收之后,就不断有很多省行联系新疆建行。最积极的是广东建行,他们专门派人在去年9月来到新疆,与新疆建行做了很深入的交流之后,开始用天梭K1替换IBM小型机,用于其“粤龙云”应用,逐渐将广东建行分散的数据统一到一个数据仓库当中。

2013年1月,在新疆建行应用了2年半之后,浪潮正式将天梭K1投入市场。

目前,国产小型机已经逐步从金融行业扩展到财税、电力、石油、农业等行业,开始逐步替代进口小型机。无论是在胜利油田、国家电网,还是在农业部、北京市财政局的机房里,都能够看到国产小型机的影子。

结语:去IOE需要平衡成本与业务价值

就像前文所提到的企业业务才是价值的核心问题,在不影响甚至是更好的支持全业务的前提下,如何平衡成本与业务风险 ,实现安全、可复制、逐步的“去IOE”才是企业应该去考虑的问题。

从这点来说,新疆建行的“去IOE”实践就很有代表性。