大数据与云计算的关系,引起一些人的困惑。为了便于探讨二者的关系,这里从“计算”和“数据”的历史关系说起。因为云计算首先是一种“计算”,大数据首先是一种“数据”,而计算机就是用来“计算”“数据”的。
计算机是软件和硬件分离的,是一种软件定义的电子产品(可编程)。计算机设计中的一个重要问题是如何有效管理CPU、内存和I/O等硬件资源,以及如何让应用程序合理使用这些资源。这两大任务最早内嵌在各种应用程序中,由应用程序自身完成,缺点是费力、复杂和易错,难以升级和移植,而且重复工作。
上世纪60年代这些共性功能开始从应用中分离出来,逐步形成了一种通用的软件包,这就是操作系统。操作系统是位于硬件和应用程序之间的“中间件”,让应用软件和硬件得以分离并独立发展,发展成了最核心的计算机系统软件,也成就了微软公司的伟大。
以UNIX为始祖的常见现代操作系统有Android、BSD、iOS、Linux、 MacOSX、QNX等,以及原创的微软Windows、 Windows Phone和IBM的z/OS。操作系统的工作范围,也从最初的计算机蔓延到手机、游戏控制器、电视机顶盒、智能汽车和智能眼镜等,还有与云计算密切相关的Web服务器。
上世纪70年代,计算机的快速发展使得数字化数据爆发式增长,“海量”数据管理成了新挑战。把通用操作系统的文件管理用于数据管理时,无论是扩展性、效率和便利性,都不适应“海量”数据的管理需要,应用软件被迫内嵌自己设计的数据管理系统。同样的,“海量”数据管理由每个应用程序自身完成,缺点也是费力、复杂和易错,难以升级和移植,并且重复工作。
于是一种专门面向“海量”数据管理的通用软件问世了,那就是数据库管理系统(DBMS),一种应用系统软件。DBMS包括了数据库定义、创建、查询、更新和管理等功能,这些都是数据管理所必需的,是操作系统的文件管理系统所没有的。
著名的DBMS有 MySQL、 PostgreSQL、SQLite、Microsoft SQL Server、Microsoft Access、Oracle、Sybase、dBASE、FoxPro和IBM DB2等,都是关系型DBMS。当然还有非关系型No SQL模式的,只是没那么流行。
DBMS与字处理软件等一起,成为单机时代最重要的应用软件,也成就了一家伟大的应用软件公司Oracle。大约不足20年前,操作系统和数据库的技术和市场未来,看起来都那么可预知。一个是微软的天下,一个是Oracle的天下。
但互联网来了,尤其是Web开始流行。
Web服务器所使用的操作系统,最初面向单机设计,扩展用于局域网范围内管理多台服务器还勉强可用。但当互联网巨头崛起,需要Web服务器的操作系统管理数百万台Web服务器的时候,传统操作系统勉为其难,需要“技术革命”了。“革命”的结果就是云计算。
云计算大伞下有很多概念,核心技术之一是虚拟化。虚拟化有“1虚N”和“N虚1”两种模式,前者主要是为了省钱,以Amazon AWS为代表;后者主要是为了大数据处理,以Google GAE为代表。
云计算的“N虚1”模式,可将多台物理计算机虚拟化为一台超级计算机,向应用程序提供资源池的调度管理服务,与传统操作系统的功能几乎完全相同,因此常被称为“云计算操作系统”。只是云计算操作系统的工作范围,扩大到数据中心甚至整个互联网范围内,把每台计算机也当做资源看待和管理。
有了云计算操作系统,云应用软件和硬件(计算机资源)得以分离,各自可以独立发展。历史再次重演,云计算以及SNS、微博、移动互联网和物联网等的快速发展,具有3V特点的数据爆发,大数据管理的挑战也最先到来。同样,面向计算设计的通用云计算操作系统,在大数据管理方面的扩展性、效率和便利性,都面临新挑战。
历史上计算机面对“海量”数据的挑战,将数据应用和数据管理分离,催生了通用的DBMS。现在云计算面对大数据的挑战,也必将使大数据应用和大数据管理分离,催生“大数据库管理系统”,并且逐步走向通用化和平台化。
ATM(异步传输模式)是通信资源稀缺时代的产物,TCP/IP是通信资源富饶时代的产物。类似的,传统DBMS是IT资源稀缺时代的产物,大数据管理系统是IT资源富饶时代的产物。
计算是工具,可以工业化提供;数据是资源,是个性化的资产。如果说Office、游戏等是PC的杀手锏应用,浏览器、搜索、SNS等是互联网的杀手锏应用,那么大数据等就是云计算的杀手锏应用。
(责任编辑:fumingli)