大约一年前,联通范总写了一篇《我所知道的云计算》,对云计算的各种新技术和理念进行了深入浅出地解读。
这一年来,云计算发展得风起云涌,有了很多变化。经过最近一段时间的全面学习和思考,我也手痒写一篇自己的理解。其中很多观点比较极端,算是抛砖引玉,给大家立个靶子。
要说的核心是:世上本没有云,说的人多了,云山雾绕,人云亦云,于是云计算就成了趋势。
硬件的演变
大家已经习惯,用软件和硬件,来对计算机的构成部分进行区分。
笼统来说,硬件是为计算机系统提供的物理平台,软件则是在硬件平台上,呈现出各种各样的功能。二者既有分工又协同发展,构成了纷繁复杂的计算机世界。
我还记得,大学时在51单片机上做开发,相对于BASIC和FORTRAN,C语言是当时最先进的编程语言。技术高手用汇编语言来做开发,虽然掌握起来难度大,但操作的对象是寄存器或存储器,因此执行速度特别快。
那个时候,硬件资源稀缺而昂贵,如果能节约几行代码,少几分资源损耗,都能直接体现巨大的价值。
之后的发展,主要是由硬件厂商驱动,但发展的模式却恰恰是通过发展软件,来提升硬件的竞争力。
一方面,操作系统的发展,在降低软件开发门槛的同时,使系统软件和硬件紧紧捆绑在了一起;另一方面,硬件厂商也利用平台的主导地位,打造出适合于不同类型应用的硬件平台。
比如银行业广泛采用的大型机、容错机,就是提供了一个稳定可靠的运算平台,虽然很贵而且资源冗余,但是稳定性可靠性堪称完美;再比如NCR的数据仓库解决方案,也是软硬件一体的,在数据分析方面表现出众。
各种计算机硬件都有相对的应用场景,尤其在上个世纪中后期,各类硬件平台不断进步,体积越来越小,容量越来越大,集成度越来越高,性能越来越强大。
当然,由于UNIX小型机在开放性、稳定性以及成本等方面的综合性能最佳,因此成为应用范围最广的计算机系统的硬件平台。而PC服务器虽然成本低,但因为稳定性差、故障率高、性能低等缺点,很难进入企业和大规模计算领域。
在这个过程中,发展动力主要来自两个方面:
一是摩尔定律,集成电路的突飞猛进,推动了硬件平台的发展,各类服务器都不断推陈出新,几乎每年都会推出性能更好、价格更低的新产品;
二是IT系统初建的浪潮,各单位都在发展IT,用计算机系统取代手工作业,从无到有纷纷建起来的IT系统,可谓百花齐放。由于各类应用存在差异,稳定性、安全性、业务连续性等方面的要求都各不相同,所以各种硬件都有非常好的市场空间。
说到这里,我还想到一个插曲:早些年,有人说美国为代表的海外IT系统,用的都是几十年不变的硬件和软件,表现同样很稳定;而国内总买最好、最先进的硬件设备,这不是乱花钱么?
在我理解,两者只是IT的发展阶段不同:国内IT企业发展快速,尤其是用户规模和系统复杂度远超海外运营商,所以用最新最好的服务器并没有错。而海外的IT初创阶段比国内早得多,如果系统能力满足,需求变化不大、变更成本又高,确实没有必要频繁更新设备。
所以,当美国互联网再度兴起,就对IT提出了新的需求,为云计算等一系列新科技的生长提供了土壤。
互联网是在通信和计算机网络的基础上成长发展起来的,而互联网的发展又给通信和计算机领域带来了机遇和挑战。
一个典型的例子,就是相对于传统的计算机系统,互联网需要更大规模的运算能力的同时,还希望尽可能地降低成本,所以X86服务器大行其道。
单机性能低,怎么办?靠软件堆。硬件不稳定,怎么办?靠软件来补。需求变化快,怎么办?靠软件改。云计算领域的诸多技术,就是这么被逼出来的。
互联网的初创企业都是省钱的高手,恨不得一分钱掰成两半花,因此钟爱于性价比最低的IT平台,上一轮次的受益者是SUN。而今,X86服务器逐渐成为新一代互联网公司的标配,一家没有那么多银子买机器,就以互联网的共享模式,根据实际需要租用计算能力和存储资源,这也正是催生云计算出现的源动力。
与此同时,“省钱”促成了开源技术的繁荣。从技术角度看,开放源代码,通过社区交流逐步完善,这些都是非常符合互联网发展思路的行为;但从商业角度看,免费的开源软件严重影响传统IT企业的经济效益,也抑制了传统IT企业的创新动力,让传统IT产业雪上加霜。
在诸多硬件流派中,X86拥有的成本优势无人能及,自然成为云计算技术的重点发展领域,互联网飞速发展产生的推动力,主要给了X86平台;而其他硬件由于规模大、成本高,变化空间有限,并没有多少互联网企业愿意在这上面做创新。
几年时间下来,大型机依靠安全稳定方面的优势坚守传统地盘,一部分小型机与软件深度整合发展为一体机,而更多的硬件厂商放弃了自身的发展计划。
未来的IT系统,尤其是新建系统新建能力,只能在一片片的X86服务器的基础上成长。对于绝大多数应用场景来说,将来除了X86,或许不再会有别的硬件平台可供使用。
云计算技术
基于同样的X86服务器,各家的玩法不同,催生出了不同的云计算技术。
最为大众熟悉和接受的,是虚拟化技术。所谓虚拟化,主要是将庞大的、完整的硬件资源(包括计算、存储等)分割成为较小的单元,并具备动态调整小单元的能力,如果虚拟化用得好,就可以灵活分配和及时调度计算存储资源,提高资源利用效率。
值得一提的是:虚拟化技术并不为X86所独有。事实上,在小型机上部署虚拟化软件,是目前IT系统经常采用的模式。
这是因为,单台小型机拥有的资源比X86多得多,因此在资源利用率提升方面,在小型机上部署虚拟化,往往比在X86上部署效果更好,甚至比X86具有成本优势。
比如运营商现在的系统,就是以小型机为主体,很多小的应用都跑在小型机的虚拟化软件上。
只不过,未来系统以X86为主体,就不再需要在小型机上部署虚拟化软件,更多的虚拟化场景都会转移到X86上来搞。所以,小型机的虚拟化场景会越来越少,剩下的小型机将主要是满足大的计算需求。这也就是说,传统小型机逐渐萎缩、退出,只是时间问题。
虚拟化技术是将大资源划小,那么,如何将小的资源,组合成大规模运算的平台呢?这就需要另一类云计算技术:分布式运算。
为什么说这是一类技术?虽然各家需求不一样,应用场景不同,采用的技术和策略也大相径庭,常规的网格计算、集群,以及很多互联网企业的专用技术,看似五花八门,其实万变不离其宗,解决的问题,都是如何将小的计算资源,组合成为大规模运算平台。
虽然目前虚拟化+X86的模式应用最广,但并非所有的云计算都基于虚拟化技术。其中最典型的就是Google。
作为提供搜索服务的互联网企业,谷歌需要解决的问题完全用不到虚拟化技术,相反,部署虚拟化软件将降低系统运行效率,增加成本。
因此,Google基于自己的需要进行定制化开发,先是做出企业自用的Map/Reduce和NDFS,又在此基础之上形成了经典的Hadoop平台,由“自研”到“自用”再到“产品化”,令人钦佩。
在此基础上,谷歌持续创新,乃至引发了“容器”技术革命以及Kubernetes的狂飙突进,这是后话,暂且不表。
前面提到,受互联网带来的冲击,传统硬件平台的衰退势不可当。但使用低成本的X86和免费的开源软件做出来的系统,在安全性、稳定性、资源调度与管理、系统开发复杂性等方面,就需要做更多的工作,必须通过各种工具软件和配套的管理来解决。于是,很多新技术应运而生。
评论
查看更多