QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

没有回头路的 RISC 系统迁移之三要诀

  • 2012-07-22
  • 本文字数:4250 字

    阅读完需:约 14 分钟

时下,随着水平扩展(Scale out)的技术、实践和相关软件不断成熟,很多以前使用小型计算机的业务系统应用,出于成本考虑,准备向 PC 级或机架式服务器迁移,也就是要从 CPU 指令集采用 RISC 结构的系统,迁移到使用 x86 结构的系统。在 Intel 工作的“非仙居”,给出了此种迁移的三要诀:撞破南墙不回头,痛下杀手改架构,看准方向多投入。他的这篇博文,在微博上也引发了讨论。

非仙居看来:

国内迁移最成功最彻底的案例莫过于淘宝的商品库去 O 项目。结合自己亲身参与的别的几个案例,总结了三点自认为迁移成功的关键,和 X86 比之 RISC 系统的一些优劣,在此分享。

要诀 1:撞破南墙不回头!

非仙居认为:

在现今的技术条件下,可以说没有一个系统是不能够从原先的 RISC 架构迁移到 X86 架构。关键就是看决策层领导层想不想这么干。

……

有得必有失,一旦你实在不能忍受 RISC 系统的高昂维护升级费用,封闭系统的各种局限,那你就要改头换面!但一旦你决定改头换面了那么势必原先的一 些你习惯了的地方也要完全被放弃掉,所以肯定是有很长的一段阵痛期!想先通过一些小规模尝试规避掉所有风险是不可能的。就像企业刚上 RISC 系统时也一 样,会有各类问题出现。但那时你没有选择,所以只能排除万难迎头而上。现在其实也一样,作为 CIO,你要做好准备,一旦你决定了做 RISC 迁移了就是一条 不归路,你必须狠下决心就一条路走到黑,碰到问题也只以保证 X86 系统能按时上线为大前提!

遇到问题时,非仙居的建议是:

切割时候问题肯定会出现的。真的有决心就不是去畏畏缩缩的规避这些,而是下死命令告诉所有业务部门你只能用新的了,有问题有抱怨我们一起想办法在新系统上解决,短期有影响我们一起承担风险责任。

他认为拿周边小系统尝试没有意义:

因为在核心系统没改变的情况下,边缘系统的异构对于你来说只是增加很多无谓的各种兼容性问题故障排除的人工。

因此,一定要下定决心:

RISC 向 X86 迁移这种事,一旦要干就要狠下死手只有华山一条路那么的去干!别说碰到困难,即使撞到了南墙也要把南墙撞破再往前走。

要诀 2:痛下杀手改架构!

非仙居看来,RISC 架构系统迁移时,体系架构的调整不可避免:

对于一个使用 RISC 架构作为 IT 主要架构的企业来说,后台前台数据结构势必是以 RISC 架构为核心的。如果要转,那么这种体系架构肯定要改。比如数据模型,存储文件系统……

接下来他举出了淘宝的例子:

淘宝商品库核心数据库系统去 O 过程中,很关键一个里程碑就是把切分库的方式从卖家 ID 变成商品 ID,从而根本解决了从 RISC 到分布的 X86 系统时 IO 分布不均的问题。要是不作这一改变,估计那次去 O 尝试也不会有好的结果。

他认为其实这两种方法没有绝对的好坏:

这个没有谁好谁坏的问题,两套体系两种思路罢了。你决定了换体系就要以新体系的套路重新评估业务,设计架构,千万不能想着偷懒把老的一套以某种方式过渡或者变通过去,那样的结果肯定是失败的。

他又举出一个案例:某家企业

一直想在 X86 系统中找“把若干台机器放在一起当一台机器用”的方案,而事实就是这种方案几乎没有,即使有也不可能比 RISC 好。

非仙居认为这不可能:

因为 X86 系统就不是按这个思路设计的。X86 系统就是要把一件事情拆开在多台机器上跑;或者让一堆机器聚在一起,智能自动地处理一大堆乱七八糟的不同任务。

