第一节 什么是云计算
关于到底什么是云计算的争论持续了很多年,直到2017—2018年才有了基本统一的理解。
AWS的“互联网操作系统”
云计算的鼻祖AWS在2006年发布最初的云计算服务产品时,并没有采用“云计算”这个名字,而是以“网络服务”命名。AWS最早在2002年7月发布,最开始是服务于对外开放亚马逊电商网站的技术和产品数据,以供外部开发者和商户调用和使用,并围绕亚马逊电商网站构建应用程序,如帮助其他商户更好地在亚马逊电商网站上销售产品。2006年,AWS重新发布的时候,推出的第一个产品就是S3(简单存储服务),它是AWS最经典的产品,当时的新闻稿里是这样描述S3的:Amazon S3,面向互联网的存储。
最开始的S3的核心技术思想就是通过互联网向开发者提供存储服务:S3让基于互联网的存储服务成为可能,开发者不再需要关注到底在哪里存储数据、是否安全可靠、成本如何、存储空间是否足够等,开发者通过互联网就可以按需使用存储服务而不用自己购买、部署和维护存储服务器设备。S3在最开始发布时的价格为:数据存储服务为0.15美元/月·GB;数据传输服务为0.2美元/GB。S3的核心设计思想包括去中心化、异步机制、自治系统、本地节点质量自控、可控的并发机制、容错、可控的并行计算、对称节点、简化、化大为小而美的构建模块,这些核心设计思想都成为后来云计算系统设计的灵魂。
简单地理解,云计算就是把过去的企业IT,包括服务、存储、网络、数据库、中间件、开发工具,以及CRM、ERP、HRM等应用软件,通过互联网以网络服务的方式交付给企业用户使用。以前,企业需要先自建多个数据中心,然后购买相应的软/硬件搭建企业IT及企业IT服务,再通过内部网络服务于企业内部的各个业务部门,整个IT和IT资产全部都由企业自行投资、负担、运维。现在,云服务厂商建立数据中心,把所有的企业IT服务都形成互联网上的网络服务,再以即用即租的方式供企业使用,这就是公有云。
公有云,可以理解为社会化的共享数据中心,也是云计算的主要代表形式。公有云让企业不必投资初始的数据中心,以及后续的运营和维护,而只是像使用水和电一样从公有云厂商处租用即可。此外,由于公有云以互联网服务的方式向企业提供企业IT,那么其支持的企业IT和软件规模就从过去一个小范围区域上升到整个国家甚至全球,相应的云数据中心的组织和运营方式也与传统的中小型企业数据中心有所不同。
2018年11月26日,《纽约杂志》“Intelligencer”栏目刊登了对AWS首席执行官安德鲁·贾西(Andrew Jassy)的采访。他亲述了AWS的诞生过程。2000—2003年,亚马逊开始考虑和筹划后来的AWS,当时的起因是亚马逊网站增加了很多软件开发工程师,但开发软件项目所花费的时间和以前一样多,其原因在于仅为了部署底层的存储、数据库或计算中的一项就要花费2~3个月的时间。为了方便亚马逊内部的软件工程开发,加速亚马逊互联网服务的上线速度,亚马逊高层启动了后来被称为AWS的项目,即像亚马逊擅长运营的零售行业基础设施那样,构建与运营可靠、可扩展、高性价比的企业IT和互联网IT基础设施。2003年夏天,亚马逊的高层问了自己一个问题:如果有公司会使用这些基础设施服务从头构建应用程序,那么这是否能够形成一套“互联网操作系统”,它的关键组件有哪些?而在2003年夏天,世界上还没这样的“互联网操作系统”。亚马逊的高层当时决定:要么就不做、要做就做大。于是在时隔3年后的2006年,亚马逊才推出了AWS的第一项服务,即S3。
微软的“蓝天”
无独有偶,虽然微软(Microsoft)晚了一步才开始对云计算特别是公有云投入,但微软公有云的名称“Azure”也不是“云”的意思。Azure是“蓝天”的意思,也就是说微软Azure公有云的本意是为全世界实现这样一个“虚拟”操作系统:如果把全世界的计算设备都连在一起形成一台虚拟计算机的话,它的操作系统就是Azure。
提到微软Azure公有云,就不得不提到微软早期的两个首席软件架构师中除比尔·盖茨外的Ray Ozzie。Ray Ozzie曾接替比尔·盖茨,于2006—2010年出任微软的第二任也是最后一任首席软件架构师。在微软曾发布的关于Windows Azure(现更名为Microsoft Azure)的介绍中,提到Windows Azure的最初想法来自2005年10月的名为The Internet Services Disruption(互联网服务时代来临)的备忘录,其要点在于推动微软整体向互联网服务转型,而这份备忘录就是由当时刚加入微软不久的Ray Ozzie起草的。
Ray Ozzie在这篇纲领性文件中,记述了他针对后PC时代、面向互联网的计算架构的最基本思想。他提出了由面向服务的软件架构所实现的“无缝用户体验”,并将之解析为“无缝操作系统”、“无缝沟通”、“无缝生产力”、“无缝娱乐”、“无缝市场”、“无缝解决方案”和“无缝IT”。其中,“无缝市场”的思想已经基本由今天的电子商务网站(阿里巴巴、亚马逊、京东等)实现,全世界逐渐被几个电子商务网络所覆盖。但是,当时Ray Ozzie的其他技术思想目前仍在实现中,特别是将由公有云实现。
Azure有三个最基础的功能:计算、存储和网络通信。每个功能都通过庞大的数据中心以虚拟的方式实现。基于对操作系统最基本的了解,可知PC时代的操作系统其实就是由“计算、存储和网络通信”三个基础模块构成的。不同的是,PC时代的操作系统由CPU、硬盘和网卡对应实现这三个基础模块,而在“全球所有计算设备连接成一台巨型虚拟计算机”的终极时代,这三个基础模块分别由庞大且互联的数据中心实现。
微软Azure公有云在某种程度上就是为“天空”而生。在微软2018 Build开发者大会上,微软首席执行官萨提亚·纳德拉发表了演讲,谈到了自己对智能云与智能边缘时代的看法,其中提到“Azure正在成为一个世界计算机”,而“如果你把世界想象成一台计算机,那么开发人员就是这个数字连接世界的新力量”。
纳德拉还提道:在近30年前,时任施乐帕克研究中心(PARC)首席科学家的PARC Mark Weiser在一篇颇具影响力的论文中这样预测——在未来,计算将无处不在。这个预测正在成为现实,计算不仅仅是一个接口,还可以嵌入任何地方、任何事物,无论是家庭中还是城市中——世界就是一台计算机。
究竟什么是云计算
云计算特别是公有云,成功地让遍布世界的数据中心吸纳了全球大部分的计算和存储,而联网在一起的数据中心可以看作由计算、内存、存储、网络及互联等部分组成的一台大型计算机,公有云软件系统就是从全局的角度考虑,高效而可靠地协同各种软/硬件和网络工作,并对外为用户提供简单即用的互联网服务。
从大型机、PC、传统数据中心到云计算数据中心,全球的计算体系结构经历了从私有集中化到个人分散化再到集中化和社会化的过程。那么,什么是云计算呢?首先,云计算是针对企业IT和互联网IT的一种计算供应方式,是整个企业IT和互联网IT供应链的重组,即通过由公有云服务商统一拥有和管理的遍布全球的数据中心,为企业、政府机构的IT部门及互联网公司的IT部门提供按需付费的计算能力。
这里有两个视角。第一个视角是用户即企业、政府机构和互联网公司的角度:其不再需要自建数据中心和企业IT的能力,相应减少了固定资本和一定的可变资本,也不需要维护一个庞大的IT基础设施运维团队,更不用2~3个月才能部署一个新应用所需要的底层存储、计算或网络,企业应用开发和更新周期可以缩短到一周多次甚至一天多次,企业IT人员也可以集中精力于业务和应用创新,并且企业的IT成本也改为按使用量付费,无须在一开始就为数据中心及设备支付一大笔固定费用。
第二个视角是公有云服务商的角度:对于公有云服务商来说其实是要建设一个全社会共享的计算基础设施,AWS一开始也确实是从这个角度切入的,即数据中心的资产所有权从企业让渡到公有云服务商手里,由公有云服务商统一管理和运营,公有云服务商在此基础上再开发让多个租户共享使用计算能力的软件,这就是公有云的“操作系统”,即前面提到的“互联网操作系统”。
那么,谁有能力建成一个全世界共享的“计算机”呢?IT系统是人类社会秩序的映像,如果人类社会都无法统一成一个地球村,则不会出现一个真正的全社会共享的统一计算基础设施。因此,抛开不同的云计算技术而言,云数据中心的建设者也无法统一为某一家云服务商,而是像各国电信网络一样既有顶级和一级运营商,也有二、三、四级运营商,形成一个既有商用属性又有公用事业基础设施属性的新型数字基础设施网络。