新闻动态

云计算简史

2020-11-06 15:21:58 6

围绕云计算相关的技术领域、技术名词和技术产品令人眼花缭乱。在云计算发端之初,应用开发环境还比较简单,当时还有所谓的全栈工程师存在,意味着如果不考虑开发周期,一个人就能搞定整个应用软件。今天,这个称谓已经名不符实。很少再有一个人,甚至一个企业能够全面掌握和云计算有关的所有技术栈。他们可能会应用旁人完成的一些成果,结合自有的一些专有经验,来形成在某个细分市场有竞争力的产品,或者为客户交付期望的产出。

即使作为纯粹的应用者,要想全面了解和云计算有关的技术,做到合理架构,恰当选型,顺利完成集成开发和部署的全过程,也都比过去难得多,需要的技术人才也比过去昂贵。坦率来说,在当下的人才竞争度下,一般行业的企业,即使拥有信息部门,也都不太可能独立驾驭这样复杂的开发设施,他们将不得不广泛依赖云计算平台提供的服务。这给软件行业的解决方案商带来了新的市场机会。谁能够为数字化转型企业提供友好的应用开发和部署环境,谁就能够获得和保有客户。

这篇长文主要面向大中型企业的技术和非技术管理者。我通过描绘云计算技术和市场领域的发展过程,介绍关键技术和市场里程碑,包括不同技术域下的核心开源项目,让企业能够对云计算发展历史和相关技术域有一个通盘的了解。有了通盘的认知,你会更容易看透本企业应该怎样利用云计算,未来可能的市场机会和挑战在哪里?

本文受到Tom Siebel 2019年出版的Digital Transformation一书的启发,但我尽量结合了中国市场的实际情况通俗地来讲述。

云计算市场的形成和结构

我们今天能够享受经济和便捷的云计算服务,主要来自两大动力,一是计算资源的虚拟化技术,二则是规模经济效应。前者发端于2000年后VMWare推出的Hypervisor虚拟化软件,它不再依赖一个母体操作系统,就允许用户将硬件和网络资源划分成多个单元,从而实现计算资源的池化、共享和按需调度。

2006年,Amazon推出了S3对象存储服务和SQS简单队列服务,开创了公共云计算服务的先河。在此后,微软,IBM,谷歌,中国的阿里,腾讯和华为等都陆续加入了公共云服务的市场,提供的服务也从基础计算资源扩展到数据库、人工智能、物联网等多个技术领域。目前,这个行业已经成长为年收入2500亿美元的巨大市场。

在这十多年的发展过程中,当然出现了很多的公司,产品和服务,但是概括起来这些事物的涌现基本沿着两条明显的路线在进行:

趋势一:从基础设施,到应用,再到应用相关的平台服务

基础云 (Infrastructure as a Service)

最早的云计算服务就是最基础的云主机(Virtual Machine),服务商把裸金属装上Hypervisor,把计算和网络资源分块后就可以卖了。随后,基础服务被拆分为主机、存储、网络、数据库和安全等几个重要的基础云产品,允许用户灵活组合,并实现了弹性计费(目前国外基础云厂商大多都提供按分钟或按秒的计费精度,存储则可以按月计费,比如AWS的S3服务每GB数据的标准存储月费在0.0125美元,而深度归档存储的每GB月费可以低至每GB0.001美元)。

我们一般把主机,存储,网络,数据库和安全相关的计算服务统称为基础云服务。在这些服务之上,开发者需要完成所有的技术栈搭建,构建自己的数据架构,开发编码,部署运维,最终才能实现云端应用。而初代的云计算客户大多数都是互联网公司。他们并非云服务的最终消费者,而是生产者。

云计算简史1

应用即服务(Software as a Service)

