【数据库】云计算的概念与发展

从2016年的「VR元年」,到2017年的「共享经济」,再到今年年初被炒到天价的比特币和与之对应的「区块链」概念,互联网的浪潮来去匆匆。与这些概念相比,「云计算」、「云服务」这些在2012年前后红极一时的词汇早已淡出人们的视野,却在时时刻刻同我们产生紧密的联系。小到使用手机网购或搜索,大到智慧城市和智能监控系统的布局,在信息量爆炸的今天,这些应用几乎都离不开云计算的支持。

本文作为一次课程调研报告,分别从「云计算的相关概念」、「企业“上云”基本流程」、「国内市场格局」和「未来的机遇与挑战」四个方面展开,并尝试用直观易懂的语言进行描述。

云计算相关概念

定义

云计算(Cloud Computing)这一概念的出现可追溯到二十年前,最开始叫做软件即服务(Software as a Service, SaaS)[1]。

目前云计算比较官方的定义出自[2]:

云计算是这样一种模型:它用于实现对可配置计算资源(如网络、服务器、存储、应用程序等)的便捷共享和按需访问,用较低管理成本或与服务提供者的交互,实现快速使用与释放。

Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.

上面这段话有这样几个关键词:计算资源、按需访问、快速使用与释放。

  • 计算资源:不仅限于使用CPU执行一段应用或代码,硬盘上的数据存储和网络上的数据传输都可视为计算资源。
  • 按需访问:用户可以与云计算供应商达成协议,获取具有指定数量、数据存储量和功能的计算资源。
  • 快速使用与释放:“用完即走”理念,避免资源闲置。

发展

云计算需求的出现离不开历史发展。一方面,云计算充分利用了虚拟机的概念来提供计算服务,另一方面,云计算需求的产生归功于操作系统的发展。

我们知道,早期的计算机系统是高度定制化的,往往为特定的军事单位、政府部门或科研单位提供。上世纪60年代末,随着硬件成本的降低和技术的革新,出现了虚拟机(virtual machine)的概念,这是一种典型的客户-服务器架构:用户感觉上是在使用私人计算机,但实际上是单台计算机模拟了多个虚拟机,从而实现多个用户共同使用计算资源。上世纪八十年代,图形化操作系统Mac OS问世,九十年代又有Windows NT和Windows 95紧随其后,使得个人计算机得到真正意义上的普及[3]。

服务和类型

下图列出了云计算的常见服务和部署类型。

可以看出,云计算的服务如同它的定义,覆盖范围广,类型多样。篇幅有限,此处不再展开。

企业“上云”基本流程

经过初步了解,云计算看上去十分诱人。而真正的使用并不是一蹴而就的,其中涉及到的问题必须使用一套合理的流程来解决。本部分主要参考[4]介绍企业级用户部署云计算的过程,总体分为六个步骤:

  • 现阶段定义
  • 需求定义
  • 服务提供商分析
  • 可行性评估
  • 决策
  • 迁移

因为每个点都比较琐碎,所以直接做成思维导图便于直观理解。

大致梳理整个过程后,我们能够看到整个“上云”的流程需要经过充分前期论证,以及企业内外多方位协调和合作,在完成整个流程后还需长期维护并按需扩展。

国内市场格局

相比最早将云计算落地的美国各大公司,国内市场的起步晚了接近10年,但也表现出了强劲的发展趋势。

从市场规模来看,2017年中国公有云服务整体市场规模(IaaS/PaaS/SaaS)首次超过40亿美金,其中IaaS市场再创新高,增速达到72%[5]。其中公有云市场保持50%以上增长,中国信通院预测,虽然增幅逐年放缓,但未来三年内公有云市场仍将保持高速发展的趋势,增速在30%以上。

从市场份额来看,阿里云继续保持市场领军位置,全年市场份额相比去年进一步提升,达到45.5%;腾讯云稳居第二,市场份额突破10% ;中国电信排名第三,同比增长约51%;位居第四的金山云,实现同比增长82%;AWS在2017年增长强劲,首次进入IaaS市场前五位。

小插曲:

