云计算到底是谁发明的?
说到云计算的起源,公众普遍认为,谷歌前CEO埃里克·施密特是云计算概念的第一个提出者。
2006年8月9日,在搜索引擎大会(SES San Jose 2006)上,他提出了“云计算(Cloud Computing)”的概念。
埃里克·施密特(Eric Schmidt)
也有人认为,当今云计算市场的龙头老大——美国亚马逊(Amazon)公司,在更早的2006年3月,就正式推出了自家的弹性计算云(Elastic Compute Cloud,EC2)服务,是事实上的云计算开创者。
其实,准确来说,不管是谷歌还是亚马逊,都不是云计算的发明人。云计算概念的提出,远比我们想象中要早得多。
今天这篇文章,我们就针对云计算来一次彻底的“寻根问祖”。
▉ Part.1 公共计算——云计算理论的萌芽
大家应该还记得,我们的计算机通识课本里说过,世界上第一台电子计算机是ENIAC(埃尼阿克)。
Electronic Numerical Integrator And Computer
电子数字积分计算机
其实,严谨来说,ENIAC只能算是世界上第二台电子计算机。在它之前,还有一台名叫阿塔纳索夫-贝瑞(Atanasoff–Berry Computer)的计算机,简称ABC计算机。只不过这台ABC计算机不可编程,所以ENIAC是第一台通用电子计算机。
ENIAC的出现,宣告了计算时代的开始,从此人类打开了计算机世界的大门。
像ENIAC这样的早期计算机,体型巨大、耗资昂贵,计算能力也非常有限。最重要的是,它缺乏多用户能力,同一时间只能被一个人占用。大家都想用的话,只能排队。
1955年,美国麻省理工学院(MIT)的约翰·麦卡锡(John McCarthy)教授提出了time-sharing(分时)的技术理念,希望借此可以满足多人同时使用一台计算机的诉求。
约翰·麦卡锡(1927-2011)
这个约翰·麦卡锡大家应该很眼熟,没错,他就是Artificial Intelligence(AI)概念的提出者,世界公认的人工智能之父,后来在1971年获得了图灵奖。
无独有偶,1959年6月,英国计算机科学家克里斯托弗·斯特雷奇(Christopher Strachey)在国际信息处理大会上,发表了一篇学术论文,也是关于大型机共享使用的,名字叫做《大型高速计算机中的时间共享(Time Sharing in Large Fast Computer)》。
克里斯托弗·斯特雷奇(1916-1975)
在这篇论文中,虚拟化的概念被首次提出。现在我们都知道,虚拟化是如今云计算架构的基石。当时那篇论文,绝对堪称“惊为天人”。
到了1961年,又是咱们的大神约翰·麦卡锡,在麻省理工学院一百周年纪念庆典上,首次提出了Utility Computing(公共计算服务)的概念:
“如果我设想的那种计算机(注:即分时计算机,同时支持多人同时使用的计算机)能够成真,那么计算或许某天会像电话一样被组织成公共服务…… Utility Computing(公共计算服务)将是一种全新的重要工业的基础。”
这个Utility Computing的翻译,其实行业里存在一定的争议。Utility有“公共服务、实用、效用”的意思,有人把它翻译成公共计算,也有人翻译成效用计算。
麦卡锡的理念,其实借鉴了传统的电厂模式。
说白了,就是把计算资源当作是一种像电一样的能源资源。用户可以像把灯泡插入插座一样,随时随地使用计算资源,并根据使用量进行付费。
受麦卡锡观点的影响,麻省理工学院和DARPA(美国国防高级研究计划局)下属的IPTO(信息处理技术办公室)共同启动了著名的MAC(Multiple Access Computing)项目。DARPA还专门提供了约200万美元的项目津贴。
MAC项目的目标,就是开发“多人可同时使用的电脑系统”。实际上,这就是“云”和“虚拟化”技术的雏形。
1964年,大西洋月刊发表了一篇题为《The Computers of Tomorrow(明日计算机)》的文章,详细分析了公共计算服务与公共电网的异同点。
文章指出,计算想要成为像电网那样的公共服务,需要关注三个问题:
接口——用户如何和资源进行对接?服务设备——用户通过什么设备将资源转换成服务?产品同质性——电总归是电,而计算是一种复杂的服务,存在多样性,存在不同的编程语言和硬件,如何兼容、交互?
1965年,在《The Computers of Tomorrow》的影响下,MAC项目组开始开发Multics分时多任务操作系统。在这个过程中,GE(通用电气)被选为硬件供应商,IBM出局。贝尔实验室后来也加入到MAC的软件开发中。
1965年,从MAC中出局的IBM开始研发CP-40/CMS分时操作系统,该系统于1967年发布,是历史上第一个虚拟机系统。
1969年,受不了Multics缓慢进展的贝尔实验室从MAC项目退出,开始开发Unix操作系统(1970年问世)。
1969年,在约瑟夫·利克莱德(J.C.R.Licklider,IPTO负责人)的推动下,ARPA(国防部高级研究计划局)研究的计算机网络ARPANET诞生。
我相信大家都认识ARPANET,没错,这就是后来的Internet。
约瑟夫·利克莱德(1915-1990)
自此,云计算所依赖的三大底层技术全部出现了:
用于管理物理计算资源的操作系统用于把资源分给多人同时使用的虚拟化技术用于远程接入的互联网
▉ Part.2 网格计算——云计算理念的复苏
虽然云计算基础技术纷纷出现,但20世纪70-80年代,人们沉浸于PC市场的繁荣,主要精力都放在了软件和网络上,进而忽视了对Utility Computing的关注。
1984年,SUN公司联合创始人John Gage(约翰·盖奇)提出 “网络就是计算机(The Network is the Computer)”的重要猜想,用于描述分布式计算技术带来的新世界。云计算,其实就是分布式计算的一种。
约翰·盖奇
然而,人们仍然没有对云计算引起足够的关注。
直到90年代,云计算相关的理念重新回到了人们的视野。不过这次它换了一个更简单的名字,叫做网格计算(Grid Computing)。
网格(Grid)的叫法,和我们日常理解的“网格化管理”有很大不同,它是直接照搬自电网的概念(Electric Power Grid)。它的本质目的,还是把大量机器整合成一个虚拟的超级机器,给分布在世界各地的人们使用,也就是公共计算服务。
1996年,康柏(Compaq)公司的一群技术主管在讨论计算业务的发展时,首次使用了Cloud Computing这个词,他们认为商业计算会向Cloud Computing的方向转移。
1996年11月14日,康柏公司关于cloud computing的商业计划
这是Cloud Computing(云计算)概念的真正首次出现。
1997年,美国教授Ramnath K. Chellappa对“Cloud Computing”这个词做出了首个学术定义:“计算边界由经济而并非完全由技术决定的计算模式”。
拉姆纳特·K·切拉帕(印度裔)
此后的云计算发展,掀起了一股小高潮——
1997年,InsynQ基于HP的设备上线了按需使用的应用和桌面服务。
1998 年,VMware公司成立,并首次引入 X86 的虚拟技术。同年,HP成立公共计算部门。
1999 年,MarcAndreessen创建LoudCloud,是世界上第一个商业化的IaaS平台。
同年,salesforce.com公司成立。这家公司是目前公认的云计算先驱,创始人是几个Oracle公司前高管。
公司成立之初,他们就喊出了“No Software”的口号,宣布开启”软件终结“革命。
他们通过自己的互联网站点向企业提供客户关系管理(CRM)软件系统,使得企业不必像以前那样通过部署自己的软件系统来进行客户管理。这就是最早的软件即服务(SaaS)模型。
2000年,Sun公司发布 Sun cloud。
2001年,HP公司发布公共数据中心产品。
……
此时此刻,云计算已经是呼之欲出了。
▉ Part.3 亚马逊&谷歌——云计算的正式诞生
2000年,当时美国电子商务公司Amazon正在开发电商服务平台Merchant.com,旨在帮助第三方公司在Amazon上构建自己的在线购物网站。
不过,因为架构设计能力和管理流程等方面的问题,这个项目进展缓慢。
于是,亚马逊的管理层开始考虑,是不是可以将已有的代码进行解耦,设计成独立的API服务,然后让内部或外部应用进行服务调用。这样,既可以节约后续的开发工作量,也可以增强系统的灵活性和复用度。
由此,2002年亚马逊启用了Amazon Web Services(AWS)平台。当时该免费服务可以让企业将Amazon.com的功能整合到自家网站上。
2003年,安迪·杰西(Andy Jassy),当时杰夫·贝索斯(Jeff Bezos,亚马逊创始人)的秘书长,现在AWS的CEO,在贝索斯的家里召开了一次管理层会议。会上,大家决定要把应用开发的通用部分抽离出来,做一个公共基础设施服务平台,让内外部开发者可以基于这个平台开发自己的应用。
安迪·杰西
随后,他们整理了一系列可以成为公共服务的候选模块,并从中挑了服务器、存储和数据库三个部分开始。不仅因为这三个需求最多,还因为Amazon最擅长这部分,毕竟低利润率商业模式让他在如何降低数据中心的运营成本上颇有积累。
2006年,亚马逊推出了两款重磅产品,分别是S3(Simple Storage Service,简单存储服务)和EC2(Elastic Cloud Computer,弹性云计算),从而奠定了自家云计算服务的基石(直至今日都无人可以撼动)。
在那一期间,谷歌其实也没有闲着。这家诞生于1998年的年轻公司,在2003~2006年期间,连续发表了四篇重磅文章,分别关于分布式文件系统(GFS)、并行计算(MapReduce)、数据管理(Big Table)和分布式资源管理(Chubby)。
这些关键技术不仅奠定了谷歌自家的云计算服务基础,也为全世界云计算、大数据的发展指明了方向。
2006年,27岁的Google高级工程师克里斯托夫·比希利亚第一次向Google董事长兼CEO施密特提出“云端计算”的想法。在施密特的支持下,Google推出了“Google 101计划”,并正式提出“云”的概念。
克里斯托夫·比希利亚
后来《财富》杂志10大最具头脑人物授予其“最聪明的工程师”称号
于是,就有了本文开头施密特发表的讲话。
至此,云计算揭开了神秘的面纱,正式来到了公众的面前。随后的云计算,进入了快速发展阶段,并最终渗透到了我们工作和生活的各个领域。