《云计算核心技术剖析》迷你书连载二 – 云计算的架构

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




现在当当上面已经开始发货了,希望大家能多买几本送朋友、送佳人和送老板^_^

 

IT,身为一个新兴行业,在其发展历程中向其他行业借鉴了一些先进的思想和理念,比如除了前面提到的从电力行业借鉴了公用事业这种商业模式和从丰田汽车流水线生产中总结出精益这套编程模式之外,还在软件设计方面引入了架构这个在建筑行业非常核心的概念。

架构,对软件系统而言是极为重要的。因为它不仅定义了系统内部各个模块之间是如何整合和协调的,同时也对其整体表现起着非常关键的作用。而云,作为一个非常复杂的大型软件系统,其中包含着许许多多的模块和组件,所以如果能够理出其架构的话,将会非常有益。

为了让大家对云计算有更深入的理解,本章将会对云的架构进行深入剖析。除了云的架构之外,本章还将会对云计算最主要和最常见的4种模式进行深入介绍。

2.1 云的架构

在对云计算进行了三年多的研究之后,觉得云计算虽然涉及了很多产品与技术,表面上看起来的确有点纷繁复杂,但是云计算本身还是有迹可循和有理可依的,所以在个人理解的基础上,我总结出了一套云计算的架构,具体请看图2-1。

这个云架构共分为服务和管理这两大部分。

在服务方面,主要以提供用户基于云的各种服务为主,共包含3个层次。其一是Software as a Service(软件即服务),简称SaaS,这层的作用是将应用主要以基于Web的方式提供给客户。其二是Platform as a Service(平台即服务),简称PaaS,这层的作用是将一个应用的开发和部署平台作为服务提供给用户。其三是Infrastructure as a Service(基础设施即服务),简称IaaS,这层的作用是将各种底层的计算(比如虚拟机)和存储等资源作为服务提供给用户。从用户角度而言,这3层服务是独立的,因为它们提供的服务是完全不同的,而且面对的用户也不尽相同。但从技术角度而言,云服务这三层是有一定依赖关系的。比如一个SaaS层的产品和服务不仅需要用到SaaS层本身的技术,而且还依赖PaaS层所提供的开发和部署平台或者直接部署于IaaS层所提供的计算资源上,而PaaS层的产品和服务也很有可能构建于IaaS层服务之上。

图2-1 云计算的架构

在管理方面,主要以云的管理层为主,它的功能是确保整个云计算中心能够安全、稳定地运行,并且能够被有效管理。

接下来,将给大家详细介绍每个层次,其中将不仅涉及它们的历史和相关产品,而且还将讨论它们的优势和采用的技术。

2.1.1 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。

  1. Google Apps。中文名为“Google 企业应用套件”,它提供企业版Gmail、Google 日历、Google 文档和Google 协作平台等多个在线办公工具,而且价格低廉,使用方便,并且已经有超过两百万家企业购买了Google Apps服务。
  2. Salesforce CRM。它是一款在线客户管理工具,并在销售、市场营销、服务和合作伙伴这4个商业领域上提供完善的IT支持,还提供强大的定制和扩展机制,来让用户的业务更好地运行在Salesforce平台上。这款产品常被业界视为SaaS产品的“开山之作”。
  3. Office Web Apps。它是微软所开发的在线版Office,提供基于Office 2010技术的简易版Word、Excel、PowerPoint及OneNote等功能。它属于Windows Live的一部分,并与微软的SkyDrive云存储服务有深度的整合,而且兼容Firefox、Safari和Chrome等非IE系列浏览器。和其他在线Office相比,它的最大优势是,由于其本身属于Office 2010的一部分,所以在与Office文档的兼容性方面远胜其他在线Office服务。
  4. Zoho。Zoho是AdventNet公司开发的一款在线办公套件。在功能方面,它绝对是现在业界最全面的,有邮件、CRM、项目管理、Wiki、在线会议、论坛和人力资源管理等几十个在线工具供用户选择。同时包括美国通用电气在内的多家大中型企业已经开始在其内部引入Zoho的在线服务。Zoho在国内的代理商为百会。

3. 优势

虽然和传统桌面软件相比,现有的SaaS服务在功能方面还稍逊一筹,但是在其他方面还是具有一定的优势的,下面是其中的4个方面。

  1. 使用简单。在任何时候或者任何地点,只要接上网络,用户就能访问这个SaaS服务,而且无需安装、升级和维护。
  2. 支持公开协议。现有的SaaS服务在公开协议(比如HTML 4/HTML5)的支持方面都做得很好,用户只需一个浏览器就能使用和访问SaaS应用。这对用户而言非常方便。
  3. 安全保障。SaaS供应商需要提供一定的安全机制,不仅要使存储在云端的用户数据处于绝对安全的境地,而且也要通过一定的安全机制(比如HTTPS等)来确保与用户之间通信的安全。
  4. 初始成本低。使用SaaS服务时,不仅无需在使用前购买昂贵的许可证,而且几乎所有的SaaS供应商都允许免费试用。

4.技术

由于SaaS层离普通用户非常接近,所以大家对SaaS层用到的大多数技术都耳熟能详。下面列出了其中最主要的5种技术。

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