他指出:很多人讨论的稳定性标准达到几个 9 这个问题也不现实。其原因在于:

RISC 的设计理念是为了 0.1% 的极端情况投入整个成本的 60% 甚至更多;而 X86 系统架构的设计理念就是要把 100% 的成本花在 99% 会出现的业务场景上,而先不去考虑那些极端场景。 所以要求 X86 硬件系统达到 RISC 这样的不当机水准是不现实的,设计理念就不一样。你从 RISC 迁移到 X86,就是要做好准备硬件的稳定标准会从 3 个 9 下降 2 个 9,但因为有软件上层架构的保证,你的应用其实也不会中断。所以要从 RISC 迁移,你就要把这套旧观念抛开!

关于架构重新设计的好处,非仙居认为:

随着企业信息数据量的越来越多样化和复杂,开放的 X86 架构可以给你带来更大的业务伸缩性和自由度。但这样子的变革完全需要投入的人力物力也是相当大的,短期看是绝对不会省钱的。干不干得完,全取决于企业的战略和 CIO 们的胆识。

要诀 3:看准方向多投入!

非仙居提出一个很具争议性的观点:

一切只为了省钱而进行的 RISC 迁移项目最终都会以失败告终!

他从硬件、软件和人力三方面分析了成本。

硬件方面:

别以为 RISC 系统真的那么贵,没有一个客户买 IBM 的 P 系列机器不是打狠折的。而且相对于 X86 系统,在现有业务环境下,完成同样事情需要的 P 系 列机器数量肯定要远少于 X86 服务器数量。所以光算硬件,X86 是要比 P 系列机器便宜些,但其实也没便宜多少,绝对不到数量级上的差异。

软件上:

先说虚拟化,PowerVM 是免费而 VMWare 的收费我就不提了。即使硬件成本上节省了不少但别忘了你还要把应用从 PowerVM 为基础的 AIX 迁移到 VMWare 为基础的 Linux 上。

而这又涉及到人力的投入:

这方面你要花的人力投入何止 RISC 系统上的几倍。别的应用更是。

……

从 RISC 到 X86 完全是体系架构上的从头再来,所以即使你用的软件硬件是省钱了,但这种体系架构上的重起炉灶势必使你要投入更多的人力物力去研发新体系完善新架构,并且这不是一段时间内的行为。

为了使 X86 系统完全融入业务环境,注定了他们必须是一支能够长期在第一线优化调整架构的高投入技术团队。要养这么一支团队,企业要付出的各方面待遇薪水福利基本不会少于购买成熟 RISC 架构软件及其每年相应的服务升级费用,甚至会更多。

在大方向上,非仙居认为一定要把优先级这样的战略问题想好,而且

在一定的预算内,系统的功能和性能如何平衡是很关键的一点。

RISC 系统功能完善,可能某些地方性能略差;X86 系统某些方面性能领先,但可能一些功能模块诸如冗余容错略逊。所以如果想要通过 X86 去改头换 面,不妨可以考虑一开始先在某些关键应用的性能方面追求提升,然后系统建设好后再逐步完善其它功能。当然也可以先尽量完善功能模块,再逐步选择提升性能。

总之一开始就要根据实际明确好自己的道路和方向,然后沿着这个方向,大胆投入,不然走了一半才意识到这些就悔之晚矣了。

RISC 迁移的两点好处

非仙居总结了 RISC 迁移的两点好处:

好处 1:获取更大的业务自由度。

未来信息化的发展,可能需要的不是一个可以稳定运行 20 年的系统,而是一堆短时间内可以支撑海量用户或者某种高峰应用的小系统。而一段时间过后,这 些小系统是否存在人们基本不再关心。所以旧有 RISC 系统的局限在这种业务趋势下就会变得捉襟见肘。相反更灵活,伸缩性更大的 X86 体系架构就变得更适合 企业业务的发展需求。