和Amazon Web Services几乎同时起步的另外一家公司Dropbox是一家面向个人和团队提供文件存储和共享服务的创业公司。赶上了AWS起步的时候,Dropbox就直接使用了AWS现成的S3对象存储服务,这让一家团队人数很小的初创公司有机会能够聚焦在应用开发和营销上,让Dropbox通过短短的几年时间发展成市场份额第一的文件共享应用。和Dropbox类似的大票SaaS企业大多也都是在随后的十年内陆续出现,他们千篇一律都使用了云计算平台的服务,而不再自建基础设施。这当中也包括一个超级大用户“奈飞“(Netflix),他们的下行流量占到整个互联网下行流量的15%之多,也是AWS的客户。

我们创办的明道协作应用诞生在2011年,也正好赶上了中国云计算平台开始的年份,所以我们也避免了很多基础设施的建设工作。广义来说,最早的云服务在基础云公司之前就出现了。1999年创办的Salesforce,就是一个典型的SaaS公司,只不过当年没有这样的行业术语。2016年,据说Salesforce也已经成为了AWS的客户。因为SaaS服务形式的存在,使得云计算能够间接提供服务给大量的中小企业和非互联网行业企业。今天,几乎所有的企业都或多或少应用一些SaaS服务。

云计算市场发展的第一波主要由互联网企业用户带动。他们具备比较完整的开发和自助运维能力,而且也有日益增长的用量,属于基础云服务最理想的客户群体。直到今天,阿里云和腾讯云的主要客户群体依然是泛互联网行业。

SaaS企业是云计算基础服务的重要推动者,虽然这个门类和2C的网络服务相比,贡献的经济价值要小得多,但是他们深谙企业市场的需求,推动了云计算平台的应用开发环境日益成熟。这就是趋势的下一步:平台即服务。

(开发)平台即服务(Platform as a Service)

所谓平台即服务,特指开发平台。应用开发工作从本地迁移到云端,自然需要在云计算环境中提供对应的更优解决方案。所以过去传统的中间件市场陆续发生变迁,逐一转换为在云计算平台上的某项服务。比较常见的开发平台服务包括:

通讯:提供音视频通信、消息推送、短信、邮件等服务

地理信息:提供地图、定位、导航相关的服务

应用开发框架:提供应用开发环境和运行时环境

媒体服务:提供图片和音视频等媒体文件的编码、加工和存储服务

机器学习框架:提供面向AI应用开发者的机器学习数据标注和模型训练平台

小到发送一条验证码短信也是一项PaaS服务。

作为PaaS服务,主要是为开发者服务的,所以除了功能性服务以外,PaaS厂商也要提供开发友好性相关的周边能力,比如弹性扩展的能力,调试和控制权限的能力等。参与的开发者越多,一项PaaS服务就能够有更多的改进机会和摊低的平均成本。

PaaS服务是不是一定由独立的PaaS厂商来提供呢?不一定。实际上,主流的PaaS服务大多被IaaS公司所覆盖了。如果你打开阿里云的产品列表,在数百个产品中,你会发现基础云服务只是其中一个门类,其他十几个门类都是和开发环境有关的服务。这意味着,一家创业公司想要独立成为一家成功的PaaS厂商,需要相当聚焦地执行,而且产品有明显的技术领先度。一旦做到这一点,也不用担心和基础云公司的竞争,因为我后面会讲到云计算市场的技术发展,其中已经有众多的技术趋势保障了独立性PaaS公司建立跨云服务的独特优势。

以上说的是云计算服务过去十五年发展中的一条脉络,从基础云到应用的共生,再到日益丰富的开发平台即服务。云计算覆盖的用户越来越多,依赖的是这三个层次的服务互为补充。

趋势二:从公共云、私有云到混合云,再到多云

第二条脉络有关云计算服务的部署模式(Deployment Model)。当云计算概念被提出时,它显然指的就是公共云服务,客户不需要保有任何基础设施,直接像水电煤一样使用云计算资源就可以。但是商业的现实和技术企业的理想之间总是存在沟壑。云计算到底是技术还是服务,在很长一段时间内是缺乏共识的。