由于通用性和较低的学习成本,大多数云计算产品都会倾向于HTML、JavaScript和CSS这对黄金组合,但是在HTML5被大家广泛接受之前,RIA技术在用户体验方面还是具有一定优势的,所以Flash和Silverlight也将会有一定的用武之地,比如VMware vCloud就采用了基于Flash的Flex技术,而微软的云计算产品肯定会在今后大量使用Silverlight技术。

2.1.2 PaaS

通过PaaS这种模式,用户可以在一个提供SDK(Software Development Kit,即软件开发工具包)、文档、测试环境和部署环境等在内的开发平台上非常方便地编写和部署应用,而且不论是在部署还是在运行的时候,用户都无需为服务器、操作系统、网络和存储等资源的运维操心。 PaaS在整合率上非常惊人,比如一台运行Google App Engine的服务器能够支撑成千上万个应用,也就是说,PaaS是非常经济的。PaaS主要面对的用户是开发人员。

1. 历史

PaaS是云服务这三层之中出现最晚的。业界第一个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。

  1. Force.com。就像上面所说的那样Force.com是业界第一个PaaS平台,它主要通过提供完善的开发环境和强健的基础设施等来帮助企业和第三方供应商交付健壮的、可靠的和可伸缩的在线应用。还有,Force.com本身是基于Salesforce著名的多租户架构的。
  2. Google App Engine。Google App Engine提供Google的基础设施来让大家部署应用,还提供一整套开发工具和SDK来加速应用的开发,并提供大量免费额度来节省用户的开支。
  3. Windows Azure Platform。它是微软推出的PaaS产品,运行在微软数据中心的服务器和网络基础设施上,通过公共互联网来对外提供服务。它由具有高扩展性的云操作系统、数据存储网络和相关服务组成,而且服务都是通过物理或虚拟的Windows Server 2008实例提供的。还有,它附带的Windows Azure SDK(软件开发包)提供了一整套开发、部署和管理Windows Azure云服务所需要的工具和API。
  4. Heroku。它是一个用于部署Ruby On Rails应用的PaaS平台,并且其底层基于Amazon EC2的IaaS服务,而且在Ruby程序员中有非常好的口碑。

3. 优势

和现有的基于本地的开发和部署环境相比,PaaS平台主要有下面这6方面的优势。

  1. 友好的开发环境。通过提供SDK和IDE(Integrated Development Environment,集成开发环境)等工具来让用户不仅能在本地方便地进行应用的开发和测试,而且能进行远程部署。
  2. 丰富的服务。PaaS平台会以API的形式将各种各样的服务提供给上层的应用。
  3. 精细的管理和监控。PaaS能够提供应用层的管理和监控,比如能够观察应用运行的情况和具体数值[比如吞吐量(Throughput)和响应时间(Response Time)等]来更好地衡量应用的运行状态,还能通过精确计量应用所消耗的资源来更好地计费。
  4. 缩性强。PaaS平台会自动调整资源来帮助运行于其上的应用更好地应对突发流量。
  5. 多住户(Multi-Tenant)机制。许多PaaS平台都自带多住户机制,不仅能更经济地支撑庞大的用户规模,而且能提供一定的可定制性以满足用户的特殊需求。
  6. 整合率局。PaaS平台的整合率非常高,比如Google App Engine能在一台服务器上承载成千上万个应用。

4. 技术

与SaaS层所采用的技术不同的是,PaaS层的技术比较多样,下面是常见的5种。

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

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

2.1.3 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。

  1. Amazon EC2。EC2主要以提供不同规格的计算资源(也就是虚拟机)为主。它基于著名的开源虚拟化技术Xen。通过Amazon的各种优化和创新, EC2不论在性能上还是在稳定性上都已经满足企业级的需求。而且它还提供完善的API和Web管理界面来方便用户使用。
  2. IBM Blue Cloud。“蓝云”解决方案是由IBM云计算中心开发的业界第一个,同时也是在技术上比较领先的企业级云计算解决方案。该解决方案可以对企业现有的基础架构进行整合,通过虚拟化技术和自动化管理技术来构建企业自己的云计算中心,并实现对企业硬件资源和软件资源的统一管理、统一分配、统一部署、统一监控和统一备份,也打破了应用对资源的独占,从而帮助企业能享受到云计算所带来的诸多优越性。
  3. Cisco UCS。它是下一代数据中心平台,在一个紧密结合的系统中整合了计算、网络、存储与虚拟化功能。该系统包含一个低延时、无丢包和支持万兆以太网的统一网络阵列以及多台企业级x86架构刀片服务器等设备,并在一个统一的管理域中管理所有资源。用户可以通过在UCS上安装VMWare vSphere来支撑多达几千台虚拟机的运行。通过Cisco UCS,能够让企业快速在本地数据中心搭建基于虚拟化技术的云环境。
  4. Joyent。它提供基于Open Solaris技术的IaaS服务。其IaaS服务中最核心的是Joyent Accelerator,它能够为Web应用开发人员提供基于标准的、非专有的、按需供应的虚拟化计算和存储解决方案。基于Joyent Accelerator,用户可以使用具备多核CPU、海量内存和存储的服务器设备来搭建自己的网络服务,并提供超快的访问、处理速度和超高的可靠性。

