万里云天剑百尺:云计算业务与技术
最近一段时间,云计算、大数据领域可谓风起云涌,各种声音与活动极为频繁。总结看来,大家主要是在表达这样的几种观点:云计算即将成为IT运营的主体模式;云计算不但会成为公众与小微企业的IT主体,并且即将推翻并取代垂直行业的现有IT体系;云计算的技术手段是以“小变大”的分布式架构(也是所谓的大数据技术架构)为主体,它即将以稳定、低成本的表现在各个领域取代传统IT基础设施。
乍看起来,这些意见既符合未来趋势,又有各方云界英雄们过去的不俗成绩为后盾,的确是很容易让人信服的,并且比以往任何时候都显得更加实在。但是,在各种关于云计算、大数据的令人振奋、符合时代趋势的业务战略背后,依然是以“小变大”分布式架构一统天下的技术策略作为支撑。
从业务上讲,云计算将使IT运营模式发生翻天覆地的变化,的确可以算是“浩浩荡荡的世界潮流”。而抛弃产品销售模式,向“以服务为中心”的模式转变也是全球各级IT供应商应该尽早考虑的战略。这些都无疑是正确的,但是不是就等同于“小变大”的分布式技术架构已经达到了无往不利、能够有效替代现存所有技术架构、满足所有技术需求的地步呢?
这样的从业务战略到技术战术的推导似乎并不符合逻辑。众所周知,分布式并不是一个新东西,为什么突然就能一统天下了呢?看来,这个问题还是不能简单地随风而动,人云亦云,需要进行认真的考虑与分析。
业务:云天万里竞自由
关于云计算轰轰烈烈的新气象,有两点笔者是完全赞同和佩服的。
一是关于云计算将成为未来社会IT运营模式主流的论断。相信未来有一天,基于云计算的服务必将会成为人类社会消费IT基础设施、平台乃至应用软件的主体模式。而位于云计算体系中包罗万象、互联互通、安全智能的数据,其实也就是真正意义上的大数据;
二是云界英雄在云计算新一轮的浪潮中提出的各种发展战略、业务策划等,也是非常明智的,它们要比若干年前关于云计算的呐喊实在得多。其中很多行动、规划与举措,都是站在时代发展的前沿与主干道上,无疑都将是引领未来的正确设想。
一句话,对于云计算业务来讲,正可谓是云天万里,前景无限!
技术:长剑仅百尺
“小变大”技术策略已经具备足够的能力颠覆现有的IT体系了吗?有一个现象值得我们注意:云界大佬们在提出各种云计算业务战略的同时,又强烈地表达了这样一个论调:“小变大”的分布式技术架构将完全颠覆现有IT体系。但深入分析就会发现,从云计算的运营模式并不能严密地推导出这样的结论。云计算无疑是业务模式、IT运营模式的颠覆,但从这一点并不能得出某种技术方法也是所有IT技术颠覆者的结果。
如果将目前用于云计算的分布式技术的现状全部拿出来,与现有的IT技术体系一一对应的话,我们很快会发现,如果要全部颠覆,实在是难以成行的。而这种一一对应来证明某种观点的方法,虽然也有说服力,但过于具体,其高度、抽象度与理论性还不够强。这也是本文想重点强调的,分布式技术架构还不能作为所有IT技术颠覆者的根本原因,并不是因为某一个具体的场景不能满足,而应是:至今为止,计算机体系架构并没有发生颠覆性的改变。
众所周知,现代计算机体系架构,从纸带时代进入磁盘时代、从电子管时代进入到硅电路时代以后,无论CPU如何升级,网速如何提升,都一直保持着同样的体系:一台计算机内,CPU、内存、磁盘等部件被总线与其他接口连接起来;而在计算机之间,则由网络连接起来。现阶段,主要是以太网和TCP/IP协议。
多年以来,影响计算机效率发生颠覆性质变的关键,无非就是两点:一是磁盘的效率,二是网络的速度。我们可以发现,对于极为高速的单台大型设备,其内部一定设计有类似内存的缓存架构,同时一定也采用了“分布式”的思想与架构。但其在绝大多数情况下,它们并没有采用应用开发者所熟悉的通用“网络”来连接分布的部件,IBM大型机、多CPU的PC机都是如此,甚至采用MPP(大规模并行处理)架构的TeraData也设计了自己的网络互联技术BYNET。
长年从事通用网络编程的朋友们也应该明白,这么多年了,两台通过网络互联的计算机之间,在最底层的IPC编程层面,永远都是Socket编程那一套,连函数都没有发生改变,Internet、消息、SOA、WebService、RPC、Hadoop、NoSQL之类,到了分布式通信编程的底层,都是一样的玩意,没有什么新东西。
那有人会问,照你这么说,这么多年还都没有发展了?当然不能这样讲,但公平的说,计算机应用及应用支撑技术现代以来的发展(包括云计算技术在内),都只是在现有的技术体系上做得越来越好、越来越巧妙,这些工作依然是伟大的,但绝对不适合使用“颠覆”这一词汇。
另外,采用“小变大”的分布式架构,使用内存与缓存,其实是由来已久的技术策略,准确来讲,已经有了几十年的历史。就连我们感觉老旧的IBM大型机,其实也采用的是这样的架构。当然,本文所说的“小变大”与“分布式”,是专门指x86机器采用标准计算机网络互联。而多年以来,很多问题一直不适合在传统网络连接的分布式架构中实现(例如OLTP中的事务),而在大型机这样的分布式架构却可以实现的原因也就非常明了了。还有一个要素也很重要,那就是阿姆达尔定律用数学公式精确地告诉我们:“若串行代码占整个代码的25%,则并行处理的总体性能不可能超过4”,无论您的设计编程技能有多么高超!很明显,并不是所有的问题都是并行处理的优势所在。
也就是说,如果从技术角度看,目前云计算似乎很难做到“倚天抽长剑,而纵横天下”。
不颠覆也伟大
笔者从这个角度出发来看问题,其实是想告诉大家:任何技术性的颠覆,一定需要坚实的理论基础。正如如果没有爱因斯坦的E=MC2在科学理论基础上的颠覆,就不可能有原子弹在工程制作上的成功。
当然,有人会说,关于分布式计算机互联的网络通信问题我不与你争辩,但近年来内存对磁盘的挑战,总算是一个小小的颠覆吧?这一点当然是正确的,但云计算技术策略的问题是:要用多个“小”采用计算机网络组成一个“大”。我们先不说内存技术对磁盘技术的颠覆目前尚无结论,核心的问题在于:根本性的技术颠覆,并没有发生过。
因此,如果现有的计算机体系架构,包括分布式网络通信架构,没有发生质的改变,云计算在技术上就很难实现真正的颠覆。最后一定要强调,有些读者可能会以为笔者是在跟云计算唱反调,事实正好相反,笔者恰恰是云计算坚定的支持者。只是这里认为,云计算本是一种划时代的业务模式与IT运营模式,为什么一定要与某种技术紧紧绑定呢?似乎从逻辑上、现实上讲都没有必要。我们是不是应该放开眼界,采用“适合就是美”的策略来建设和运营云呢?如果这样,即使没有技术颠覆的结果出现,伟大的云计算模式也一样可以成功。
来源:网界网