在云计算服务开启之前,很多大型企业和组织都有自己的服务器。2010年,全球服务器市场就有500亿美元的规模,这些服务器大多数都卖给了企业和政府。企业拥有了这些基础设施,难道再花钱买公共云服务吗?既然云计算技术这么好,为什么我自己来实现呢?政府、金融、医药等行业客户更加不可能在公共云计算服务诞生的初期就义无反顾地采纳,他们有各种各样所谓的合规要求。

私有云 (Private Cloud)

果不其然,有需求就有供给。2010年Rackspace和NASA公开了一个叫做OpenStack的开源项目组。它包含了一系列用于构筑云计算服务的开源软件。这意味着,所有拥有硬件基础设施的用户都可以用很低的成本来实现和AWS类似的技术架构。Rackspace是一家IDC公司,它这么做的动力显然是很强的。它认为只要帮助客户解决虚拟化问题,自己的主机托管生意一样可以兴旺发达。

虽然软件是开源免费的,但是要实施Open Stack依然需要云计算相关的专业知识。因此,从2010年开始,出现了很多基于OpenStack帮助企业建立私有云的服务商。在国内,公共云服务商甚至都提供过这类服务。十年过去了,这股由OpenStack带起的私有云风潮基本告一段落。除了极少数大型用户在经济上能够承受自己维护独立的云计算平台,绝大多数用户根本无法得到经济上合理的回报。虚拟化只是云计算服务的一个技术前提,但并非所有的价值。私有云方案永远无法利用到资源弹性利用(可大可小)和真正的规模经济效应,除非用户根本不关切经济理性。

openstack

在中国市场,重点行业可能至今依然无法使用商业云服务,但是电信运营商和一些国家级的科技企业也在公共云服务商的帮助下建立了各种行业云。比如移动云,联通云和电信天翼云都是这样形成的,他们为金融、政府、交通、教育等重点行业提供公共云服务。

故事到这里,似乎公共云已经大获全胜。但是,商业现实又回来了。在越来越同质化的云计算服务市场,客户难道完全没有议价能力吗?客户的需求如果不能得到满足,总有供应商会愿意创新。于是混合云(Hybrid Cloud)出场了。

混合云 (Hybrid Cloud)

其实混合云并不是什么独特的云计算技术,它实质上是一组通讯服务。只要堆上足够好的网络设备和奢侈的专线连接,世界上任何地点的计算设备都可以组成高速专网。即便客户预算有限,只要对安全性和连通性的要求没有那么高,也可以自助搭建经济的VPN网络。围绕通过商业网络连接组建混合云的技术被称之为“SD-WAN”(软件定义广域网)。有了网络连接,就可以把客户自有的计算设施和公共云计算设施连接在一起,称之为“混合云”。

混合云对客户的好处是明显的。首先,每个企业都可能有云计算基础用量,但也可能有短期的激增需求。有了混合云,客户就可以围绕自己的基础用量采购自有IT资产,自己运营私有云,而短期波动的增量则可以通过公共云服务满足,等需求高峰过去,就可以去掉这部分的开支。企业也可以将运维难度比较低的基础云服务保留在自己的设施内,而同时使用公共云提供的复杂计算服务,比如机器学习平台等。Dropbox是一个大规模的SaaS应用,它在2016年做了很大的架构调整,大部分的服务不再使用AWS的公共云,一举节省了7000万美元的年度云计算开销。

混合云策略现在已经得到了厂商和客户的双重支持,它终结了公共云和私有云非黑即白的争议,让整个IT产业更加务实。这其中也诞生了很多的商业机会。微软,亚马逊,IBM,Google等领先的云计算厂商都推出了自己的混合云解决方案。因为混合云方案主流化,云计算厂商的竞争开始从基础云资源的成本向应用开发生态环境迁移。因为在混合云架构下,客户面临如何规划流畅的数据连接,如何快速交付云原生应用的新挑战。所以,云计算的终极竞争不是硬件的竞争,也不是软件的竞争,而是应用开发和部署(AD&D)环境的竞争。

