1.2 “云”从哪里来?
随着云计算的理念逐渐向前发展,虚拟机(VM)的概念被提出。使用虚拟化技术可以在隔离的环境中同时执行一个或多个操作系统。完整的计算机(虚拟)实例可以在一个物理硬件内执行,而物理硬件又可以运行多个完全不同的操作系统。
从20世纪70年代到20世纪90年代,云计算所需的基础技术取得了许多进步。例如,计算机巨头国际商业机器公司(以下简称IBM)在1972年发布了支持虚拟化的操作系统。20世纪90年代,美国的一些电信公司开始提供虚拟专用网络(VPN)服务。
在那个年代,各个研究机构一直使用日益复杂且不断变化的大型计算机系统来处理数据,当时的大型计算机不仅体积巨大(一台计算机就要占据几个房间),而且价格昂贵得令人望而却步。因此当时很多机构采用“时间共享”的方法来提高计算机的利用率。通过对使用时间进行分配,让多个用户可以在不同时段连接到同一台大型计算机上工作,这不仅充分利用了硬件设备,还可以让那些无力购买大型计算机的小型企业、研究机构获得使用大型计算机的机会。这种可以共享计算的能力类似于现在“资源池”的概念,这也是构建“云”的基本前提。
前一节介绍了云计算的来历,使大家认识到云计算是随着计算机技术的发展、演进而产生出来的,但是并没有解释为什么云计算是最终的必然结果,即没有解释为什么这些技术发展到最后一定会出现云计算,这一节将从业务需求的角度来谈谈为什么会必然产生云计算这个服务。
1.2.1 从资源池化说起
前面介绍了计算机计算服务的演进过程,这一节开始说说服务器硬件和架构的变化。从技术架构变迁上看,服务器架构的变化可以分为4个阶段,分别是普通服务器阶段、小型机阶段、资源池化阶段和虚拟化容器阶段。
普通服务器阶段的服务器模型架构最为简单,一般只有一台服务器,安装操作系统并运行一些程序代码,维护工程师也只有一两个人,甚至在最早的时候,服务器上只运行着操作系统、数据库和程序逻辑代码等。这种模式有一荣俱荣、一损俱损的特点,也就是俗话说的把鸡蛋都放到一个篮子里,这时候使篮子不翻掉就成了工作的重中之重,因为一旦篮子被打翻,所有服务都会停摆。
普通服务器阶段之后就进入了小型机阶段,小型机是一种服务器的类型,并不是个头比较小的计算机。当时有原Sun微系统公司(以下简称Sun)的Solaris系统的机器(见图1-4)、惠普研发有限合伙公司(以下简称HP)的UNIX小型机,以及最畅销的IBM的UNIX小型机。这些小型机厂家使用定制硬件运行UNIX的定制修改版本,在上面运行一些单独的逻辑,也就是有了初步的分布式计算系统模型。同时小型机还具备了容灾、冷备的能力。通常是有两组服务器,分别放置在不同的机房,各自运行一半生产应用,极端情况下,实现应用切换,即一组服务器异常的情况下,切换至另一组服务器全量运行。
图1-4 Sun的Solaris小型机
小型机服务较为稳定,且看上去也有初步的分布式计算模型,为何后来逐渐被资源池化技术取代了呢?这还要从互联网行业的兴起说起,小型机价格相对昂贵,且服务的维护成本较高,互联网公司初创的时候由于资金原因,服务器通常采用的是开源免费的技术架构,如LAMP架构(Linux、Apache、MySQL、PHP),而非收费产品架构。
在服务器的选择上,昂贵的小型机并不是个好的选择。于是由互联网公司开始的x86架构的服务器化对应用带来的影响巨大,这个领域以谷歌公司(以下简称谷歌)为代表的企业提供了很多分布式解决方案,同时开源开始大行其道,各家企业都开始在应用软件产品中使用开源。其中因为x86服务器化导致机器集群数量急剧上升,资源池虚拟化技术开始得到大规模应用。这个时期,运营商普遍都建立了x86服务器的资源池,划分虚拟化的机器供应用部署并支撑其运行。资源池虚拟化是打破计算资源底层机器限制并对资源重新分配单元的方式,为应用部署带来很大的灵活性。同时应用系统再也不用一开始就估算主机资源,预先采购,之后再去部署运行了。计算资源池化后,上层应用对底层计算机的加入没有感知,只需要按照虚拟化的方式分配计算资源即可。
资源池化技术发展到一定阶段后,虚拟化技术又有了进一步的提升,因为普通池化技术除了要运行程序逻辑之外还需要运行操作系统,这样一来虚拟化的成本就提升了,基于这一考虑,资源池化技术进行了一次技术升级,使用比操作系统更小的虚拟化容器进行服务的包装,这就好比去市场买鱼,以前的整机虚拟化技术是无论大小都要购买整条鱼,现在的办法则是可以根据用户需求售卖一小块鱼肉,且根据用户的口味会有各种定制的细分产品,如鱼肉、鱼腩、鱼鳔等。到了这一阶段,鱼身上的每部分都可以售卖且变得有价值。这就是虚拟化容器阶段的特点。
1.2.2 虚拟化是什么?
前面谈了很多虚拟化的内容,那么到底什么是虚拟化呢?可以这么说,虚拟化是利用一些组件(如网络组件、存储组件等)创建基于软件表现形式的过程。虚拟化是对硬件资源进行池化后的抽象概念,如图1-5所示,最下方是不同的硬件设备,通过虚拟化管理程序(Hypervisor)将其抽象为虚拟的硬件设备,在虚拟硬件上创建的计算机就是虚拟机(VM),工程师不再直接管理实际硬件,而是对虚拟机进行操作和管理。
虚拟化可以分为几种类型,最常见的是服务器虚拟化,它支持把服务器变成一个虚拟机的控制中心,在这些虚拟机上可以安装不同的操作系统,也就是使一台服务器变成多台不同操作系统的服务器。其次是网络虚拟化,即在虚拟机内部设立一个局域网,专门用于虚拟机之间的通信,当然也可以和虚拟机之外的网络进行通信,在虚拟机内部应用程序不会感觉到自己运行在一台虚拟机上。第三种常见的虚拟化应用场景是桌面虚拟化,它实现了把桌面变成一种云上可访问的虚拟化资源,一般可以为企业的IT部门提供员工统一接入方案,在另外的一些场景中,这种虚拟化技术可以用于手机的测试,例如,虚拟化安卓手机用于执行各种有一定风险的测试工作等。
图1-5 虚拟化的原理
使用虚拟化技术让计算机硬件的可用性得到大幅提升。也正是因为有了这种虚拟化技术,才可以最终完成把硬件服务打包卖给云服务供应商,再由云服务供应商卖给每个用户这一过程。需要注意的是,虽然虚拟化技术和云计算技术高度相关,很多云服务中会使用虚拟化技术作为后台的实现方案。但脱离了云服务,虚拟化技术也可以单独使用。
1.2.3 触手可及的宽带网络
家用互联网从2014年开始进入百兆时代,之后就是移动互联网的时代了。2015年,阿里巴巴网络技术有限公司淘宝网(以下简称淘宝)在“双十一”的时候发现移动端用户访问数量已经远超桌面计算机。
移动互联网时代到来有两个最大的“功臣”,第一个是苹果公司(以下简称苹果),第二个是高通公司(以下简称高通)。苹果公司率先推出了全触屏手机,这一设备是有划时代特性的,在这之前,广大手机厂商还在纠结到底是全尺寸键盘还是9键键盘好,屏幕是推拉隐藏好还是旋转隐藏好,如果一个没有经历过那个时代的人看到当时的手机,会感觉那是一个需要使用说明书和培训才能使用的科研仪器。苹果公司改变了这一切,从此以后各个手机厂商都推出了触屏手机,便捷的操作方式大大降低了使用门槛。当然,只有手机还是不够的,有了手机之后,移动互联网又成了一种必需,高通公司在CDMA技术的基础上开发了一个数字蜂巢式通信技术,第一个版本被规范为IS-95标准。后来开发的新产品包括IS-2000和1x-EVDO。
高通公司曾开发和销售CDMA手机和CDMA基站设备,是全球二十大半导体厂商之一。作为一项新兴技术,CDMA、CDMA2000风靡全球并占据了20%的无线市场。截至2012年,全球CDMA2000用户超过2.56亿,遍布70个国家的156家运营商已经商用3G CDMA业务。包含高通授权LICENSE的苏州安可信通信技术有限公司在内,全球有数十家OEM厂商推出EVDO移动智能终端。由于它的存在,移动上网有了飞速发展,现在用户使用的4G网络速度已达百兆,即将到来的5G时代,移动互联网网络速度将达到千兆。这样一来,很多原来需要在移动设备上进行的计算工作都可以通过网络进行传输,把计算交给遥远的服务器来完成。5G时代的另一个标志就是万物互联,所有设备都可以通过5G芯片高速连接到互联网上。表1-1展示了移动网络的代际发展。
表1-1 移动网络的代际发展
1.2.4 技术的发展让云成为必然
在高速宽带的加持之下,用户可以方便地访问到各种数据,同时借助网络的力量把计算工作交给远在天边的服务器来完成,而资源池化和虚拟化又可以有效地调度和分配计算机的计算资源,让计算资源可以很好地被发挥出来。这样一来云时代终于到来了,云时代的计算机可以像水、电和煤气一样按需使用,通过互联网这个管道输送到任何需要的地方。