3. 优势

与传统的企业数据中心相比,IaaS服务在很多方面都存在一定的优势,下面是最明显的5个。

  1. 免维护。主要的维护工作都由IaaS云供应商负责,所以用户不必操心。
  2. 非常经济。首先免去了用户前期的硬件购置成本,而且由于IaaS云大都采用虚拟化技术,所以应用和服务器的整合率普遍在10(也就是一台服务器运行十个应用)以上,这样能有效降低使用成本。
  3. 开放标准。虽然很多IaaS平台都存在一定的私有功能,但是由于OVF等应用发布协议的诞生,IaaS在跨平台方面稳步前进,这样应用能在多个IaaS云上灵活地迁移,而不会被固定在某个企业数据中心内。
  4. 支持的应用。因为IaaS主要是提供虚拟机,而且普通的虚拟机能支持多种操作系统,所以IaaS所支持应用的范围非常广泛。
  5. 伸缩性强。IaaS云只需几分钟就能给用户提供一个新的计算资源,而传统的企业数据中心则往往需要几周时间,并且计算资源可以根据用户需求来调整其资源的大小。

4. 技术

IaaS所采用的技术都是一些比较底层的,其中有4种技术是比较常用的。

  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,SQL数据服务)等。关于分布式存储和NoSQL,它们已经被广泛用于云平台的后端,比如Google App Engine的Datastore就是基于BigTable和GFS这两个技术,而Amazon推出的Simple DB则基于NoSQL技术。

2.1.4 云管理层

虽然和前面云服务的三层相比,熟悉云管理层的人非常少,但是它确实是云最核心的部分,就好像一个公司离不开其董事会的管理一样。与过去的数据中心相比,云最大的优势在于云管理的优越性。云管理层也是前面三层云服务的基础,并为这三层提供多种管理和维护等方面的功能和技术。如图2-2所示,云管理层共有9个模块,而且这9个模块可分为3层,它们分别是用户层、机制层和检测层,具体请看图2-2。

图2-2 云管理层的架构

1. 用户层

顾名思义,这层主要面向使用云的用户,并通过多种功能来更好地为用户服务,共包括4个模块:用户管理、客户支持、服务管理和计费管理。

用户管理

对于任何系统而言,对于用户的管理都是必需的,云也是如此。云方面的用户管理主要有3种功能。其一是账号管理:包括对用户身份及其访问权限进行有效地管理,还包括对用户组的管理。其二是单点登录:英文为“Single Sign On”,其意义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。这个机制可以极大地方便用户在云服务之间进行切换。其三是配置管理:对用户相关的配置信息进行记录、管理和跟踪。配置信息包括虚拟机的部署、配置和应用的设置信息等。

客户支持

好的用户体验对于云而言也是非常关键的,所以帮助用户解决疑难问题的客户支持是必需的,并且需要建设一整套完善的客户支持系统,以确保问题能按照其严重程度或者优先级来依次进行解决,而不是一视同仁。这样,能提升客户支持的效率和效果。

计费管理

利用底层监控系统所采集的数据来对每个用户所使用的资源(比如所消耗CPU的时间和网络带宽等)和服务(比如调用某个付费API的次数)进行统计,来准确地向用户索取费用,并提供完善和详细的报表。

服务管理

大多数云都在一定程度上遵守SOA(Service-Oriented Architecture,面向服务的架构)的设计规范。SOA的意思是将应用不同的功能拆分为多个服务,并通过定义良好的接口和契约来将这些服务连接起来,这样做的好处是能使整个系统松耦合,从而使整个系统能够通过不断演化来更好地为客户服务。而一个普通的云也同样由许许多多的服务组成,比如部署虚拟机的服务、启动或者关闭虚拟机的服务等,而管理好这些服务对于云而言是非常关键的。服务管理主要有下面这5个功能。

  1. 管理接口。提供完善的关于服务的Web管理界面和API接口。
  2. 自定义服务。能让用户对服务进行自定义和扩展。
  3. 服务调度。配备强健的机制来负责服务的调度,以使服务能在合理的时间内被系统调用和处理。
  4. 监控服务。利用底层的监控系统来观测服务实际的运行情况。
  5. 流程管理。提供一个工具来让用户将多个服务整合为一个流程,并对它进行管理以提升运行效率。

2. 机制层

这层主要提供各种用于管理云的机制。通过这些机制,能让云计算中心内部的管理更自动化、更安全和更环保。和用户层一样,该层也包括4个模块:运维管理、资源管理、安全管理和容灾支持。

运维管理

云的运行是否出色,往往取决于其运维系统的强健和自动化程度。而和运维管理相关的功能主要包括3个方面。首先是自动维护:运维操作应尽可能地专业和自动化,从而降低云计算中心的运维成本。其次是能源管理:它包括自动关闭闲置的资源,根据负载来调节CPU的频率以降低功耗并提供关于数据中心整体功耗的统计图与机房温度的分布图等来提升能源的管理,并相应地降低浪费。还有就是事件监控:它是通过对在数据中心发生的各项事件进行监控,以确保在云中发生的任何异常事件都会被管理系统捕捉到。