多云 (Multi-Cloud)

多云概念是云计算市场最近几年出现的概念。它把所有的云计算平台,客户的私有云设施全部视作一般基础设施。所有的应用在所有的云上都能一致并可靠地运行。多云解决方案不仅是基础设施提供者需要协调的,更重要的是应用开发和部署要面向多云运行目标。

2013年,Y Combinator孵化企业Docker Inc开源了Docker项目。它成为应用跨云部署的重要前提。Docker允许用户将复杂的应用、数据和依赖的环境,包括操作系统本身打包到一个“容器”中,通过标准的Docker引擎,在任何计算环境中都可以一致地运行。有了这项技术,把一个应用系统从阿里云转移到腾讯云就和传输一个文件一样简单,云和云之间已经没有边界。为什么Windows和mac OS的应用永远不兼容,而云计算厂商却眼睁睁地看着这些事情发生呢?很简单,因为整个云计算技术生态都建立在开源软件上,亚马逊再大,它也只是一个服务提供者,收的是租金。而客户方,则越来越看重自主可控性,他们不希望被单一的云计算公司锁定,毕竟自己的客户和交易数据都运行在云计算上,它是所有企业的命脉了。

docker

2015年,Google开源了Kubernates项目,让多云解决方案更胜一筹。K8S能够对容器的创建、扩展等进行自动编排。这意味着无论应用有多么复杂,它都能够在多云环境中进行统一运维。比如自家的某种类型存储用完了,就可以临时购买一些亚马逊的存储。数据过时了,就定期自动地转移到低价格的冷存服务中。

有了多云技术框架和服务,同时意味着云计算平台必须提供广泛支持。阿里云当然希望多卖一些云主机服务,但是如果因为技术框架落后,客户就会流失。所以,全世界的云计算平台目前都义无反顾地支持了多云策略,希望在这个过程中继续以专业服务商的地位存在。

多云策略对应用开发者的影响也很大。首先开发者必须从第一天就按照云计算环境来规划,支持多云部署,自动伸缩,采用微服务架构以实现容器部署。其次,应用开发者也能够从这样的架构中受益。因为它使得客户获得私有软件也像应用SaaS一样简单,唯独不同的是应用和数据运行在客户控制的计算环境中,但是软件本身都是基于单一代码库的(Single Code Base)。我们明道云原来是一个SaaS形态应用,客户只需要在mingdao.com上注册即可使用,现在,通过容器技术,我们的客户也可以在自己的云计算环境中安装和升级。这些都有赖于多云技术架构。

前面我们提到了云计算公司的竞争将向应用开发和部署环境迁移。那么它具体指的是什么呢?它有关于围绕云计算相关的四个技术领域。Tom Siebel把他们概括为云计算本身、大数据、人工智能和物联网。

接下来,我们会逐一介绍这十五年来,伴随云计算发展起来的数字化技术领域。正是因为云计算服务的普及,才催化了这些新兴的技术领域,反过来,这些技术领域的发展也让现代云服务更加完善,当然也更加复杂。正是这些复杂性,让企业数字化转型工作变得阻力重重。相较于更早前的基础信息化工作,企业届要认知和掌握的技术范畴要比宽广得多。因此,我们介绍云计算的发展简史,就必须要把关联技术域的发展也一并介绍。

云计算相关的技术领域   大数据(Big Data)

在大数据概念出现之前,数据存储、处理和分析的技术早已存在。随着存储成本的下降和云计算提供的弹性计算能力增强,越来越多的数据场景已经不能被传统的数据库技术所处理。这些新场景可以被概括为高数据量(Volume),高频度(Velocity)和多数据类型(Variety)三个特点。比如在电子商务、金融和物联网领域,系统往往在很短的时间内会产生大量的数据。这些数据甚至在存储的过程中就会产生瓶颈,更不用说实时性很强的计算和分析。所以,从搜索引擎时代开始,大数据相关的技术就开始孕育。

