古人云:“不以规矩,无以成方圆”,也就是说,“方圆”再怎么精彩和美丽,都离不开“规矩”的积淀和约束,这个道理对云计算也同样适用,如果读者对云计算本 身有一定的认知和理解,那么就非常有助于今后对其相关的技术和产品的学习,而本章就是这样专注于云计算本身的章节。在本章的开始,将关注云计算的定义和特 点,接着将从思想和技术这方面来分析云计算的由来,并讲述一下云计算的诞生与成长,最后将重点介绍云计算对整个 IT 产业的影响和主要的使用场景。
1.1 什么是云计算 云计算到底是什么呢?
在这个问题上,可谓众说纷纭。比如,在维基百科上的定义是“云计算是一种基于互联网的计算新方式,通过互联网上异构、自治的服务为个人和企业用户提供按需即取的计算”;著名咨询机构 Gartner 将云计算定义为“云计算是利用互联网技术来将庞大且可伸缩的 IT 能力集合起来作为服务提供给多个客户的技术”;而 IBM 则认为“云计算是一种新兴的 IT 服务交付方式,应用、数据和计算资源能够通过网络作为标准服务在灵活的价格下快速地提供最终用户”。
虽然这几个定义都有一定的道理,但在我看来还没抓住云计算的核心,在我眼中, 云计算应该有如图 1-1 :云计算是新一代 IT 模式,它能在后端庞大的云计算中心的支撑下能为用户提供更方便的体验和更低廉的成本。
1.1.1 用户体验
对个人用户而言,在云计算的时代,会出现越来越多的基于互联网的服务,这些服务丰富多样、功能强大、随时随地接入,同时也无需购买、下载和安装任何的 客 户端,并只要使用浏览器就能轻松访问,而无需为软件的升级和病毒的感染操心。还有,人们可以将文档等数据放在云来进行共享和协作,比如,共同编辑同一篇文 章,而且通过严格的权限管理机制,来确保协作是在安全的环境下进行。对企业用户而言,可以利用云技术来优化其现有的 IT 服务,使现有的 IT 服务更可靠和更自动化,更可以将企业的 IT 服务整体迁移到云上,使企业卸下维护 IT 服务的重担,从而更专注于其主营业务。 1.1.2 成本
对个人用户而言,由于他们所使用的服务运行在云端,本地计算需求比较少,所以无需像过去那样不断地升级电脑的配置或者购买昂贵的新电脑,只需一个廉价 的 可以上网的智能终端,比如:手机和上网本等。同时由于互联网服务是按需使用,而无需在初期购置不廉价的软件客户端。对企业用户而言,除了可以通过利用先进 的云技术来降低企业 IT 初期的投资成本和后期的维护成本之外,更可以通过将 IT 服务外包或者整体迁移到外部的云中来削减 IT 部门的规模,这样能使得公司成本的结构更完善。
上面提到的一些云计算的优点和好处,而这些东西都没有远离云计算自身的特点,而是息息相关的。
云计算的特点
在特点方面,主要有十点,除了常见的超大规模、高可扩展性和按需服务之外,还有自动化和节能环保等。
(1) 超大规模:大多数云计算中心都具有相当的规模,比如, Google 云计算中心已经拥有几百万台服务器, 而 Amazon 、 IBM 、微软、 Yahoo 等企业所掌控的云计算规模也毫不逊色,并且云计算中心能通过整合和管理这些数目庞大的计算机集群来赋予用户前所未有的计算和存储能力。
(2) 抽象化:云计算支持用户在任意位置、使用各种终端获取应用服务,所请求的资源都来自“云”,而不是固定的有形的实体。应用在“云”中某处运行,但实际上用户无需了解、也不用担心应用运行的具体位置,这样能有效地简化了应用的使用。
(9) 节能环保:云计算技术能将许许多多分散在低利用率服务器上的工作负载整合到云中,来提升资源的使用效率,而且云由专业管理团队运维,所以其 PUE ( Power Usage Effectiveness ,电源使用效率值)值和普通企业的数据中心相比出色很多,比如, Google 数据中心的 PUE 值在 1.2 左右,也就是说,每一块钱的电力花在计算资源上,只需再花两角钱电力在制冷等设备,而常见的 PUE 在 2 和 3 之间,并且还能将云建设在水电厂等洁净资源旁边,这样既能进一步节省能源方面开支,又能保护了环境。
当我们谈到云计算时,难道它就是突发奇想,就是特例吗?其实虽然云计算这个名词只是 Google CEO 埃里克•施密特博士当年在担任 SUN 系统公司的 CTO ( Chief Technology Officer ,首席技术官)时候的一次偶然所得,但是其概念本身不仅和前言中提到的过去电力的发展是密不可分的,而且更是整个 IT 产业非常自然的发展和演化。这些发展和演化不仅存在于思想方面,而且涉及技术方面的进步。
由于 IT 行业本身是一个比较新生的行业,所以从其他行业取经是其发展不可或缺的一步,最出名的例子之一莫过于从建筑行业,引入“模式( Pattern )”这个概念。虽然在 IT 界,电厂这个概念不像“模式”那样炙手可热,但其影响是深远的,而且有许许多多的 IT 人在不断地实践着这个理念,它的意思是通过利用电厂的规模效应,来降低电力的价格,并让用户使用起来更方便,且无需维护和购买什么任何发电设备。
Web 技术已经从 90 年初的“混沌期”和本世纪初的“阵痛期”走出,已经进入“快速发展期”,并随着类似 AJAX 、 jQuery 、 Flash 、 Silverlight 和 HTML5 等 Web 技术的不断地发展, Chrome 、 Firefox 和 Safari 等性能出色和功能强大的浏览器的不断涌现,使得 Web 已经不再是只能显示简单的页面或者在用户体验方面远逊于传统的桌面应用,而是能支持多种多媒体功能和复杂的事件处理,在用户体验方面已经越来越接近桌面应 用,使得用户只要通过互联网和云连上,就能通过浏览器使用各种功能强大的 Web 应用。
4. 系统虚拟化
虽然就像上面摩尔定律那段提到那样, X86 芯片性能已经非常强悍了,但每台 X86 服务器的利用率还是在个位数徘徊,可以说,在能源和购置成本等方面浪费极大,但随着 VMware 的 vSphere 和开源的 Xen 等基于 X86 架构的系统虚拟化技术的不断发展,使得一台服务器能整合过去多台服务器的负载,从而有效地提升硬件的利用率,并降低能源的浪费和硬件的购置成本,更重要的 是,通过这些技术能有效地提升了数据中心自动化管理的程度,从而极大地减少在管理方面的投入,使云计算中心的管理更智能。
5. 移动设备
随着苹果的 iOS 和 Google 的 Android 这类智能手机系统不断地发展和普及,使得诸如手机这样的移动设备已经不仅是一个移动的电话而已,更是一个完善的信息终端,能够通过它们轻松地访问互联网上 的信息和应用,并且在整体功能上越来越接近台式机的水平,使得通过这些移动设备能够随时随地地访问云中的服务。
虽然在云计算诞生在一块“肥沃”的土壤之上,但是如果没有非常好的契机的话,云计算只会像小的溪流那样慢慢地流淌,而也不会像今天那样宛如无数个小溪 流合并而来的长江之水那样滚滚而来,并推动着整个 IT 产业的发展。我认为有五个非常重要的契机一步步地触发了云计算的诞生。
1.3.1 SaaS 的诞生
在 1999 年,桌面应用还是唯一主流的时候,当时 Oracle 的高管 Marc Benioff 看准了 Web 应用将取代桌面应用这一大趋势,创建了 Salesforce 这家以销售在线 CRM ( Customer relationship management ,客户关系管理)为主的互联网公司,并定义了 SaaS ( Software as a Service ,软件即服务)这个概念,意思是软件将会以在线服务形式提供给用户,而且避免了安装和运维等繁琐的步骤。 Salesforce 的在线 CRM 一经推出,不仅受到来自技术界的好评和用户支持,而且越来越多的软件选择了 SaaS 这种模式来进行发布。总的来说,由于 SaaS 的诞生和不断地发展,使人们开始相信类似云计算的产品,不论在技术上,还是在商业上都是可行的
1.3.2 《 IT 不再重要》的发表
2003 年,尼古拉斯•卡尔在发表在《哈佛商业评论》上的一篇非常具有轰动性文章,名为《 IT 不再重要》,在这篇文章中,尼古拉斯•卡尔犀利地提出 IT 技术已经日用品化了。虽然这样能使大多数的企业从 IT 中获益,但是 IT 已经很难给企业带来一定的竞争优势。虽然在刚发表时,此文受到了包括当时 Intel 董事长克瑞格•贝瑞特在内整个 IT 界的口诛笔伐,并导致尼古拉斯•卡尔甚至自称其为 IT 界的“全民公敌”。但是,从今天,也就是文章发表的七年后看来,此文不仅促使了广大的 IT 从业者不断地反思,从而推动了 IT 产业的改革,因为 IT 技术的日用品化并不是 IT 业的末日,而是下一次创新和发展的基石,而且还引出了《大转变》这本“云计算的圣经”。
1.3.3 Google 的三大核心技术
在 2003 年的 SOSP 大会上 Google 发表了 GFS ( Google File System , Google 文件系统)这个分布式存储系统的论文;在 2004 年的 OSDI 大会上发表了 MapReduce 这个分布式处理技术的论文,;在 2006 年的 OSDI 大会上发表了 BigTable 这个分布式数据库的论文。这三篇重量级论文的发表,不仅使大家了解 Google 搜索引擎背后强大的技术支撑,而且克隆这三个技术的开源产品像雨后春笋那样不断地涌现, MapReduce 的有 Hadoop , GFS 的有 HDFS ,而 BigTable 则有 Hbase 、 Hypertable 和 Cassandra 等,这三篇论文和相关的开源技术极大地普及了云计算中非常核心的分布式技术。
1.3.4 Amazon Web Service 的推出
Amazon 的 B2C 业务有点类似中国移动的短信业务,平时流量很大,但是到每年特定的时刻(比如 Amazo 的圣诞节和中国移动的春节等),流量更是数量级的攀升,在这种情况下, Amazon 需要购置远超其平常使用量的硬件资源以应对圣诞节的流量,很显然,会有很多资源被浪费,所以 Amazon 想出租借硬件资源给公众,以减少浪费的想法,这也是其推出 Amazon Web Service 的最主要的原因。在 2006 年初, Amazon 推出了 Amazon Web Service 第一款产品 S3 ( Simple Storage Service ,简单存储服务)云存储服务,在 2006 年 8 月推出了另一款 Amazon Web Service 产品 EC2 ( Elastic Compute Cloud ,弹性计算云)云基础设施服务,之后还推出了包括 SimpleDB 、 Simple Queue Service 和 CloudFront 等近 20 种云服务。 Amazon Web Service 的推出标志着云计算相关的产品已经出现,并基本可用,虽然那时还没有云计算这个说法。
1.3.5 IBM 和 Google 的合作
一位名叫克里斯托夫•比希利亚的 Google 高级工程师,为了推广 Google 一些新的技术,所以他利于其 20% 的时间在他的母校华盛顿大学开了一门名叫“ Google 101 ”的课程,通过这门课程指导学生学习一些常用于 Google 内部的分布式技术,比如 MapReduce 等。接着,这个项目也得到 IBM 方面的支援,在合作的过程中, IBM 和 Google 都从中意识到这些分布式技术在商业和科研方面的强大潜力,并最终在 2007 年 10 月 8 日共同宣布了一项“大规模分布式计算”推进计划,两家公司将投资建立一个大型的数据中心,学生可以通过互联网远程访问该数据中心,并进行远程的研究,这个 项目也称为“云计算”的推进计划,这就是云计算的诞生。
虽然云计算最初只是由 IBM 和 Google 这两家公司所主导的,但是就像图 1-4 所示那样云计算将会对整个 IT 产业带来非常深远的影响,其中包括服务器供应商、软件开发商和云终端供应商这三个云计算建设者和作为云计算运维者的云供应商。本章将从上面提到的这四个角 度进行分析,之后,会总结云计算对整个 IT 产业的影响。
1.5.1 服务器供应商的角度
这类型的公司主要包括 IBM 、 HP 、 Dell 和 Cisco 等。主要有两个方面的变化:其一,是需求方面的变化,虽然中小企业会不断地加大对 IT 技术使用,但由于它们将会把云服务作为首选,所以对服务器供应商而言,来自中小企业的订单将会不断的减少,但来自云供应商的订单则会大量的增加;其二,是 产品方面的变化,由于大型云计算中心,对硬件有自己一套的设计和想法,所以会希望服务器供应商能生产为它们定制的硬件,这导致服务器供应商他们整体产品的 方向将会从原先的以生产通用的 X86 服务器为主,转变为通用和定制兼顾,而且为云计算做优化的解决方案将受到极大欢迎。虽然云计算将会对部分非常依赖中小企业的硬件厂商带来非常不利的影响, 但是从长期而言,对那些不断创新,并且提出非常优秀的云计算解决方案的硬件厂商,将会脱颖而出,并从云计算大潮中获利丰厚。
1.5.2 软件开发商的角度
最典型的公司有微软、 Red Hat 、 Oracle 和 VMware 等。主要有三方面的变化:首先,在软件交付方式上的变化,由于虚拟器件( Virtual Appliance )等软件发布格式的引入,使得不仅软件的开发,维护和销售等方面的成本和复杂度得到了降低,而且也加快了软件部署的速度;其次,在软件销售和发布方式上的 变化,由于各种基于云的软件发布平台(比如苹果的 App Store 、中国移动的 Mobile Market 和 VMware Virtual Appliance Marketplace 等)的出现,使得发布、推广和销售软件越来越简单,而且成本更低,比如,和传统软件发布前期需要大量资金支持不同的是,在苹果的 App Store 上发布软件的成本基本为零,而且能直面超过 5000 万 iOS 系统(包括 iPhone 、 iPod Touch 和 iPad )的使用者,同时这些用户的消费能力也是非常强大的;最后,在技术上的变化,软件将与云技术进行深度地整合,比如,应用类的软件,基本上都将选择 Web 作为其首选的界面,而中间件和底层的系统软件将会为运行在云中做更多的优化。
1.5.3 云终端供应商的角度
这方面的公司有 Apple 、 Nokia 、三星和联想等。由于移动设备的轻便型,再加上性能的日渐提高和能方便地接入多种无线网络(比如 WIFI 和 3G 等),所以市场对移动设备需求将与日俱增,而且将来云终端将不会仅是手机、平板和笔记本这几种移动设备,而将会涉及社会的方方面面,比如电视和汽车等,所 以在这方面会有非常大创新空间等待着这些公司。
1.5.4 云供应商的角度
相关的公司有国外的 Amazon 、 Google 和 RackSpace 等,国内的有中国移动和中国电信等。随着云计算不断推广和被大众所接受,使得云计算中心在运营的规模上会不断地增大, 这将会给云供应商带来很多机会来降低其运营成本,并提升经营利润,比如,将云计算中心建设在能源成本底的地方(比如电厂附近)或者建在制冷成本底(比如天 气寒冷的地点)的地方。而且由于运行的工作负载的规模非常庞大,将整体提高服务器利用率。同时云的业务都属于非常稳定的,所以能给云供应商带来持久的现金 流。
1.5.5 整个 IT 产业的角度
不可否认,在短期内,由于产业结构的变化,云计算有可能将会给整个 IT 产业带来一定程度的阵痛,但是从长期而言,云计算将会对整个 IT 产业带来非常正面的影响,因为云计算将推动整个产业的进一步的优化布局和专业分工,并且提供一个让所有 IT 人不断地创新的舞台,最终,这些参与者会像之前大型机时代和 PC 时代那样同心协力创造出一整套属于云计算的产业链。
1.6 云计算的使用场景
有些 IT 从业人员在谈到云计算的时候,总是认为云计算只是广告词而已,实际的用处是非常有限。对于这种看法,我不以为然,因为不仅云计算的部分技术已经落地,而且云计算将在 IT 产业各个方面都有其用武之地,在这里,选择十个比较典型的使用场景来加以介绍。
1.6.1 IDC 云
传统 IDC ( Internet Data Center ,互联网数据中心)的服务已经无法满足用户的需求,用户期望更强大、更方便和更灵活的 IDC 服务。 IDC 云是在 IDC 原有数据中心的基础上,加入更多云的基因,比如系统虚拟化技术、自动化管理技术和智慧的能源监控技术等。通过 IDC 的云平台,用户能够使用到虚拟机和存储等资源。还有, IDC 可通过引入新的云技术来提供许多新的具有一定附加值的服务,比如, PaaS 等。现在已成型的 IDC 云有 Linode 和 Rackspace 等。
1.6.2 企业云
对任何大中型企业而言, 80% 的 IT 资源都用于维护现有应用的,而不是让 IT 更好地为业务服务。使用专业的企业云解决方案来提升企业内部数据中心的自动化管理程度,将整个 IT 服务的思维从过去的软硬件思维转变为以提供服务为主,使得 IT 人员能分出精力来为业务创新,成为半个业务人员。企业云对于那些需要提升内部数据中心的运维水平和希望能使整个 IT 服务更围绕业务展开的大中型企业非常适合。相关的产品和解决方案有 IBM 的 WebSphere CloudBurst Appliance 、 Cisco 的 UCS 和 VMware 的 vSphere 等。
1.6.3 云存储系统
由于数据是企业的非常重要的资产和财富,所以需要对数据进行有效的存储和管理,而且普通的个人用户也需要大量的存储空间用于保存大量的个人数据和资 料,但由于本地存储在管理方面缺失,使得数据的丢失率非常高。而云存储系统能解决上面提到这些问题,它是通过整合网络中多种存储设备来对外提供云存储服 务,并能管理数据的存储、备份、复制和存档,还有,良好的用户界面和强大的 API 支持也是不可或缺的。云存储系统非常适合那些需要管理和存储海量数据的企业,比如互联网企业,电信公司等,还有广大的网民。相关的产品有:中国电信的 E 云、 Amazon 的 S3 云存储服务、 Google 的 Picasa 相册和微软的 SkyDrive 网络硬盘等。
1.6.4 虚拟桌面云
对许多企业而言,桌面系统的安装、配置和维护都是其 IT 运营非常重要的一个方面,桌面系统的分散管理将给整个 IT 部门带来沉重的压力,而且相关的数据和信息安全不能受到有效地监控,同时企业更希望能将降低终端桌面系统的整体成本,并且使用起来更稳定和灵活。虚拟桌面 云是这方面一个非常不错的解决方案,其是利用了现在成熟的桌面虚拟化技术。桌面虚拟化技术是将用户的桌面环境与其使用的终端进行解耦,在服务器端以虚拟镜 像的形式统一存放和运行每个用户的桌面环境,而用户则可通过小型的终端设备来访问其桌面环境,还有,系统管理员可以统一地管理用户在服务器端的桌面环境, 比如安装、升级和配置相应地软件等。这个解决方案比较适合那些需要使用大量桌面系统的企业。相关的产品有 Citrix 的 Xen Desktop 和 VMware 的 VMware view 。
1.6.5 开发测试云
开发测试总是繁琐、易错和耗时的过程,特别是在准备测试环境上面,还有会遇到诸如测试资源管理混乱,难于重现问题发生的环境和缺乏压力测试所需要的强 大计算能力等棘手问题。而开发测试云能有效解决上面这些问题,其通过友好的 Web 界面,可以预约、部署、管理和回收整个开发测试的环境,通过预先配置好(包括操作系统,中间件和开发测试软件)的虚拟镜像来快速地构建一个个异构的开发测 试环境,通过快速备份 / 恢复等虚拟化技术来重现问题,并利用云的强大的计算能力来对应用进行压力测试,比较适合那些需要开发和测试多种应用的组织和企业,比如银行、电信和政府 等。相关解决方案有 IBM Smart Business Development and Test Cloud 。
上面这个云架构共分为服务和管理这两大部分。 在服务方面,主要以提供用户基于云的各种服务为主,共包含三个层次:
其一是 Software as a Service 软件即服务,简称 SaaS ,这层的作用是将应用主要以基于 Web 的方式提供给客户;
其二是 Platform as a Service 平台即服务,简称 PaaS ,这层的作用是将一个应用的开发和部署平台作为服务提供给用户;
其三是 Infrastructure as a Service 基础设施即服务,简称 IaaS ,这层的作用是将各种底层的计算(比如虚拟机)和存储等资源作为服务提供给用户。从用户角度而言,这三层服务,它们之间关系是独立的,因为它们提供的服务 是完全不同的,而且面对的用户也不尽相同。但从技术角度而言,云服务这三层之间的关系并不是独立的,而是有一定依赖关系的,比如一个 SaaS 层的产品和服务不仅需要使用到 SaaS 层本身的技术,而且还依赖 PaaS 层所提供的开发和部署平台或者直接部署于 IaaS 层所提供的计算资源上,还有, PaaS 层的产品和服务也很有可能构建于 IaaS 层服务之上。
(2) Google App Engine : Google App Engine 提供 Google 的基础设施来让大家部署应用,它还提供一整套开发工具和 SDK 来加速应用的开发,并提供大量的免费额度来节省用户的开支。
(3) Windows Azure Platform :它是微软推出的 PaaS 产品,并运行在微软数据中心的服务器和网络基础设施上的,通过公共互联网来对外提供服务,它由具有高扩展性云操作系统、数据存储网络和相关服务组成,而且 服务都是通过物理或虚拟的 Windows Server 2008 实例提供。还有,其附带的 Windows Azure SDK (软件开发包)提供了一整套开发、部署和管理 Windows Azure 云服务所需要的工具和 API 。