好处 2:增强自身的话语权。

现在 X86 系统的周边产业链也就是所谓的 Eco-System 要比 RISC 系统完善强大太多了。作为一个 CIO,如果所有系统都绑在 RISC 上,那 么日后势必只能越来越多的依靠 IBM,Oracle 这几家寡头。系统发展,升级,所有的命脉其实都捏在他们手上。别说讨价还价了,想单独要些定制的东西都 会越来越难。

而 X86 系统就不说了,硬件就不说了,软件方案也是精彩纷呈选择多样且兼容性移植方案都齐备。想自己开发点啥开源社区或者开源定制服务公司也都在那里等着你。你大可以放手选择,招投标时生杀大权完全掌握在你自己手里。

文章最后,非仙居总结:

天下事其实都是这样,有舍才有得。你抛弃了旧有的稳定可靠的框架,横下一条心,投入大量的人力物力走上了一条新的道路,练一套全新的武功招数,获得 了更大的业务自由和伸缩空间,同时也使自身和厂商博弈时占据了更有利的位置。这个就是我认为的 RISC 向 X86 迁移的付出和回报。

……

一旦要走这条路就要彻底的走,走一半或者走走停停都是浪费人力财力的无谓之举。

微博热议

他的这篇博文引发微博上的讨论。

jametong 提出了自己的观点:

  1. Risc 系统与数据模型的关系不是必须调整的。
  2. 不是每个公司都可以承受去 Risc 系统带来的阵痛的(不要搞出下一个 Digg 的改造出来)。
  3. 不是每个公司都可以投入那么大量的人力物力来做改造,改造的效果也未必是省钱。
  4. 做这件事情的目标不明确。

脚趾 008 对其的评论是:

严重同意第一点,用 x86 也能用 O。从 risc 转 x86 还有一种场景可能 @非仙居没提,大型的 SI/ISV,为了降低方案整体成本,避免受制于 I,同时他们技术雄厚,能承受两种架构并存。这类公司,以通信行业为代表,按规模来建议平台,但其仍为传统架构。

淘宝网高级数据库专家宁海元的微博帐号是 NinGoo ,他指出:

以现在 pc+ssd 的性能,从小型机迁移出来没那么大的风险和人力投入了,只是需要在数据库和应用层面做好容灾和高可用方案。至于去不去 O 在这里不 是关键点。小型机这种昂贵的封闭系统,其实风险很高,一旦宕机十几个小时修不好常有的事,而 pc 的价格完全可以多买几台直接替换。

高峡之数据时代说:

  1. 最重要的驱动力就是降低成本,这不可耻。当年 GOOGLE 没有钱,买了很多 PC SERVER 集群,来提高高可用性,结果催生了云计算;
  2. 以降低成本为中心,才能折中架构重构,高可用性和性能;
  3. GOOGLE 每年的数据中心成本从 64 亿美金,降到 15 亿美金,从而打造出极佳的盈利模式;
  4. 降低成本本身就是商业模式的一部分

南七的木木指出:

x86 化的所有优势恰恰与 x86 硬件无关,而是分布式软件架构带来的对业务扩展性灵活性的支撑。

脚趾 008 对这个观点不是很赞同:

当前的 X86 在稳定性方面和 risc 的差距已经不象早年那么大了,更别说采用了小机架构来设计的 x86 服务器,性能方面更是几乎相当。

在评论中, 非仙居老卢在路上从硬件的可靠性问题开始,讨论到了大型企业的考核与绩效:

老卢在路上:第一次听说 RISC 是三个 9 设计的,X86 是两个 9。有什么具体的例子来佐证这个嘛?

非仙居:只是打个比方罢了。就是想说明不论从硬件还是软件,X86 的系统对于 RAS,归档,快照等等需求处理的思路确实和传统 RISC 不一样,没有可比性。