MapReduce和Hadoop

搜索引擎的霸主Google成立于1998年,几年以后,Google的搜索服务所承载的数据量已经是一个天文数字,而且还在以光速增加。传统的数据处理技术完全依赖硬件算力的铺陈,这会让Google在未来的发展中不堪重负。2004年,Google在内部推出了GFS分布式文件系统和分布式计算框架MapReduce。前者解决了单一硬件资源的限制,后者通过一系列数学原理,将多类型的数据进行切片并分散存储在特定的分区中,这个设计能够让未来的计算和分析大幅提效。MapReduce的技术原理是大数据技术发展的最重要基础。

很快,开源软件领域开始响应这项技术方案,Lucene项目创始人Doug Cutting在2006年正式独立出Hadoop开源项目,在其中包括了分布式文件系统,在集群资源上的调度工具,以及最核心的大数据并行处理开发框架。有了Hadoop以后,那些面对海量数据分析难题行业从此有了更好的解决方案。只是在2006年前后,主要的应用行业还是互联网行业本身。Yahoo,

中国的百度等都很快应用了Hadoop来解决海量数据的存储和检索问题。

hadoop

Hive,Spark和流式计算

在随后的几年中,Hadoop相关的大数据处理技术继续得到增强。Facebook开源的Hive分析工具用更高层和抽象的语言来描述算法和数据处理流程,能够用SQL语句进行大数据分析,这大大降低了使用者门槛,也提升了大数据技术的应用效率。不要小看这项改进,它让全世界大多数现有的数据分析人员可以轻易掌握大数据技术。

2009年,加州大学伯克利分校的AMP实验室开发了Spark开源集群计算框架,通过完善API和库,提供更完善的能力和通用性。而且Spark的特色是能够将数据存储在内存中,所以数据处理和查询效率要比利用硬盘存储的MapReduce框架快百倍。目前,Spark已经加入Apache Software Foundation,成为Apache开源项目中的明星项目,被大数据技术领域作为最重要的工具框架。

至此为止的技术栈基本解决了针对海量数据批量进行处理和分析的需求。比如零售业企业如果需要研究顾客和交易数据,从而对顾客群进行特征细分,这些技术就足够了。但是,数字化技术的发展总是会刺激出更高级的需求。比如,在线上零售中,商品和顾客的行为数据是永续不断在发生的,我们希望在数据发生的时刻就立即进行计算,及时地给顾客推送一张个性化的优惠券,而不是定时进行某种批量计算,这时候就需要大数据技术的一个分支—流式计算。

流式计算的常用框架包括Storm和Spark Stream和Flink,他们在零售和电子商务行业中的交易分析、金融风控、物联网中的态势监控、车联网中的自动驾驶等领域都被广泛应用。2019年,阿里巴巴用1亿美元收购了Flink,是因为我们用的淘宝天猫中的搜索、商品推荐,包括双11的实时监控大屏数据都是由Flink来驱动的。Flink用几乎无延迟的速度截获双十一最后一秒钟结束后的GMV数值,可见它在实时处理数据方面的性能。

NoSQL数据库

与大数据技术同步发展的还包括NoSQL(非关系型)数据库市场。在上个世纪,大多数商业数据库都是关系数据库,通过SQL语言进行数据处理和查询。当大数据技术发展起来后,技术专家们发现数据库完全可以用不同的形态来存储数据,这样可以大幅减少数据分析过程中的预处理工作量。所以,从2009前后开始,各种NoSQL数据库开始进入市场。

下图是维基百科上针对NoSQL数据库类型的分类方法:

云计算简史2

读者可以忽略其中的细节技术语言,只需要了解不同类型的NoSQL数据库会有利于特定场景的应用开发。比如文档数据库采用JSON格式存储,可以随心所欲定义不同的数据结构,而且横向扩展性很强(数据规模增大后可以保证查询效率)。我们明道云的工作表就是利用了文档数据库MongoDB作为存储方案。