资源管理

这个模块和物理节点的管理相关,比如服务器、存储设备和网络设备等,它涉及下面这3个功能。其一是资源池:通过使用资源池这种资源抽象方法,能将具有庞大数量的物理资源集中到一个虚拟池中,以便于管理。其二是自动部署:也就是将资源从创建到使用的整个流程自动化。其三是资源调度:它将不仅能更好地利用系统资源,而且能自动调整云中资源来帮助运行于其上的应用更好地应对突发流量,从而起到负载均衡的作用。

安全管理

安全管理是对数据、应用和账号等IT资源采取全面保护,使其免受犯罪分子和恶意程序的侵害,并保证云基础设施及其提供的资源能被合法地访问和使用。主要包括下面这7种机制。

  1. 访问授权。为多个服务提供集中的访问控制,以确保应用和数据只能被有授权的用户访问。
  2. 安全策略。实现基于角色或者规则的一整套安全策略,而且还允许系统能模拟策略发生变更的情况以提升安全策略的健壮性。
  3. 安全审计。对安全相关的事件进行全面审计,以检测是不是存在任何隐患。
  4. 物理安全。根据职责限定每个云管理人员不同的权限,比如门禁等。
  5. 网络隔离。使用VPN(Virtual Private Network,虚拟专用网络)、SSL(Secure Sockets Layer,安全套接层)和VLAN(Virtual Local Area Network,虚拟局域网)等技术来确保网络的隔离和安全。
  6. 数据加密。这个机制能确保即使数据被窃取,也不会被非法分子利用。相关的机制有:对称加密和公钥加密等。
  7. 数据备份。由于数据完整性对云计算而言是基本要求,所以除了通过上面这些机制来确保数据不会被没有权限的人访问之外,还需要对数据进行备份,以避免由于磁盘损坏或者管理不当导致数据丢失的情况,所以需要完善的备份服务来满足每个用户不同的备份策略。

容灾支持

在容灾方面,主要涉及两个层面。其一是数据中心级别。如果数据中心的外部环境出现了类似断电、火灾、地震或者网络中断等严重的事故,将很有可能导致整个数据中心不可用,这就需要在异地建立一个备份数据中心来保证整个云服务持续运行。这个备份数据中心会实时或者异步地与主数据中心进行同步,当主数据中心发生问题的时候,备份数据中心会自动接管在主数据中心中运行的服务。其二是物理节点级别。系统需要检测每个物理节点的运行情况,如果一个物理节点出现问题,系统会试图恢复它或者将其屏蔽,以确保相关云服务正常运行。

3. 检测层

这层比较简单,主要监控这个云计算中心的方方面面,并采集相关数据,以供用户层和机制层使用。

监控系统

全面监控云计算的运行主要涉及3个层面。其一是物理资源层面,主要监控物理资源的运行状况,比如CPU使用率、内存利用率和网络带宽利用率等。其二是虚拟资源层面,主要监控虚拟机的CPU使用率和内存利用率等。其三是应用层面,主要记录应用每次请求的响应时间(Response Time)和吞吐量(Throughput),以判断它们是否满足预先设定的SLA(Service Level Agreement,服务级别协议)。

2.1.5 架构示例

在现实的IT环境中,有许多云计算产都符合本章所讲述的架构,其中比较知名的有Salesforce CRM和Google App Engine。为了帮助大家进一步理解云的架构,本节将以这两个著名的云计算产品为例来进行介绍。

1. Salesforce CRM

首先,从用户角度而言,Salesforce CRM属于SaaS层服务,主要通过在云中部署可定制化的CRM应用,来让企业用户在初始投入很低的情况下使用上CRM,并且可根据自身的流程来灵活地定制,而且用户只需接入互联网就能使用。从技术角度而言,Salesforce CRM就像很多SaaS产品一样,不仅用到SaaS层的技术,而且还用到PaaS层、IaaS层和云管理层的技术。图2-3为Salesforce CRM在技术层面上大致的架构。

 

图2-3 Salesforce CRM

采用的主要技术包括以下几种。

  1. SaaS层。基于HTML、JavaScript和CSS这对黄金组合。
  2. PaaS层。在此层,Salesforce引入了多租户内核和为支撑此内核运行而定制的应用服务器。
  3. IaaS层。虽然在后端还是使用在企业环境中很常见的Oracle数据库,但是它为了支撑上层的多租户内核作了很多优化。
  4. 云管理层。Salesforce不仅在用户管理、计费管理、监控系统和资源管理这4个方面有不错的支持,而且在安全管理方面,Salesforce更是提供了多层保护,并支持SSL加密技术等。

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。

图2-4 Google App Engine

采用的主要技术有以下几种。

  1. PaaS层:既有经过定制化的应用服务器,比如上面已经提到过的Jetty,也有基于Memcached的分布式缓存服务。
  2. IaaS层。在分布式存储GFS的基础上提供了NoSQL数据库BigTable来持久化应用的数据。
  3. 云管理层。由于App Engine基于Google强大的分布式基础设施,所以它在运维管理技术方面非常出色,同时其计费管理能做到非常细粒度的API级计费,而且App Engine在监控系统和资源管理这两方面都有非常好地支持。