在2010年的深圳IT峰会上,马化腾觉得云计算要几百年后才有价值,李彦宏说云计算是新瓶装旧酒,马云说不做云计算就会死,可以说现在的格局在当时就已经定下了基调。(From 知乎用户jason

总体来看,当前我国云计算市场整体规模较小,与全球云计算市场相比差距在 3-5 年。从细分领域来看,国内IaaS市场处于高速增长阶段,以阿里云、腾讯云、UCloud为代表的厂商不断拓展海外市场,并开始与AWS、微软等国际巨头展开正面竞争。国内SaaS市场较国外差距明显,与国外相比,国内SaaS服务成熟度不高,缺乏行业领军企业,市场规模偏小[6]。

未来机遇与挑战

云计算看上去发展的风生水起,但业内人士并不乐观,因为大量问题的客观存在,导致现阶段云计算服务水平距离它原本的概念设想存在巨大鸿沟,或者说——坑。这些「坑」影响着云计算服务的部署、扩展和政策等。换句话说,这些坑就是一个个挑战,而合理的解决方案就是未来的机遇。下面从这三个方面各选一个详述。

部署:业务连续性和服务可用性

谷歌的搜索业务以其高可用性闻名。其中,业务连续性是保障服务可用性的前提,也就是说,作为一种计算资源,云服务不应出现宕机和中断之类的错误,从而导致用户无法获取期望的数据。同时,“上云”前后能否保证整体的一致性也是每个云服务提供商需要攻克的难题。当数据无法满足一致性时,业务连续性更无从谈起了。达到这一要求并不容易。即便是稳如谷歌,亚马逊等大公司,一年内也会出现几次产品意外崩溃,下图为2008年的几次崩溃数据[7]。

国内的例子,如曾广为人知的新浪微博因明星热点事件导致服务器发生崩溃事故。云服务按需取用,按需分配的特性,使得企业难以应对突发性的数据流巅峰。如下图所示,红线表示服务器能够承受的最大请求量,(a)图表示理想状态下的合理分配,周期性的波峰代表一次次高频访问(比如每到周末或节假日的社交网站数据量);(b)表示理想状态下的低于预期分配,即每次都无法满足峰值数据请求;实际情况中(c)更加常见,因为峰值和周期都是会不断变化的。服务提供方永远无法准确预测每次波峰的到来,以及多少计算资源才是合理的需求。

扩展:数据传输瓶颈

随着企业的发展,数据量往往会成倍增加。云存储本质上是分布式数据库的应用,而分布式数据库就离不开数据传输和通信。大规模的数据迁移伴随着高昂的网络传输费用,抛开这些,还需要在有限带宽下保证传输效率。如果云用户和云提供商希望最大限度地降低成本,则必须考虑系统各个层面的布局和流量的影响。

关于带宽,计算机网络中有一个很经典的段子:

永远不要低估一辆在高速公路上满载着移动硬盘全速前进的卡车的带宽。

假设我们想从上海运送10TB数据到北京,若传输速度为20M/s(相当于高校内正常网速),则大约需要四百万秒,大概是一个半月的时间。如果直接用物流运输一个10TB的硬盘,可能不到一天就能够实现这种规模的数据传输——如果忽略从磁盘拷贝到移动硬盘的时间的话。

这个例子也反映出,云服务中的数据通信和数据传输问题,始终需要更为合理、可靠和高效的方案。毕竟,网络的速度远远跟不上数据产生的速度。

政策:软件许可

除了必要的存储设备和网络通信外,云计算中的「计算资源」也包含了软件。

大部分商用软件会选择按年收费,如Microsoct Office、Windows SQL Server、Oracle的数据库管理系统等,当这些软件(或对应的替代品)在云服务器上工作时,如何设置收费标准便是首先要考虑的问题。其次,若云服务器提供商使用了第三方软件,对这部分软件进行许可并合理定价也是绕不开的一个点。

不同地区的政策与法律,用户层次和使用习惯都会直接或间接地影响服务提供商的决策。而这些看似技术无关的问题往往难以进行全局把控。

总结

云计算的初始理念出现很早,近年来随着网络技术的日趋成熟催生出大量服务商和用户。云计算服务具有使用灵活、成本低、高度可定制、按需分配、现收现付(pay-as-you-go)、扩展性强等优点,是每一个信息相关企业或个人用户都可运用的技术方案。

企业“上云”往往需要经历完整流程,配合多方共同努力。

国内市场相对国外起步较晚,但近年来发展迅速,上升势头充足,空间大。现有市场中阿里云一家独大,腾讯云和AWS等奋起直追,大部分厂商在争夺不足四分之一的市场,竞争激烈。

未来,云计算需要从部署、扩展和政策等方面作出更长远和深入的探索。


ps.双十一又快来了,不知道阿里云这次能不能撑住考验呢 :)

(图自搜狐新闻

参考文献

[1] Abraham Silberschatz, Henry F. Korth, S. Sudarshan. “Database system concepts(6th ed)’’.

[2] Dillon, Tharam S., Chen Wu and Elizabeth Chang. “Cloud Computing: Issues and Challenges.” 2010 24th IEEE International Conference on Advanced Information Networking and Applications (2010): 27-33.

[3] WikiPedia - Operating System.

[4] Paredes-Gualtor, Joel, Oswaldo Moscoso-Zea, Pablo Saa, Fanny Sandoval and Patricio Rodas. “Unified Cloud Computing Adoption Framework.” 2017 International Conference on Information Systems and Computer Science (INCISCOS) (2017): 247-252.

[5] IDC. 中国公有云服务市场半年度跟踪报告. 2018.

[6] 中国信息通信研究院. 云计算发展白皮书. 2018.

[7] Armbrust, Michael, Armando Fox, Rean Griffith, Anthony D. Joseph, Randy H. Katz, Andy Konwinski, Gunho Lee, David A. Patterson, Ariel Rabkin, Ion Stoica and Matei Zaharia. “A view of cloud computing.” Commun. ACM 53 (2010): 50-58.