NoSQL数据库普遍支持分布式文件系统,所以都具备很强横向扩展性。和关系数据库相比,NoSQL数据库大多不具备事务一致性,但是这个牺牲交换得到数据处理的效率,因而作为大数据技术相关的常见存储方案。

云计算平台上的大数据服务

以上我们介绍了大数据技术发展依赖的各个重要技术栈。很显然,和传统的应用开发相比,大数据技术相对更加复杂。它不仅涉及复杂的编程框架,还需要一个专业的运维体系。这使得大部分普通企业用户很难自己来搭建大数据开发环境。所以云计算平台在基础云服务之外,也开始结合云计算资源提供大数据服务。阿里云上的MaxCompute是一个全托管的大数据SaaS服务,用户甚至无需管理主机基础设施,直接按照大数据计算任务量付费。顺便说一下,这种直接将计算服务提供给开发者的模式被称为“无服务器”(Serverless)计算,它的目的是为了简化开发工作中的运维任务,让开发者聚焦在应用开发上。不仅仅是大数据领域,在AI,物联网等其他技术领域,无服务器服务模式正在日益成为主流。E-MapReduce则是一整套大数据相关的PaaS服务,用户可以选择利用现成的服务在自己控制的云主机上完成部署,客户主要支付的是基础云的资源费用。和阿里云类似,亚马逊AWS等其他云计算平台也提供丰富的大数据相关平台服务。

应用领域

我们前面提到大数据技术起源于搜索引擎应用。在随后的十多年中,它的主要应用场景依然还是在互联网领域。最常见的应用包括计算广告(依据用户和内容数据动态决定广告投放策略和定价),内容检索和推荐(百度、头条),商品推荐和营销活动优化(淘宝、拼多多)。不要小看这几个场景,它们几乎和互联网用户上网过程中的每一分秒都有关系,所以创造了巨大的经济价值。

数据的价值当然不仅仅局限于互联网行业,几乎每个产业都有机会在大数据技术的帮助下发掘出数据的价值,或者改善运营效率,或者发现出新的业务机会。金融行业是较早的受益者。银行贷款业务中的风险控制、零售和结算业务中的欺诈发现、保险业务中的精算和保单个性化定价、证券行业中的期货定价和股价预测等都实实在在在创造出财富。

大数据在研究和开发领域也在大显身手。在生物医药领域,大数据技术在帮助缩短药物研发的周期和提高成功率;合成化学行业也在利用大数据和机器学习技术来加快发现新材料。有人甚至认为数据科学将成为实验、推演和仿真以外的一种新的科学研究方法,成为“第四范式”。

大数据在城市交通、社会治理、能源传输、网络安全、航空航天等领域也都已经有了现实的应用。但在这些资本投入密集的领域之外,大数据在一般行业和企业中的应用依然道路曲折。这不是因为大数据技术不够完善,而是诸多行业尚未能够明确抽象出大数据应用的价值以及可付诸实施的方法论。正如前面提到的,云计算和大数据对于普通中小企业来说依然是一个模糊的技术工具,一般企业也很难雇佣大数据专家,而专业服务企业目前还没有找到利用自己的技术专长提供普遍服务的有效机会。通用领域中的大数据应用还停留在理念阶段。所以,在过去几年出现的大数据技术公司大多都还在服务金融、公安、交通、能源等大客户集中的行业。

突破的关键点可能在两个方面,一是大数据技术栈本身十分复杂,当下的工具还依赖专门训练的计算机专家,产业还没有抽象出一个通用领域的应用模型,也无法提供一个类似SaaS这样友好的应用界面。这值得数据技术领域和企业应用领域中的跨界专家来探索。二是企业数字化建设还刚刚开始,很多企业缺失稳定和可靠的数据采集和记录的过程。如果没有数据流,自然就不会有大数据应用。因此大数据技术被广泛应用可能还需要五到十年的时间。


来源:任向晖的科技与商业论道