`

从技术角度剖析云计算的架构

阅读更多

在写《剖析云计算》 (编者注:InfoQ中文站近期会推出该书电子版)一书的时候,我发现虽然云计算本身有三层之分,也就是SaaS,PaaS和IaaS,但这种分层本身主要是从用户体验的角度来而言,比如,SaaS主要将应用作为服务提供给客户,IaaS是主要是将虚拟机等资源作为服务提供给用户。而本文将从技术角度来分析和总结云计算的架构。

 

综述

基于对现有的一些云计算产品的分析和我个人的一些经验,总结出一套云计算的架构,具体请看下图:

图1: 云计算的架构

这套架构主要可分为四层,其中有三层是横向的,分别是显示层、中间件层和基础设施层,通过这三层技术能够提供非常丰富的云计算能力和友好的用户界面,还有一层是纵向的,称为管理层,是为了更好地管理和维护横向的三层而存在的。接下来将一个个地给大家介绍每个层次的作用和属于这个层次的主要技术。

显示层

这层主要是用于以友好的方式展现用户所需的内容,并会利用到下面中间件层提供的多种服务,主要有五种技术:

  1. HTML 标准的Web页面技术,现在主要以HTML4为主,但是将要推出的HTML5会在很多方面推动Web页面的发展,比如视频和本地存储等方面。
  2. JavaScript 一种用于Web页面的动态语言,通过JavaScript,能够极大地丰富Web页面的功能,最流行的JS框架有jQuery和Prototype。
  3. CSS 主要用于控制Web页面的外观,而且能使页面的内容与其表现形式之间进行优雅地分离。
  4. Flash 业界最常用的RIA(Rich Internet Applications)技术,能够在现阶段提供HTML等技术所无法提供的基于Web的富应用,而且在用户体验方面,非常不错。
  5. Silverlight 来自业界巨擎微软的RIA技术,虽然其现在市场占有率稍逊于Flash,但由于其可以使用C#来进行编程,所以对开发者非常友好。

在显示层,大多数云计算产品都比较倾向HTML、JavaScript和CSS这对黄金组合,但是Flash和Silverlight等RIA技术也有一定的用武之地,比如VMware vCloud就采用了基于Flash的Flex技术,而微软的云计算产品肯定会在今后使用到Silverlight。

中间件层

这层是承上启下的,它在下面的基础设施层所提供资源的基础上提供了多种服务,比如缓存服务和REST服务等,而且这些服务即可用于支撑显示层,也可以直接让用户调用,并主要有五种技术:

  1. REST 通过REST技术,能够非常方便和优雅地将中间件层所支撑的部分服务提供给调用者。
  2. 多租户: 就是能让一个单独的应用实例可以为多个组织服务,而且保持良好的隔离性和安全性,并且通过这种技术,能有效地降低应用的购置和维护成本。
  3. 并行处理: 为了处理海量的数据,需要利用庞大的X86集群进行规模巨大的并行处理,Google的MapReduce是这方面的代表之作。
  4. 应用服务器: 在原有的应用服务器的基础上为云计算做了一定程度的优化,比如用于Google App Engine的Jetty应用服务器。
  5. 分布式缓存: 通过分布式缓存技术,不仅能有效地降低对后台服务器的压力,而且还能加快相应的反应速度,最著名的分布式缓存例子莫过于Memcached。

对于很多PaaS平台,比如用于部署Ruby应用的Heroku云平台,应用服务器和分布式缓存都是必备的,同时REST技术也常用于对外的接口,多租户技术则主要用于SaaS应用的后台,比如用于支撑Salesforce的Sales Cloud等应用的Force.com多租户内核,而并行处理技术常被作为单独的服务推出,比如Amazon的Elastic MapReduce。

基础设施层

这层作用是为给上面的中间件层或者用户准备其所需的计算和存储等资源,主要有四种技术:

  1. 虚拟化: 也可以理解它为基础设施层的“多租户”,因为通过虚拟化技术,能够在一个物理服务器上生成多个虚拟机,并且能在这些虚拟机之间能实现全面的隔离,这样不仅能减低服务器的购置成本,而且还能同时降低服务器的运维成本,成熟的X86虚拟化技术有VMware的ESX和开源的Xen。
  2. 分布式存储: 为了承载海量的数据,同时也要保证这些数据的可管理性,所以需要一整套分布式的存储系统,在这方面,Google的GFS是典范之作。
  3. 关系型数据库: 基本是在原有的关系型数据库的基础上做了扩展和管理等方面的优化,使其在云中更适应。
  4. NoSQL 为了满足一些关系数据库所无法满足的目标,比如支撑海量的数据等,一些公司特地设计一批不是基于关系模型的数据库,比如Google的BigTable和Facebook的Cassandra等。

现在大多数的IaaS服务都是基于Xen的,比如Amazon的EC2等,但VMware也推出了基于ESX技术的vCloud,同时业界也有几个基于关系型数据库的云服务,比如Amazon的RDS(Relational Database Service)和Windows Azure SDS(SQL Data Services)等。关于分布式存储和NoSQL,它们已经被广泛用于云平台的后端,比如Google App Engine的Datastore就是基于BigTable和GFS这两个技术之上的,而Amazon则推出基于NoSQL技术的Simple DB。

管理层

这层是为横向的三层服务的,并给这三层提供多种管理和维护等方面的技术,主要有下面这六个方面:

  1. 帐号管理: 通过良好的帐号管理技术,能够在安全的条件下方便用户地登录,并方便管理员对帐号的管理。
  2. SLA 监控: 对各个层次运行的虚拟机,服务和应用等进行性能方面的监控,以使它们都能在满足预先设定的SLA(Service Level Agreement)的情况下运行。
  3. 计费管理: 也就是对每个用户所消耗的资源等进行统计,来准确地向用户索取费用。
  4. 安全管理: 对数据,应用和帐号等IT资源采取全面地保护,使其免受犯罪分子和恶意程序的侵害。
  5. 负载均衡: 通过将流量分发给一个应用或者服务的多个实例来应对突发情况,
  6. 运维管理: 主要是使运维操作尽可能地专业和自动化,从而降低云计算中心的运维成本。

现在的云计算产品在帐号管理,计费管理和负载均衡这三个方面大都表现地不错,在这方面最突出的例子就是Amazon 的EC2,但可惜的是,大多数产品在SLA监控,安全管理和运维管理等方面还有所欠缺。

举例

接下来,将以Salesforce的Sales Cloud和Google的App Engine这两个著名的云计算产品为例,来帮助大家理解本文所提到的云计算架构:

Salesforce Sales Cloud

也就是之前的Salesforce CRM(客户关系管理),属于云计算中的SaaS层,主要是通过在云中部署可定制化的CRM应用,来让企业用户在很低初始投入的情况下使用上CRM,并且可根据自身的流程来进行灵活地定制,而且只需接入网络就能使用。下图为其在技术层面上大致的架构:

Salesforce Sales Cloud

图2: Salesforce Sales Cloud

采用的主要技术:

  1. 显示层: 基于HTML、JavaScript和CSS这对黄金组合。
  2. 中间件层: 在此层,Salesforce引入了多租户内核和为支撑此内核运行而经过定制的应用服务器。
  3. 基础设施层: 虽然在后端还是使用在企业环境中很常见的Oracle数据库,但是其为了支撑上层的多租户内核做了很多的优化。
  4. 管理层: 在安全管理方面,Salesforce提供了多层保护,并支持SSL加密等技术,除此之外,其还在帐号管理、计费管理和负载均衡这三方面有不错地支持。

Google App Engine

App Engine属于云计算中的PaaS层,其主要提供一个平台,来让用户在Google强大的基础设施上部署和运行应用程序,同时App Engine会根据应用所承受的负载来对应用所需的资源进行调整,并免去用户对应用和服务器等的维护工作,而且支持Java和Python这两种语言。由于App Engine属于PaaS平台,所以关于显示层的技术选择由应用的自身需要而定,与App Engine无关,关于App Engine在技术层面上大致的架构,具体请看下图:

Google App Engine

图3: Google App Engine

采用的主要技术:

  1. 中间件层: 既有经过定制化的应用服务器,比如上面已经提到过的Jetty,也提供基于Memcached的分布式缓存服务。
  2. 基础设施层: 在分布式存储GFS的基础上提供了NoSQL数据库BigTable来对应用的数据进行持久化。
  3. 管理层: 由于App Engine是基于Google强大的分布式基础设施,使其在运维管理技术方面非常出色,同时其计费管理能做到非常细粒度的API级计费,而且App Engine在帐号管理和负载均衡这两方面都有非常好地支持。

虽然用一张这样简单的图和两个简短的例子来描述庞大的云计算整体架构的确是略显寒酸,但是应该能让大家从技术角度对云计算的架构有一个大致的了解。

关于作者

吴朱华,北大硕士,PMP认证,之前在IBM中国研究院参与过多个云计算产品的开发工作,现在专注于研发下一代云计算系统,并同时撰写《剖析云计算》 一书。

 

原文:http://www.infoq.com/cn/articles/analyze-cloud-architecture

 

分享到:
评论

相关推荐

    从技术角度剖析云计算.pdf

    《从技术角度剖析云计算》这本书深入探讨了云计算的架构,主要分为四个层次:显示层、中间件层、基础设施层和管理层。以下是对每个层次的详细解释: 1. 显示层: 这一层关注的是如何以用户友好的方式呈现内容。...

    云计算的架构-–-从技术角度剖析云计算-.doc.doc

    本文将从技术角度详细解析这一架构,包括显示层、中间件层、基础设施层以及管理层。 首先,**显示层**是用户与云计算服务交互的界面。这一层主要包括HTML、JavaScript、CSS、Flash和Silverlight等技术。HTML4是目前...

    从技术角度剖析云计算 (2).pdf

    然而,从技术角度深入剖析,我们可以发现云计算架构涉及更多的技术层面。 首先,云计算架构可以概括为四层结构:显示层、中间件层、基础设施层和管理层。 1. **显示层**:这一层负责向用户提供直观、友好的交互...

    云计算架构下的网络信息安全分析.pdf

    因此,对于云服务的用户和提供商而言,深入分析云计算架构下的网络信息安全问题,并提出有效的解决措施,显得尤为重要。 文中提到的三种云服务模型——SaaS、PaaS和IaaS,分别代表了云计算的不同层次和应用场景。...

    三种云计算架构设计模式分析与研究.pdf

    云计算架构设计模式的研究现状表明,针对不同类型的云计算应用开发问题,开发者需要从架构设计的角度出发,综合考虑各种设计模式,以实现最佳的云计算系统。其中,谷歌、亚马逊、微软等大公司,以及VMware、...

    企业级IT架构分享 云计算架构师成长之路 从企业管理的角度重塑企业IT架构 共20页.pdf

    ### 企业级IT架构重塑与云计算架构师的成长之路 #### 引言 当前,随着信息技术的不断进步及其在各行业的广泛应用,传统的IT架构建设方法论面临着越来越多的挑战。这些挑战促使我们重新审视并探索如何更好地从企业...

    计算机行业动态分析:从量化的角度看云计算公司的估值.pdf

    综合以上内容,可以从量化角度对云计算公司的估值进行系统的分析和理解,了解其内在驱动因素,并充分考虑行业动态和潜在风险。对于投资者而言,这些知识能够帮助其更好地把握投资机会和降低投资风险。

    01云计算架构设计与实现

    ### 云计算架构设计与实现 #### 1.1 云计算概况 ##### 云计算理念 云计算是一种基于互联网的计算模式,用户可以通过网络访问共享资源、信息以及其他计算机服务。这种模式消除了用户对本地硬件或软件的需求,使计算...

    基于云计算架构面向领域的信息服务开发模式研究.pdf

    7. 图书情报研究:本文从图书情报研究的角度出发,探讨如何将云计算架构应用于信息服务的开发模式中,重点分析了信息服务的基本要素、用户需求变化以及信息服务业的发展趋势。 8. 关键技术概念:本文还涉及了云计算...

    基于云计算架构的水文大数据云平台建设.pdf

    本文从水文大数据与云计算的结合角度出发,探讨了基于云计算架构的水文大数据云平台的建设思路与实施方案。 首先,随着信息技术的快速发展,水文数据量激增,这不仅包括传统的结构化数据,如水雨情结构化数据,还...

    云计算安全体系架构与关键技术研究.pdf

    云计算安全的研究已经变得迫切且重要,不仅要分析云计算所面临的各种安全威胁,还要深入探讨其安全体系架构和关键技术。 云计算安全的内涵分为两个方面。一方面,是指云计算应用自身的安全性,例如应用系统与服务...

    大数据时代《云计算架构技术与实践》-发布版参考.pptx

    《大数据时代《云计算架构技术与实践》》这本书深入探讨了IT行业的发展历程,以及随着大数据和云计算的崛起,企业IT架构的变化。以下是其中的关键知识点: 1. IT发展历程:早期的IT系统由软硬件紧密耦合构成,如...

    云计算架构的网络信息安全对策分析.pdf

    从技术研究的角度来看,文章还强调了云计算安全与传统计算环境安全的不同之处,并提出云计算安全应从整个生命周期的角度进行规划和管理,包括安全策略的制定、安全设施的部署、安全事件的响应以及持续的安全审计和...

    云计算体系架构

    云计算技术层次侧重于从系统属性和技术设计的角度来描述云服务。它强调的是支撑云计算的各种技术及其在云计算体系中的作用。 **技术层次包括**: 1. **资源虚拟化**:实现计算资源的抽象和虚拟化,为用户提供了...

    浅议云计算环境下的服务器虚拟化与备份技术.pdf

    本文从多个角度阐述了服务器虚拟化在云计算环境下的应用,以及在此过程中备份技术的实现方式和意义。 服务器虚拟化是云计算的一个核心支撑技术,它涉及在物理服务器上建立多个虚拟机,这些虚拟机可以在同一物理...

    从嵌入式系统演化看云计算的容器技术.pdf

    而要深入理解容器技术在云计算中的应用,我们需要从嵌入式系统演化的角度进行探讨。 嵌入式系统作为物联网的基础技术,主要涉及万物互联、感知和控制的核心功能。随着物联网技术的发展,嵌入式系统不再局限于单一...

    基于云计算的大数据分析技术与应用.pdf

    云计算的能力在联机分析后可以对大量数据进行综合分析,为决策者提供多角度和多层次的数据理解,从而对决策产生积极影响。一些大型电商平台和搜索引擎公司已经在使用大数据联机分析技术,并取得了显著的商业价值。 ...

Global site tag (gtag.js) - Google Analytics