云计算的架构
IT,身为一个新兴行业,在其发展历程中向其他行业借鉴了一些先进的思想和理念,比如除了前面提到的从电力行业借鉴了公用事业这种商业模式和从丰田汽车流水线生产中总结出精益这套编程模式之外,还在软件设计方面引入了架构这个在建筑行业非常核心的概念。 架构,对软件系统而言是极为重要的。因为它不仅定义了系统内部各个模块之间是如何整合和协调的,同时也对其整体表现起着非常关键的作用。而云,作为一个非常复杂的大型软件系统,其中包含着许许多多的模块和组件,所以如果能够理出其架构的话,将会非常有益。 为了让大家对云计算有更深入的理解,本章将会对云的架构进行深入剖析。除了云的架构之外,本章还将会对云计算最主要和最常见的4种模式进行深入介绍。 云的架构 在对云计算进行了三年多的研究之后,我觉得云计算虽然涉及了很多产品与技术,表面上看起来的确有点纷繁复杂,但是云计算本身还是有迹可循和有理可依的,所以在个人理解的基础上云计算框架图,我总结出了一套云计算的架构,具体请看图2-1。 这个云架构共分为服务和管理两大部分。 在服务方面,主要以提供用户基于云的各种服务为主,共包含3个层次。其一是Software as a Service(软件即服务),简称SaaS,这层的作用是将应用主要以基于Web的方式提供给客户;其二是Platform as a Service(平台即服务),简称PaaS,这层的作用是将一个应用的开发和部署平台作为服务提供给用户;其三是Infrastructure as a Service(基础设施即服务),简称IaaS,这层的作用是将各种底层的计算(比如虚拟机)和存储等资源作为服务提供给用户。从用户角度而言,这3层服务是独立的,因为它们提供的服务是完全不同的,而且面向的用户也不尽相同。但从技术角度而言,云服务的这3层是有一定依赖关系的。比如,一个SaaS层的产品和服务不仅需要用到SaaS层本身的技术,而且还依赖PaaS层所提供的开发和部署平台或者直接部署于IaaS层所提供的计算资源上,而PaaS层的产品和服务也很有可能构建于IaaS层服务之上。 在管理方面,主要以云管理层为主,它的功能是确保整个云计算中心能够安全、稳定地运行,并且能够被有效管理。 接下来,将给大家详细介绍每个层次,其中不仅涉及它们的历史和相关产品,而且还会讨论它们的优势和采用的技术。 SaaS SaaS是最常见的,也是最先出现的云计算服务。通过SaaS这种模式,用户只要接上网络,通过浏览器就能直接使用在云上运行的应用。SaaS云供应商负责维护和管理云中的软硬件设施,同时以免费或者按需使用的方式向用户收费,所以用户不需要顾虑类似安装、升级和防病毒等琐事,并且免去初期高昂的硬件投入和软件许可证费用的支出。 1. 历史 SaaS的前身是ASP(Application Service Provider),其概念和思想与ASP相差不大。最早的ASP厂商有Salesforce.com和Netsuite,其后还有一批企业跟随进来。这些厂商在创业时都主要专注于在线CRM(客户关系管理)应用,但由于那时正值互联网泡沫破裂的时候,而且当时ASP本身的技术也并不成熟,而且还缺少定制和集成等重要功能,再加上当时欠佳的网络环境,所以ASP没有受到市场的热烈欢迎,从而导致大批相关厂商破产。但在2003年后,在Salesforce的带领下,残存的ASP企业喊出了SaaS这个口号,并随着技术和商业这两方面不断成熟,Salesforce、WebEx和Zoho等国外SaaS企业得到了成功,而国内的企业(诸如用友、金算盘、金碟、阿里巴巴和八百客等)也加入到SaaS的浪潮中。 2. 相关产品 由于SaaS产品起步较早,而且开发成本低,所以在现在的市场上,SaaS产品不论是在数量还是在类别上都非常丰富。同时,也出现了多款经典产品,其中最具代表性的莫过于Google Apps、Salesforce CRM、Office Web Apps 和Zoho。 3. 优势 虽然和传统桌面软件相比,现有的SaaS服务在功能方面还稍逊一筹,但是在其他方面还是具有一定的优势的,下面是其中的4个方面。 4. 技术 由于SaaS层离普通用户非常近,所以大家对SaaS层用到的大多数技术都耳熟能详。下面列出了其中最主要的5种技术。 由于通用且学习成本较低,大多数云计算产品都会倾向于HTML、JavaScript和CSS这对黄金组合,但是在HTML5被大家广泛接受之前,RIA技术在用户体验方面还是具有一定优势的,所以Flash和Silverlight也将会有一定的用武之地,比如VMware vCloud就采用了基于Flash的Flex技术,而微软的云计算产品肯定会在今后大量使用Silverlight技术。 PaaS 通过PaaS这种模式,用户可以在一个提供SDK(Software Development Kit,软件开发工具包)、文档、测试环境和部署环境等在内的开发平台上非常方便地编写和部署应用,而且不论是在部署还是在运行的时候,用户都无需为服务器、操作系统、网络和存储等资源的运维操心。 PaaS在整合率上非常惊人,比如一台运行Google App Engine的服务器能够支撑成千上万个应用,也就是说,PaaS是非常经济的。PaaS主要面对的用户是开发人员。 1. 历史 PaaS是云服务这3层之中出现最晚的。业界第一个PaaS平台诞生在2007年,是Salesforce的Force.com,通过这个平台,不仅能使用Salesforce提供的完善的开发工具和框架来轻松地开发应用,而且能把应用直接部署到Salesforce的基础设施上,从而能利用其强大的多租户系统。接着,在2008年4月,Google推出了Google App Engine,从而将PaaS所支持的范围从在线商业应用扩展到普通的Web应用,也使得越来越多的人开始熟悉和使用功能强大的PaaS服务。 2. 相关产品 和SaaS产品百花齐放相比,PaaS产品主要以少而精为主,其中比较著名的产品有:Force.com、Google App Engine、Windows Azure Platform和Heroku。 3. 优势 和现有的基于本地的开发和部署环境相比,PaaS平台主要有下面这6方面的优势。 4. 技术 与SaaS层所采用的技术不同的是,PaaS层的技术比较多样,下面是常见的5种。 对于很多PaaS平台,比如用于部署Ruby应用的Heroku云平台,应用服务器和分布式缓存都是必备的, REST技术常用于对外的接口,多租户技术则主要用于SaaS应用的后台(比如用于支撑Salesforce的CRM等应用的Force.com多租户内核),而并行处理技术常被作为单独的服务推出(比如Amazon的Elastic MapReduce)。 IaaS 通过IaaS这种模式,用户可以从供应商那里获得他所需要的计算或者存储等资源来装载相关应用,并只需为其所租用的那部分资源付费,而这些烦琐的管理工作则交给IaaS供应商来负责。 1. 历史 和SaaS一样,类似IaaS的想法其实已经出现很久了,比如过去的IDC(Internet Data Center,互联网数据中心)和VPS(Virtual Private Server,虚拟专用服务器)等,但由于技术、性能、价格和使用等方面的缺失,这些服务并没有被大中型企业广泛采用。但在2006年年底,Amazon 发布了EC2(Elastic Compute Cloud,灵活计算云)这个IaaS云服务。由于EC2在技术和性能等多方面的优势,这类技术终于被业界广泛认可和接受,其中就包括部分大型企业,比如著名的纽约时报。 2. 相关产品 最具代表性的IaaS产品有:Amazon EC2、IBM Blue Cloud、Cisco UCS和Joyent。 3. 优势 与传统的企业数据中心相比,IaaS服务在很多方面都存在一定的优势,下面是最明显的5个。 - 免维护。主要的维护工作都由IaaS云供应商负责,所以用户不必操心。 - 非常经济。首先免去了用户前期的硬件购置成本,而且由于IaaS云大都采用虚拟化技术,所以应用和服务器的整合率普遍在10(也就是一台服务器运行10个应用)以上,这样能有效降低使用成本。 - 开放标准。虽然很多IaaS平台都存在一定的私有功能,但是由于OVF等应用发布协议的诞生,IaaS在跨平台方面稳步前进,这样应用能在多个IaaS云上灵活地迁移,而不会被固定在某个企业数据中心内。 - 支持的应用。因为IaaS主要是提供虚拟机,而且普通的虚拟机能支持多种操作系统,所以IaaS所支持应用的范围非常广泛。 - 伸缩性强。IaaS云只需几分钟就能给用户提供一个新的计算资源,而传统的企业数据中心则往往需要几周时间,并且计算资源可以根据用户需求来调整其资源的大小。 4. 技术 IaaS所采用的技术都是一些比较底层的,其中有4种技术是比较常用的。 现在大多数的IaaS服务都是基于Xen的,比如Amazon的EC2等,但VMware也推出了基于ESX技术的vCloud,同时业界也有几个基于关系型数据库的云服务,比如Amazon的RDS(Relational Database Service,关系型数据库服务)和Windows Azure SDS(SQL Data Services,SQL数据服务)等。关于分布式存储和NoSQL,它们已经被广泛用于云平台的后端,比如Google App Engine的Datastore就是基于BigTable和GFS这两个技术,而Amazon推出的Simple DB则基于NoSQL技术。 云管理层 虽然和前面云服务的3层相比,熟悉云管理层的人非常少,但是它确实是云最核心的部分,就好像一个公司离不开其董事会的管理一样。与过去的数据中心相比,云最大的优势在于云管理的优越性。云管理层也是前面3层云服务的基础,并为这3层提供多种管理和维护等方面的功能和技术。如图2-2所示,云管理层共有9个模块,这9个模块可分为3层,它们分别是用户层、机制层和检测层。 1. 用户层 顾名思义,这层主要面向使用云的用户,并通过多种功能来更好地为用户服务,共包括4个模块:用户管理、客户支持、服务管理和计费管理。 2. 机制层 这层主要提供各种用于管理云的机制。通过这些机制,能让云计算中心内部的管理更自动化、更安全和更环保。和用户层一样,该层也包括4个模块:运维管理、资源管理、安全管理和容灾支持。 3. 检测层 这层比较简单,主要监控这个云计算中心的方方面面,并采集相关数据,以供用户层和机制层使用。 架构示例 在现实的IT环境中,有许多云计算产品都符合本章所讲述的架构,其中比较知名的有Salesforce CRM和Google App Engine。为了帮助大家进一步理解云的架构,本节将以这两个著名的云计算产品为例来进行介绍。 1. Salesforce CRM 首先,从用户角度而言,Salesforce CRM属于SaaS层服务,主要通过在云中部署可定制化的CRM应用,来让企业用户在初始投入很低的情况下使用CRM,并且可根据自身的流程来灵活地定制,而且用户只需接入互联网就能使用。从技术角度而言,Salesforce CRM像很多SaaS产品一样,不仅用到SaaS层的技术,而且还用到PaaS层、IaaS层和云管理层的技术。图2-3为Salesforce CRM在技术层面上大致的架构。 Salesforce CRM采用的主要技术包括以下几种。 2. Google App Engine 像前文介绍的那样,Google App Engine是一款PaaS服务,它主要提供一个平台来让用户在Google强大的基础设施上部署和运行应用程序,同时App Engine会根据应用所承受的负载来对应用所需的资源进行调整,并免去用户对应用和服务器等的维护工作,而且支持Java和Python这两种语言。在技术上,由于App Engine属于PaaS平台,所以关于显示层的技术选择由应用的自身需求而定,而与App Engine无关。App Engine本身的设计主要集中在PaaS层、IaaS层和云管理层。关于App Engine在技术层面上大致的架构,具体请看图2-4。 Google App Engine采用的主要技术有以下几种。 云的4种模式 虽然从技术或者架构角度看,云计算都是比较单一的,但是在实际情况下,为了适应用户不同的需求,它会演变为不同的模式。在NIST(National Institute of Standards and Technology,美国国家标准技术研究院)的名为“The NIST Definition of Cloud Computing”的这篇关于云计算概念的著名文档中,共定义了云的4种模式,它们分别是:公有云、私有云、混合云和行业云。接下来,将详细介绍每种模式的概念、构建方式、优势、不足之处及其对未来的展望等。 公有云 公有云是现在最主流也就是最受欢迎的云计算模式。它是一种对公众开放的云服务,能支持数目庞大的请求,而且因为规模的优势,其成本偏低。公有云由云供应商运行,为最终用户提供各种各样的IT资源。云供应商负责从应用程序、软件运行环境到物理基础设施等IT资源的安全、管理、部署和维护。在使用IT资源时,用户只需为其所使用的资源付费,无需任何前期投入,所以非常经济,而且在公有云中,用户不清楚与其共享和使用资源的还有其他哪些用户,整个平台是如何实现的,甚至无法控制实际的物理设施,所以云服务提供商能保证其所提供的资源具备安全和可靠等非功能性需求。 许多IT巨头都推出了它们自己的公有云服务,包括Amazon的AWS、微软的Windows Azure Platform、Google的Google Apps与Google App Engine等,一些过去著名的VPS和IDC厂商也推出了它们自己的公有云服务,比如Rackspace的Rackspace Cloud和国内世纪互联的CloudEx云快线等。 1. 构建方式 在构建方式方面,现在主要有3种方法。其一是独自构建:云供应商利用自身优秀的工程师团队和开源的软件资源,购买大量零部件来构建服务器、操作系统,乃至整个云计算中心。这种独自构建的好处是,能为自己的需求作最大限度的优化,但是需要一个非常专业的工程师团队,所以业界这样做的基本上只有Google一家。其二是联合构建:云供应商在构建的时候,在部分软硬件上选择商业产品,而其他方面则会选择自建。联合构建的好处是避免自己的团队涉足一些不熟悉的领域,而在自己所擅长的领域上大胆创新。这方面最明显的例子莫过于微软。在硬件方面,它并没有像Google那样选择自建,而是采购了HP和戴尔的服务器,但是在其擅长的软件方面选择了自主研发,比如采用了Windows Server 2008、IIS服务器和.NET框架。其三是购买商业解决方案。由于有一部分云供应商在建设云之前缺乏相关的技术积累,所以会稳妥地购买比较成熟的商业解决方案。这样购买商业解决方案的做法虽然很难提升云供应商自身的竞争力,但是在风险方面和前两种构建方式相比,它更稳妥。在这方面,无锡的云计算中心是一个不错的典范。由于无锡购买了IBM的Blue Cloud云计算解决方案,所以在半年左右的时间内就能向其整个高新技术园区开放公有云服务,而且在这之前,无锡基本上没有任何与云计算相关的技术储备。 2. 优势 公有云在许多方面都有其优越性,下面是其中的4个方面。 3. 不足之处 另外,公有云也有一些不足之处。 4. 对未来的展望 由于公有云在规模和功能等方面的优势,它会受到绝大多数用户的欢迎。从长期而言,公有云将像公共电厂那样毋庸置疑会成为云计算最主流甚至是唯一的模式,因为在规模、价格和功能等方面的潜力实在太大了。但是在短期之内,因为信任和遗留等方面的不足会降低公有云对企业的吸引力,特别是大型企业。 私有云 关于云计算,虽然人们谈论最多的莫过于以Amazon EC2和Google App Engine为代表的公有云,但是对许多大中型企业而言,因为很多限制和条款,它们在短时间内很难大规模地采用公有云技术,可是它们也期盼云所带来的便利,所以引出了私有云这一云计算模式。私有云主要为企业内部提供云服务,不对公众开放,在企业的防火墙内工作,并且企业IT人员能对其数据、安全性和服务质量进行有效地控制。与传统的企业数据中心相比,私有云可以支持动态灵活的基础设施,降低IT架构的复杂度,使各种IT资源得以整合和标准化。 在私有云界,主要有两大联盟:其一是IBM与其合作伙伴,主要推广的解决方案有IBM Blue Cloud和IBM CloudBurst;其二是由VMware、Cisco和EMC组成的VCE联盟,它们主推的是Cisco UCS和vBlock。在实际的例子方面,已经建设成功的私有云有采用IBM Blue Cloud技术的中化云计算中心和采用Cisco UCS技术的Tutor Perini云计算中心。 1. 构建方式 创建私有云的方式主要有两种。首先是独自构建,通过使用诸如Enomaly和Eucalyptus等软件将现有硬件整合成一个云。这比较适合预算少或者希望重用现有硬件的企业。其次是购买商业解决方案。通过购买Cisco的UCS和IBM的Blue Cloud等方案来一步到位,这比较适合那些有实力的企业和机构。 2. 优势 由于私有云主要在企业数据中心内部运行,并且由企业的IT团队来进行管理,所以这种模式在下面这5个方面有出色的表现。 3. 不足之处 另外,私有云也有其不足之处,主要是成本开支高。因为建立私用云需要很高的初始成本,特别是如果需要购买大厂家的解决方案时更是如此;其次,由于需要在企业内部维护一只专业的云计算团队,所以其持续运营成本也同样偏高。 4. 对未来的展望 在将来很长一段时间内,私有云将成为大中型企业最认可的云模式,而且将极大地增强企业内部的IT能力,并使整个IT服务围绕着业务展开,从而更好地为业务服务。 混合云 混合云虽然不如前面的公有云和私有云常用,但已经有类似的产品和服务出现。顾名思义,混合云是把公有云和私有云结合到一起的方式,即它是让用户在私有云的私密性和公有云灵活的低廉之间做一定权衡的模式。比如,企业可以将非关键的应用部署到公有云上来降低成本,而将安全性要求很高、非常关键的核心应用部署到完全私密的私有云上。 现在混合云的例子非常少,最相关的就是Amazon VPC(Virtual Private Cloud,虚拟私有云)和VMware vCloud了。比如,通过Amazon VPC服务能将Amazon EC2的部分计算能力接入到企业的防火墙内。 1. 构建方式 混合云的构建方式有两种。其一是外包企业的数据中心。企业搭建了一个数据中心,但具体维护和管理工作都外包给专业的云供应商,或者邀请专业的云供应商直接在厂区内搭建专供本企业使用的云计算中心,并在建成之后,负责今后的维护工作。其二是购买私有云服务。通过购买Amazon等云供应商的私有云服务,能将一些公有云纳入到企业的防火墙内,并且在这些计算资源和其他公有云资源之间进行隔离,同时获得极大的控制权,也免去了维护之苦。 2. 优势 通过使用混合云,企业可以享受接近私有云的私密性和接近公有云的成本,并且能快速接入大量位于公有云的计算能力,以备不时之需。 3. 不足之处 现在可供选择的混合云产品较少,而且在私密性方面不如私有云好,在成本方面也不如公有云低,并且操作起来较复杂。 4. 对未来的展望 混合云比较适合那些想尝云计算的企业和面对突发流量但不愿将企业IT业务都迁移至公有云的企业。虽然混合云不是长久之计,但是它应该也会有一定的市场空间,并且也将会有一些厂商推出类似的产品。 行业云 行业云虽然较少提及,但是有一定的潜力,主要指的是专门为某个行业的业务设计的云,并且开放给多个同属于这个行业的企业。 虽然行业云现在还没有一个成熟的例子,但盛大的开放平台颇具行业云的潜质,因为它能将其整个云平台共享给多个小型游戏开发团队,这样这些小型团队只需负责游戏的创意和开发即可,其他和游戏相关的烦琐的运维可转交给盛大的开放平台来负责。 1. 构建方式 在构建方式方面,行业云主要有两种方式。其一是独自构建:某个行业的领导企业自主创建一个行业云,并与其他同行业的公司分享。其二是联合构建:多个同类型的企业可以联合建设和共享一个云计算中心,或者邀请外部的供应商来参于其中。 2. 优势 能为行业的业务作专门的优化。和其他的云计算模式相比,这不仅能进一步方便用户,而且能进一步降低成本。 3. 不足之处 缺点是支持的范围较小,只支持某个行业,同时建设成本较高。 4. 对未来的展望 行业云非常适合那些业务需求比较相似,而且对成本非常关注的行业。虽然现在还没有非常好的示例,但是对部分行业应该存在一定的吸引力,比如上面提到的游戏业。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |