1.1 云计算概述
在这个信息技术新时代,云计算技术不仅承载着IT系统的基础架构,而且还被深入地使用在了数据管理的各个方面。在开始讨论云数据管理之前,我们先来看看当前云计算技术的一些基本形态和关键技术,以及它对数据产生的影响和能够发挥的作用。
1.1.1 云计算的形态
1961年,斯坦福教授John McCarthy最先提出了一种观点:计算资源就像水、电、气和通信资源一样,也可以成为一种重要的基础架构资源。由此,云计算概念应运而生。之后,美国国家标准及技术研究所(National Institute of Standards and Technology,NIST)将云计算按照服务形态的不同,定义为以下三种类型:
· 基础架构即服务(Infrastructure-as-a-Service,IaaS)。IaaS是云服务的最底层形态,是指用户使用计算、存储、网络等各种基础资源,部署与执行操作系统或者应用程序等各种软件的云计算服务模式。用户无须购买服务器、存储、网络等设备,也不能管控这些底层基础设施,但可以任意部署和运行计算、存储、网络和其他基础资源。在这些基础资源上,用户可以安装和管控操作系统、存储装置,部署不同的应用程序,有时也可以有限度地控制特定的网络元件,如主机端防火墙、负载均衡器等。
亚马逊是“基础架构即服务”的领导者。它为用户提供“基础架构的计算资源”,用户无须自己构建数据中心及其硬件设施,而可通过租用的方式,利用互联网从亚马逊获得计算机基础设施服务,包括服务器、存储和网络、防火墙、负载均衡等服务。用户仅需对资源的实际使用量或者占用量进行付费。亚马逊主营的是B2C(Business to Customer)电子商务业务,由于基础架构资源有高峰时段和低谷时段,在低谷时段会闲置大量的基础架构资源,因此亚马逊将闲置资源利用起来,开发出弹性的云计算产品。2006年,亚马逊推出S3存储服务(Amazon Simple Storage Service),通过API的方式为开发者提供存储图片、视频、音乐、文档等服务。现在很多厂商都以S3兼容存储协议作为通用的云端对象存储标准协议。无论是从云计算还是从云存储的角度,基础架构资源池是IaaS的灵魂。
· 软件即服务(Software-as-a-Service,SaaS)。SaaS是指平台供应商将应用软件部署在自己的基础架构平台上,用户只需跟平台供应商订阅所需的应用软件服务,按订购的服务数量和时间长短向平台供应商支付费用,并通过互联网获得平台供应商提供的服务。使用该模式的云计算用户无须管理或者控制底层的基础架构以及软件平台,包括部署网络、服务器、操作系统、存储设备和应用程序,只需做好应用程序的维护工作即可。
Salesforce是“软件即服务”的业界领袖,它是由前甲骨文高管马克·贝尼奥夫(Marc Benioff)于1999年3月创立的,这是一家客户关系管理(CRM)软件服务提供商,总部设于美国旧金山,为用户提供按需使用的客户关系管理平台,用户只需要每月支付软件服务费用即可。Salesforce的核心理念就是“No Software”(软件终结者),但它并不是排斥所有的软件,而是排斥主要运行在企业数据中心内部的软件(On-Premises Software)。Salesforce希望用户能直接通过互联网来使用CRM等软件服务。这样,每个用户只需要有一个虚拟实例,即可定制自己所需的功能。用户也无须自己构建和维护软件所需的硬件和系统资源。
· 平台即服务(Platform-as-a-Service,PaaS)。PaaS是指将一个完整的软件服务平台(包括应用设计、应用开发、应用测试和应用托管)作为一种服务提供给用户。在这种服务模式中,用户不需要购买硬件和软件,如网络、服务器、操作系统或者存储设备等基础设施,也无须管理或者控制底层的云基础架构,只需要利用该PaaS,即可创建、测试和部署应用与服务。与传统的数据中心平台相比,采用PaaS的用户的成本和费用要低得多。采用该模式的用户在进行应用程序开发时,需要使用平台服务商所支持的开发语言、服务和工具。
谷歌是“平台即服务”的先行者。用户需要通过谷歌应用引擎(Google App Engine,GAE)使用平台的应用。GAE是一种用于在谷歌数据中心开发和托管Web应用程序的服务。用户不需要维护底层的基础架构服务器,并且可直接使用Node.js、Ruby、Java、Python、Go、Swift、Perl、Elixir、PHP语言构建自己的应用。
1.1.2 云计算的关键技术
构建云计算基础架构的核心技术是虚拟化技术。虚拟化技术是将物理资源进行池化,即将计算资源、网络资源、存储资源统一纳入资源池来进行管理,用户可以按照需求再细分资源池,从而将其弹性地分配给使用者,通常称这些使用者为租户。租户可以按需租用CPU、内存、设备与I/O、操作系统等资源。
虚拟化技术是由IBM在20世纪60年代发展起来的。在1961年,IBM在709主机上实现了分时系统,将CPU占用切分为多个时间片,每一个时间片都执行不同的任务。通过对这些时间片进行轮询,逻辑分割多个CPU,每一个虚拟CPU看起来都在同时运行,这就是虚拟机的雏形。后来的IBM System360主机都支持分时系统。在1972年,IBM正式将System370主机的分时系统命名为虚拟机。在1990年,IBM推出的System390主机开始支持逻辑分区,即将一个CPU分成多个逻辑CPU,而且每个CPU都是独立的,也就是一个物理CPU可以逻辑分割为多个CPU,在主机上可运行多个操作系统。到1998年戴安·格林(Diane Greene)将大型机的技术移植到x86计算机上,至此虚拟化以一日千里的速度发展。2006年,Intel和AMD又推出CPU内建的虚拟化技术,使得虚拟化的性能大幅提升。企业开始大量使用虚拟化技术,把物理的分散资源集中管理,让企业大幅缩减IT支出成本。目前主要的虚拟化厂商及其产品主要包括VMware的vSphere、Microsoft的Hyper-V、Nutanix的AHV、AWS的EC2和Azure的VM。而主流的虚拟化技术也发展出服务器虚拟化、应用虚拟化和桌面虚拟化等。
1. 服务器虚拟化
服务器虚拟化是通过软件将物理服务器划分为多台独立且相互隔离的虚拟服务器的过程。每台虚拟服务器可以独立地运行自己的操作系统。服务器虚拟化技术将服务器物理资源抽象成逻辑资源,让一台服务器变成几台甚至上百台相互隔离的虚拟服务器,不再受限于物理界限。
2. 应用虚拟化
应用虚拟化是将应用程序与操作系统解耦合,为应用程序提供一个虚拟的运行环境。在这个环境中,不仅包括应用程序的可执行文件,还包括它所需要的运行时环境。从本质上说,应用虚拟化是把应用对低层的系统和硬件的依赖抽象出来,可以解决版本不兼容的问题。
3. 桌面虚拟化
桌面虚拟化是指将桌面与PC分离,所有桌面在数据中心进行集中化保存和管理,并虚拟交付到终端用户的一种方式。用户可通过任何设备远程访问其虚拟桌面。因为大部分计算都在数据中心内进行。数据也存储在数据中心内而不是各台计算机上,这样可以提升数据安全性。
Veeam对于上述虚拟化的数据管理都能提供良好的支持。