1.1 云计算概述
1.1.1 什么是云计算
一直以来,云计算(Cloud Computing)的定义也如同它的名字一样,云里雾里,说不清楚。维基百科里是这样定义的:是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其他设备。以前,我们的信息处理(计算)是由一个实实在在的计算机来完成的,它看得见,摸得着。后来,随着计算硬件、网络技术、存储技术的飞速发展,人们发现,每个人独自拥有一台计算机似乎有些浪费,因为它大多数时候是空闲的。那么,如果将计算资源集中起来,大家共享,类似现代操作系统那样分时复用,将是对资源的极大节省和效率的极大提升,经济学上的解释也就是边际效应(成本)递减。科技行业的发展,根源也是经济利益的推动。在这样的背景下,云计算应运而生了。它就是把庞大的计算资源集中在某个地方或是某些地方,而不再是放在身边的那台计算机了;用户的每一次计算,都发生在那个被称为云的他看不见摸不着的某个地方。
以CPU为例,图1-1和图1-2摘选了从2000年到2017年上市的Intel桌面CPU的参数(主频、核数、LLC、制造工艺),从中可以大概看到CPU处理能力的飞速提升。它的另一面也就意味着,个人单独拥有一台计算机,从资源利用效率角度来看,被大大闲置了的。
图1-1 Intel CPU处理能力的主要参数
图1-2 Intel CPU LLC的发展及制造工艺的演进
1.1.2 云计算的历史
正式的云计算的产品始发于2006年,那年8月,亚马逊(Amazon)发布了“弹性计算云”(Elastic Compute Cloud)。2008年10月,微软宣布了名为Azure的云计算产品,并在2010年2月正式发布Windows Azure。Google也从2008年开始进入云计算时代,那年4月,其发布了Google App Engine Beta,但直到2013年12月,其Google Compute Engine对标AWS EC2才正式可用。
2010年7月,NASA和Rackspace共同发布了著名的开源项目Openstack。
从国内来看,2009年,阿里巴巴率先成立了阿里云部门,一开始只对内服务于其自身的电商业务,如淘宝、天猫。2011年7月,阿里云开始正式对外销售云服务。
无论是国内还是国外,云计算的市场都快速发展。“Amazon把云计算做成一个大生意没有花太长的时间:不到两年时间,Amazon上的注册开发人员达44万人,还有为数众多的企业级用户。有第三方统计机构提供的数据显示,Amazon与云计算相关的业务收入已达1亿美元。云计算是Amazon增长最快的业务之一。”国内的阿里云也在2013年以后快速蓬勃发展。无论是国际巨头AWS(亚马逊)还是国内的阿里云,这些年都是快速增长,尤其阿里云,虽然体量暂时还远不及AWS,但一直都是超过100%的增长,让人侧目,如图1-3所示。
图1-3 云计算营收对比:2013—2017年度亚马逊AWS和阿里云
1.1.3 云计算的几种服务模型
“云计算是推动IT转向以业务为中心模式的一次重大变革。它着眼于运营效率、竞争力和快速响应等实际成果。这意味着IT的作用正在从提供IT服务逐步过渡到根据业务需求优化服务的交付和使用。这种全新的模式将以前的信息孤岛转化为灵活高效的资源池和具备自我管理能力的虚拟基础架构,从而以更低的成本和以服务的形式提供给用户。IT即服务将提供业务所需要的一切,并在不丧失对系统的控制力的同时,保持系统的灵活性和敏捷性。”
云计算的模型是以服务为导向的,根据提供的服务层次不同,可分为:IaaS(Infrastructure as a Service,基础架构即服务)、PaaS(Platform as a Service,平台即服务)、SaaS(Software as a Service,软件即服务)。它们提供的服务越来越抽象,用户实际控制的范围也越来越小,如图1-4所示。
图1-4 云计算服务层次模型
1.SaaS,软件即服务
云服务提供商提供给客户直接使用软件服务,如Google Docs、Microsoft CRM、Salesforce.com等。用户不必自己维护软件本身,只管使用软件提供的服务。用户为该软件提供的服务付费。
2.PaaS,平台即服务
云服务提供商提供给客户开发、运维应用程序的运行环境,用户负责维护自己的应用程序,但并不掌控操作系统、硬件以及运作的网络基础架构。如Google App Engine等。平台是指应用程序运行环境(图1-4中的Runtime)。通常,这类用户在云环境中运维的应用程序会再提供软件服务给他的下级客户。用户为自己的程序的运行环境付费。
3.IaaS,基础设施即服务
用户有更大的自主权,能控制自己的操作系统、网络连接(虚拟的)、硬件(虚拟的)环境等,云服务提供商提供的是一个虚拟的主机环境。如Google Compute Engine、AWS EC2等。用户为一个主机环境付费。
从图1-4中可以看到,无论是哪种云计算服务模型,虚拟化(Virtualization)都是其基础。那么什么是虚拟化呢?