老卢:replication 这些都是软件特性,不知道和 CPU 的关系具体体现在什么地方?

非仙居:和 cpu 无关的。但很多企业考核指标就是硬件的不死机,这个是 RISC 时代的标志,不适合拿来衡量 x86 的硬件可靠性。x86 系统看单机是没有意义的。所以我说你光看硬件的话,会可能从3个9变成2个9,但整体系统依然是高可用的。

老卢:所以还是软件和系统的可靠性要求不一样,和是否是 RISC 或者是 X86 没啥关系…

非仙居:是的,但问题是现在大多数大型企业考核系统稳定性的标志还是 RISC 的思路,对 X86 没有意义。但这个指标却和部门绩效工资息息相关。这个不转变,领导的思路就不可能改变。

2012-07-22 21:152542
用户头像

发布了 479 篇内容, 共 161.3 次阅读, 收获喜欢 52 次。

关注

评论

发布
暂无评论
发现更多内容

十大排序算法--堆排序

Ayue、

排序算法 8月日更

Go并发之CSP并发模型、协程并发

Regan Yue

协程 CSP Go 语言 8月日更

SpringCloud微服务日志经kafka缓冲写入到ELK

Rubble

kafka Spring Cloud ELK 8月日更

模块4作业

青鸟飞鱼

模块四作业

俊杰

架构实战营

Druid 加载 Kafka 数据时直接提交一个 supervisor

HoneyMoose

Vue进阶(十四):config/index.js 配置文件详解

No Silver Bullet

Vue 8月日更 配置文件

【Flutter 专题】75 图解基本 TabBar 标签导航栏 (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

数据探索

南湖职业技术学院机械狗

kubernetes入门:harbor个人私有仓库傻瓜式搭建

小鲍侃java

8月日更

netty系列之:Event、Handler和Pipeline

程序那些事

Java Netty nio 程序那些事

Vue进阶(十三):MOCK

No Silver Bullet

Vue Mock 8月日更

花几天时间肝了一个在线制作词云图网站

Python研究者

Python 可视化 词云图 Python JSON 8月日更

Java 操作 Office:POI之word图片处理

程序员架构进阶

Java 架构 自我提升 实战问题 8月日更

Druid 加载 Kafka 数据时通过控制台来提交一个 supervisor

HoneyMoose

oeasy教您玩转vim - 8 - # 追加文本

o

学习总结

青鸟飞鱼

FastApi-07-查询参数校验

Python研究所

FastApi 8月日更

架构实战营-学习总结

泄矢的呼啦圈

架构实战营

Druid 使用 Kafka 数据加载教程——下载和启动 Kafka

HoneyMoose

Druid 加载 Kafka 数据后查询和清理数据

HoneyMoose

软通动力 OpenHarmony 师资培训班隆重开启,聚焦高校教师赋能

开放原子开源基金会

oeasy教您玩转vim - 9 - # 换行插入

o

番外2. OpenCV 中摄像头捕获与视频处理与常见问题解决方案

梦想橡皮擦

8月日更

如何从 0 到 1 设计 B 端产品?

蒋川

后台开发 产品开发 后台 后台管理系统 tob产品

🏆【Java技术之旅】「编译器专题」重塑认识Java编译器的执行过程(消除数组边界检查+公共子表达式)!

洛神灬殇

Java 编译器 8月日更 JIT编译器

阿里云-云开发平台存储篇——给应用接上后端存储能力

若尘

阿里云 云开发 8月日更

【Vue2.x 源码学习】第二十八篇 - diff算法-问题分析与patch优化

Brave

源码 vue2 8月日更

北鲲云超算接入GPUA100,让AlphaFold2轻松使用

北鲲云

Druid 使用 Kafka 将数据载入到 Kafka

HoneyMoose

oeasy教您玩转vim - 7 - # 从头插入

o

没有回头路的RISC系统迁移之三要诀_DevOps & 平台工程_郑柯_InfoQ精选文章