(4个打分, 平均:5.00 / 5)

雁过留声

“《云计算核心技术剖析》迷你书连载二 – 云计算的架构”有73个回复

  1. 陈怀临 于 2011-06-02 8:54 下午

    送佳人? 除非脑残。。。

  2. tacas 于 2011-06-02 9:20 下午

    佳人是泡的公司的同行小妹。

  3. 我要佳人 于 2011-06-02 10:59 下午

    得买书附带送佳人,才有佳人可送书。

  4. aaa 于 2011-06-02 11:24 下午

    —–希望大家能多买几本送朋友、送佳人和送老板^_^

    买几本开始有送? 如果只送佳人,最低要买几本?

  5. Justdoit 于 2011-06-03 12:29 上午

    貌似大家希望的都是买书送佳人而不是买书送给佳人……

    to:首席,
    同意,什么样的脑残才会买本技术书籍送给佳人?

    to:2楼
    话说公司的小妹要看的上眼的只能是接待和行政后勤销售那边,实在是算不上同行。

    to:3楼
    好主意,强烈要求作者照此办理。

    to:4楼
    对,必须要求作者公开资格条件,杜绝暗箱操作。

    ^_^

  6. kernelchina 于 2011-06-03 2:41 上午

    1)多租户和虚拟化是一回事吗?有什么区别?
    2)PaaS里面为什么要强调并行编程?
    3)SasS/PaaS/IaaS之间如何互操作,它们之间是什么接口?
    4)云的接口,对开发者和最终用户,相比现有的技术,有哪些区别?最终用户需要感知云否?

  7. zedware 于 2011-06-03 7:18 上午

    佳人回赠给IT脑残?

  8. 吴朱华 于 2011-06-03 6:37 下午

    to kernelchina:
    1. 多租户和虚拟化,不同层次,一个是应用层,一个是操作系统;
    2. 类似MapReduce这样平行计算放在PaaS层还是比较合适的,常作为服务提供给用户;
    3. SasS/PaaS/IaaS具体方式没深入,比如API;
    4. 云的接口,没有深入,应该不需要感知;

  9. symantec 于 2011-06-06 10:15 下午

    已经拿到这本书了,个人认为水分很重…跟冬瓜头的书有的一拼,干货太少。

  10. 吴朱华 于 2011-06-06 11:07 下午

    to symantec:
    symantec大牛,估计不是本书的受众,本书主要适合大多数普通的技术人员,对于干货太少,我觉得不同意,因为和同类书籍比,比较脚踏实地。最后期待symantec大牛的大作,希望是下一本《黑客与画家》^_^

  11. 理客 于 2011-06-06 11:38 下午

    外行对书的感觉也一样重要,比如老太太对白居易诗的评价,我属于外行,只看迷你书,就觉得很棒!

  12. 吴朱华 于 2011-06-07 12:23 上午

    TO 理客:
    谢谢支持^_^

  13. sa 于 2011-06-07 12:54 上午

    看了冬瓜头的书才知道为什么书名要有大话二字,实在不如预期的好,有凑数的嫌疑,
    而作者动辄以“对中国存储业死后后以”的叙述看得我鸡皮疙瘩都起来了。

  14. 冬瓜头 于 2011-06-07 5:02 上午

    sa,仁者见仁智者见智。请指出哪里凑数?我从来不刻意凑数,没意思。可能你的水平已经深不可测了,有些对你来讲是废话了,但是对初学者来讲就不一定了。

  15. 冬瓜头 于 2011-06-07 5:05 上午

    9楼,我没看过吴兄的书。不过你说大话存储干货太少,我是一百个不愿意的,我不避讳表达我的感受。里面一点武侠的文字,确实这里有水分,但是也就这么一点,人体还70%水分呢,你能说没用么?这些水分是维持你写下去的一种动力,一个引子,就像脐带一样。全书其他地方,你说哪里没有干货?我很反对这种盲人摸象的评价!

  16. symantec 于 2011-06-07 9:20 上午

    朱总,别这样喷我,没鄙视的意思,就事论事。

    前半本,太多描述行的文字,太多概念的解释,给的数据支撑真的不多,很多都是感性层面的认识。

    后半部关于YUNTABLE的解释,我还没看完,翻了一下,基本都关于开发环境的搭建和代码解释等。
    如果后面还能给一些继续深入的指引,比方,GFS的深入分析可以从什么什么角度来看。比如HADOOP到底适合哪些情况的应用?尽可能多的用数据来支撑论点。 等等,,细节。

    最后,还是陈怀临的 一句话,我比较赞同,bottom up, no top down….老外的书,都有这个特点,一点一点的剥,一点一点的讲,,,就像拨女人的衣服一样,一层一层的深入,一点一点的推进,最后就是裸体,全貌。 类似这种书,可读感更强,更有艺术。

    我必须承认,写一本书的难度,远远大于 在一本书里面找刺的难度。

  17. symantec 于 2011-06-07 9:25 上午

    冬瓜头,别激动,不要以为是我一个人这样评价的,玩存储的几个兄弟,我都问过了,说实话,评价不高。
    有来自HDS IBM 和EMC的兄弟。

  18. 陈怀临 于 2011-06-07 4:35 下午

    冬瓜头同学估计会比较受伤。。。但是换言之,作为科普读物也是不错的:-)

  19. sa 于 2011-06-07 5:47 下午

    冬瓜头兄弟,我没否定你的水平,我只是一个菜鸟而已,但这本书也不是深不可测,不是只有大牛才能评论吧。也许我说的不正确,你那部书好歹我也是花了银子的,你大可不必动肝火啊。
    我觉得一本书的好在于多一点不可,少一点亦不可,你自觉你的书完全做到了吗?如果是,你大可不必在乎我的评论。

  20. 冬瓜头 于 2011-06-07 6:34 下午

    17楼,那只能说明你问的人水平也不怎么样。hds和ibm的就牛了么?里面混子也是一堆一堆的。

  21. 日立 于 2011-06-07 6:50 下午

    冬瓜头的书粗读过

    入门书很不错了。就是有点太厚。。

  22. ADIDDAS 于 2011-06-07 7:25 下午

    淡定淡定……..

  23. jack 于 2011-06-07 7:36 下午

    评价一本书好坏,最好还是先理解了冬瓜头的书说了些什么,再找出反对冬瓜头的理论依据出来。如果就那么翻翻,就对一本书做出不怎么样的结论,那样是很无礼的。另外搬出IBM/EMC员工的评价,也得说出为啥不怎么样的原因。

    希望看到为了追求真理的PK,而不是情绪化的PK,这样的PK没有意思,冬瓜头也不必理会。

  24. 冬瓜头 于 2011-06-07 9:12 下午

    16楼既然说的头头是道的,bottom up,一点一点抠,那么你为何没有看到大话存储里面一点一点抠的那些文字呢?你为何只看到了一些缺点,比如武侠,武侠那也是抠出来的啊。我都抠到一个IO的流向去了,连网络包都给你抓了,你为何就自己蒙蔽自己眼睛呢?

  25. 吴朱华 于 2011-06-07 9:13 下午

    《云计算核心技术剖析》在china-pub上的排名已攀升至第一名http://product.china-pub.com/198143,谢谢大家的支持^_^

  26. 陈怀临 于 2011-06-07 9:37 下午

    冬瓜,出来混,特别是在弯曲,一定要有坚强的意志:)

  27. 冬瓜头 于 2011-06-07 10:11 下午

    是啊,首席说的是。我本身就是从泥坑爬出来的,不缺意志,催不跨的,只是给点阳光就容易灿烂,被泼点脏水反而容易发芽。谢谢诸位,还是希望看到对书中具体知识点的pk,而不是扯没用的,说实话浪费时间,而且不实评价还影响本书销量,鄙人当然要出面pk了。实不相瞒,对销量还是比较看重的。

  28. jkdo 于 2011-06-07 10:35 下午

    任何书都有适合的受众,没有一本书适合所有的群体,冬瓜的书就像《故事会》,有些人喜欢《小说月刊》,有些人喜欢《故事会》,这很正常。

  29. sa 于 2011-06-07 11:37 下午

    冬瓜头,你说为销量倒也是句大实话,但是要对认为别人的批评就认为是”脏水”,是所谓的“不实评价”恐怕实在没什么做人的雅量,这就算了。关键是不能太虚伪,这个是人格问题,否则你如何面对自诩的“鞠躬尽瘁,死而后已”?

  30. nb_cx 于 2011-06-07 11:47 下午

    29楼,你能简单说一下冬瓜头的书中讲了些啥主要观点么?是哪几点让你不能赞同?还是就技术论技术的比较好

  31. 冬瓜头 于 2011-06-07 11:53 下午

    乱喷完了人还要求别人给点雅量,哪怕你把第几页第几行属于凑数,凑了一半还是一大半还是全部凑数,还是几段文字属于无病呻吟凑数,我也感谢你啊。pk技术和书里具体的东西,随时恭候。

  32. nb_cx 于 2011-06-07 11:55 下午

    另外,冬瓜头武侠话语的问题,应该是为了让书内容更容易被读者理解,就跟小学生语文书上全是图画一样,为了让小朋友兴致盎然的去读,是一种修辞手段,对初学者会有帮助。对于高手,你完全可以忽略这些,直奔理论重点。

  33. 冬瓜头 于 2011-06-07 11:58 下午

    关于武侠的部分文字,大话2前面有个问答,是我和编辑的聊天记录,被他贴上来了。明确表示那些确实不合大体,但是那是这本书的一段脐带,现在已经不能扔了,当初如果没有这段脐带,可以说就没有这本书,写一本书容易么?你得有个引子引导自己走下去,当然,拿着材料黏贴复制的除外。有空大家也都试试把自己的观点写成书试试,不是黏贴复制这么简单的。

  34. sa 于 2011-06-08 12:08 上午

    我可不是技术八股。打个比方,如果有人说韩寒的文学造诣不如某位国学前辈,要不要逐字逐句的指出是哪几段文章不如呢?
    当然我很喜欢韩寒,冬瓜头,你说我喷是何意,我不如你写了那么大的部头著作,盼你对此详加解析。你如果只是这样的一个人,算我太抬举你了,不值得跟你去理论。
    我没病不呻吟,只是不吐不快。

  35. symantec 于 2011-06-08 12:13 上午

    http://product.dangdang.com/product.aspx?product_id=21058708&ref=search-1-pub

    大话在当当的评价,自己去看看吧,,我没在下面做评价

    《云计算核心技术剖析》
    里面谈到GFS的MASTER节点的问题,我想请教一下,MASTER到底是根据什么选举出来的?如果某个MASTER宕机,GFS会做什么动作,来重新选举一个MASTER出来?多谢!

  36. nb_cx 于 2011-06-08 12:20 上午

    34楼,恕我直言,如果有人说韩寒文学造诣不如某位国学前辈,你没有自己的思考就同意此观点,那只能说明你很愚蠢。在你那里,一个认真的读者的基本义务竟然变成了技术八股,你的“评论”没有论据很情绪化甚至人身攻击,说句不好听的,就是无理取闹。在读书并评论这两个工作上你需要被教导与指导。

    BTW:我不认识冬瓜头。

  37. sa 于 2011-06-08 12:25 上午

    我没思考,如何说我喜欢韩寒这个人?这说明你有思考??
    脑袋长在自己脖子上,你需要被教导自己去。
    你是不是冬瓜头不重要,重要的是你是他的粉。

  38. nb_cx 于 2011-06-08 12:27 上午

    35楼,如果想正儿八经的和冬瓜头PK的话,建议直接找出书中有问题的地方来PK,公道自会显露。

  39. nb_cx 于 2011-06-08 12:36 上午

    37楼,呵呵,是否思考不重要,重要的是不会不思考就下结论。哈哈,另外你从哪里得出来我是冬瓜头的粉?

  40. 冬瓜头 于 2011-06-08 1:03 上午

    35楼,每本书都有恶评,这你也信,都是竞争对手在拆台,各大出版社管用伎俩,当然,你根本不知道的。你说你是来喷的,真说对了。你有本事来pk技术啊,你有本事来pk具体的玩意,拿着别人的鸡毛当令箭,算个P你?

  41. 冬瓜头 于 2011-06-08 1:17 上午

    《大话存储2》E版材料,全部给出!下载地址:

    http://u.115.com/file/aq2ammoc

    http://vdisk.weibo.com/s/mw_R

    作者呕心沥血,希望大家拒绝任何形式的盗版,其中素材引用时请注明出处和作者。

  42. sa 于 2011-06-08 1:36 上午

    只有冬瓜头是无敌的,因为只有冬瓜头手持《大话存储》,掌握着世间真理,冬瓜粉在冬瓜头的带领下所向披靡,一切反冬瓜的牛鬼蛇神望风而逃。

  43. nb_cx 于 2011-06-08 1:48 上午

    41楼,你说我是冬瓜粉总得有点根据吧? 胡闹什么呀,好玩是么?

    我只是指出了一些问题而已,有理就说理嘛,真是拿你没办法。

  44. 冬瓜头 于 2011-06-08 1:52 上午

    sa,你该喷的书太多了,请放过大话存储,真的很没意思。你多喷一喷那些彻底黏贴复制的,多喷一喷高教版教材,比喷大话存储系列有意义多了,或者你干脆写一本出来,用行动说明什么不是凑数,什么才是干货,那将是最有意义的,届时我等一定学习,总结,提高。

  45. play 于 2011-06-08 2:06 上午

    sa回去估计要把冬瓜头的书烧掉了。

  46. 冬瓜头 于 2011-06-08 2:08 上午

    sa没这么小肚量的。毕竟他自己知道,里面干货还是很多的,瑕不掩玉。只是那个瑕疵太让他不爽了,不吐不快罢了,看这书,是又爱又恨。

  47. sa 于 2011-06-08 2:12 上午

    冬瓜头兄弟,我向党…sorry,..你保证我是不会写书的,你把刀架在我脖子上也写不出。 我要有自知之明。我向你保证,你的书,我在需要的时候肯定是会看的。我为啥喷你呢(看来’喷’不是一个贬义词,至少不等同’日’)。
    是因为你条件反射,你我上面说了什么大家看得清清楚楚,我根本没喷你。

  48. 冬瓜头 于 2011-06-08 2:16 上午

    怎么47楼出现首席的口头禅了呢?鹦鹉学舌啊,保持自己的风格最重要哈。好吧,那不是喷,是批评。我接受,书里面确实有些废话,但是已经融合到整体了,就像一块疤,或者胎记,要拿下来补上一块,还不如就这么留着,你说对吧?所以恳请您老允许我留在上面吧,您老息怒,就当没看见,看其他地方,别看那些废话。

  49. sa 于 2011-06-08 2:35 上午

    你说我是鹦鹉,就当我是鹦鹉吧。首席是我很敬仰的人,我向他老人家学习点也没什么不对的,总比向你学习还是稍微好点,你说是不是。

  50. 吴朱华 于 2011-06-08 3:36 上午

    to symantec:
    这方面你可以看看chubby的资料,书里面应该有^_^

  51. 冬瓜头 于 2011-06-08 3:52 上午

    这个赛门铁克估计不去真看的,他的目的就是要表达书里没写这块内容,不够干货,白花了钱了,还不如买盒烟抽抽毒害一下自己的肺。

  52. nb_cx 于 2011-06-08 3:54 上午

    作者如老师,冬瓜头不可太过呀!

  53. symantec 于 2011-06-08 4:29 上午

    冬瓜头 于 2011-06-08 3:52 上午 这个赛门铁克估计不去真看的,他的目的就是要表达书里没写这块内容,不够干货,白花了钱了,还不如买盒烟抽抽毒害一下自己的肺。
    ————————
    你是不是脑子有问题?本人诚心跟朱总请教。

  54. 理客 于 2011-06-08 7:35 上午

    作为读者,挺冬瓜头率直坚强的战斗精神,虽然在职场和公众生活未必讨好;但作为朋友角度说的话,适当弯曲一些,利大于弊

  55. 陈怀临 于 2011-06-08 8:20 上午

    # 冬瓜头 于 2011-06-08 1:17 上午 edit

    《大话存储2》E版材料,全部给出!下载地址:

    http://u.115.com/file/aq2ammoc

    http://vdisk.weibo.com/s/mw_R

    作者呕心沥血,希望大家拒绝任何形式的盗版,其中素材引用时请注明出处和作者。

  56. playmud 于 2011-06-10 9:18 下午

    那个。。。有电子版下载吗?
    连载何时能到核心技术这一章节?
    别只贴些”大话”的内容来忽悠人啊

  57. 吴朱华 于 2011-06-10 10:46 下午

    to playmud:
    mini书有电子版下载,http://u.115.com/file/clwpxtf2,mini书的内容都会连载

  58. thunder1814 于 2011-06-10 11:00 下午

    弱弱的问一句,《大话存储2》和《大话存储1》是啥关系?续集?

  59. 冬瓜头 于 2011-06-12 6:09 上午

    thunder1814你好,是的,但是续集中将前集包纳了进来并且做了修缮、细化和加深,之后,又增加了一半的全新内容。大话2将近900页。

  60. thunder1814 于 2011-06-13 7:08 上午

    谢谢,冬瓜头。。。:)

  61. -peter 于 2011-06-14 1:33 上午

    yunengine的界面曾经直接拷贝Sina App Engine的前端,说明作者曾经研究过SAE,但为何在书中支字未提我们国产的云计算产品呢?

  62. kernelchina 于 2011-06-14 2:14 上午

    国内有用amazon服务的公司吗?举个例子讲讲都需要注意哪些问题?另外国产IDC向云转移,这个有利可图吗?为什么没有国产的AWS和google app engine哪?

  63. 吴朱华 于 2011-06-14 11:54 下午

    to kernelchina:
    IDC到云是自然的一步,要做到AWS和google app engine成本很高。

  64. butloser 于 2011-06-15 8:57 下午

    弯曲啥时候成了泼妇战场了。。。

  65. 一点 于 2011-06-16 5:29 上午

    云之间不兼容,迁移云怎么办?live space我都懒得迁到sina了,个人用户尚且如此,企业级的用户怎么办?

  66. CJ 于 2011-06-17 11:56 下午

    口水战???

  67. multithreaded 于 2011-06-21 6:26 下午

    监控系统

    >全面监控云计算的运行主要涉及3个层面。其一 …。其二是虚拟资源层面,…
    >其三是应用层面,主要记录应用每次请求的响应时间(Response Time)和吞吐量(Throughput),以判断它们是否满足预先设定的SLA(Service Level Agreement,服务级别协议)。

    Q:以HTTP为例,那些系统能告知每一个HTTP的响应时间?

  68. Multithreaded 于 2011-06-22 1:41 下午

    >3. 检测层
    >这层比较简单,主要监控这个云计算中心的方方面面,并采集相关数据,以供用户层和机制层使用。

    实现起来可不简单,现在还是个研究课题,无法做到支持SLA.

    难道你说的是 概念上简单?

  69. hanweido 于 2011-07-01 2:02 上午

    to 62楼

    其实现在国内有不少公司在模仿AWS做公有云,但是这个东东还是有不少技术门槛的,没那么容易做好,例如虚拟化技术(hypervisor层)的积累不够

  70. menei 于 2011-07-05 10:32 下午

    有没有电子版的书可以购买? 我愿意花钱购买,但目前国内出版的书很难找到可以购买的电子版。。。我只能去买国外类似的书的电子版

  71. ZengLeiPro 于 2011-07-21 8:51 上午

    这个冬瓜头,从字里行间透露出对别人批评的完全不屑,一股听不进去任何话的做派。我只想对你说一句:还好你是做技术的。

    PS:本人只是某个小县城的小国企职员,与此楼任何人都不认识,搜索引擎查找云计算撞进来的,看到此人作风,实在受不了,忍不住打了几行字。

  72. 理客 于 2011-07-24 3:42 上午

    开放的文化应该能很好的容纳有个性的人才,使其有足够的发展空间。个性有个性的问题,个性也有个性的好处,整个学生时代遇到了太多有个性的人,回忆都是colorful。
    支持冬瓜头

  73. aaadai 于 2011-07-31 2:31 上午

    冬瓜头,你在华赛过的还好不?