appengine google com

zhangyang 2022-04-30 阅读:31
  

概述

  云计算的一些基础知识前面已经介绍过了。今天主要分享云计算的架构。你可以简单看一下。

云计算的架构

  云计算涉及很多产品和技术,表面上看确实有点复杂,但云计算本身还是有迹可循的,也是理性的。这里有一套云计算架构,具体请看图。

详解云计算服务架构:IaaS+PaaS+SaaS

  上面的云架构分为两部分:服务和管理。

  在服务方面,主要为用户提供各种基于云的服务,包括三个层次:一是Software as a Service软件即服务,简称SaaS,这一层的作用是主要以基于Web的方式向客户提供应用;第二个是Platform as a Service平台即服务,简称PaaS。这一层的作用是向用户提供一个应用开发和部署平台即服务;第三种是Infrastructure as a Service基础架构即服务,简称IaaS。这一层的作用是为用户提供各种底层计算(如虚拟机)和存储资源作为服务。从用户的角度来看,这三层服务之间的关系是独立的,因为它们提供完全不同的服务,面对不同的用户。但是,从技术角度来看,三层云服务之间的关系不是独立的,而是依赖的。例如,一个SaaS层的产品和服务不仅需要使用SaaS层本身的技术,还需要依赖PaaS层提供的开发部署平台或者直接部署在IaaS层提供的计算资源上。此外,PaaS层的产品和服务很可能构建在IaaS层服务之上。

  在管理方面,以云管理为主,其作用是保证整个云计算中心能够安全稳定的运行,能够得到有效的管理,包括用户管理、监控系统、计费管理、安全管理、服务管理、资源管理、容灾支持、运维管理、客户支持等。

  下面主要介绍Saas,PaaS,IaaS。

详解云计算服务架构:IaaS+PaaS+SaaS

1、软件即服务SaaS

  软件即服务(SaaS)为商业软件提供基于网络的访问。有可能你已经用过SaaS,即使你当时并不知道。Photoshop.com,Acrobat.com,网飞,Intuit QuickBooks Online,Gmail,Google Docs,Office Web Apps,Zoho,WebQQ,新浪微盘等等,SaaS的例子太多了。不太明显的SaaS实现包括了移动应用市场的相当一部分。

详解云计算服务架构:IaaS+PaaS+SaaS

  use-按需使用软件而不是为每台计算机购买许可证. SaaS为企业提供了一种降低软件成本的方法,尤其是考虑到大多数计算机几乎70%的时间都处于闲置状态,SaaS非常有效。企业不应该为单个用户购买多个许可证,而应该让许可证的使用时间尽可能接近100%,从而尽可能节约成本。

  1.1 SaaS的优势

  SaaS为软件供应商提供了新的机会。特别是,SaaS软件供应商可以通过四个因素来提高ROI(投资回报):提高部署速度、提高用户接受率、减少支持需求以及降低实施和升级成本。

  (1)提高部署的速度

  过去,部署传统桌面应用程序需要大量工作。正如塔里克艾哈迈德(Tariq Ahmed)在《Flex 4 in Action》(曼宁出版社)的第一章中指出的那样,“如果你想让成千上万甚至上万个客户端同时运行某个版本的软件,后勤的复杂性是非常高的。”

  这是向云计算过渡缓慢而温和的主要原因之一。大多数情况下,考虑到开发者对版本控制的控制水平,符合逻辑的解决方案是分阶段地把软件转移到云中,首先以SaaS的形式提供原应用程序的高度简化的版本。这样做是合理的。

  云计算和过去的“局域网计算”有很多相似之处。典型的局域网体系结构由一个站中的许多工作站组成,这些工作站通常被称为哑终端。它们连接到强大的大型机(

常常由IBM 提供)运行应用程序。这种计算类型过去非常适合企业,因 IT部门能够完全控制版本,可以非常方便地多次部署更新。同样,过去妨碍桌面软件应用程序开发商进行版本控制的后勤障碍在云中也不存在,因为软件在开发公司能够直接访问的基础设施上运行。

  考虑到SaaS必须能够服务的客户机数量,SaaS基础设施的规模要比LAN大得多。但是底层的概念是相同的。大型机能够驻留足够多的软件实例,从而为本地网络中连接它的所有客户机提供服务;而云由许多不同的计算机资源组成,它们共同提供计算能力,从而运行为世界各地的客户机提供服务所需的许多软件实例。

  (2)增加接受率

  以前一些软件的许可证费用太高,而现在SaaS让一般消费者能够以合理的价格使用它们。一个好例子是 Adobe 以SaaS的形式提供Adobe Photoshop。尽管这项工作是Adobe正在做的试验,但是已经取得了一些效果。

  SaaS提供的多种业务模型尤其有吸引力。例如,Intuit 以SaaS的形式提供QuickBooks Online,按月收取服务费。作为经常旅行的企业主,这种服务非常有用。同时,Adobe在Photoshop.com和Acrobat.com中应用了SaaS,以freemium服务的形式提供软件 ― freemium服务是指一种基于许可证软件产品的SaaS缩略版的业务模型。

  freemium SaaS基于的收入模型是,预计免费用户中的一部分最终会觉得软件很有用,他们会升级到启用了更多特性的SaaS付费版本,或者购买包含所有特性和功能的桌面版本的许可证。这种方法往往比通过 “受限制的演示” 模式试用软件更好,因为演示模式要求用户在桌面计算机上安装他们可能不会购买的应用程序。另外,如果免费用户中升级的比例低于预期,还可以通过广告进一步补充这个模型。随着云计算的发展,传统的桌面软件厂商经常使用这种方法适应市场的变化。

  (3)减少支持的需要

  大型客户服务中心的成本很高,不得不支持多种平台会导致支持问题增加,而SaaS可以大大缓解这些难题。首先,部署的简便性让开发人员能够在发现bug之后很快进行修复,这意味着大多数bug可以在大量用户遇到它们之前被修复,这会减少客户支持部门接到的电话数量,提高客户满意度,降低客户流失的可能性。

  另外,传统桌面软件应用程序的开发商常常必须支持多种平台。例如,开发商可能必须支持Windows 7和Apple Mac OS X 10.6操作系统,添加对第二种操作系统的支持差不多会让开发成本加倍;而且,如果支持这些操作系统的许多不同版本,问题会更多。支持操作系统的多个版本还会产生限制。

  (4)降低实现和升级的成本

  SaaS推动ROI的第四个因素与第一个因素有点儿相似。但是,部署的速度是指快速、简便地部署应用程序更新所带来的好处。与之相反,降低实现和升级的成本是指开发公司由于能够控制版本和运行软件的基础设施所获得的经济利益。

  因为开发商可以控制运行软件的平台(平台通常对于用户完全透明),所以他们不必负担在多个平台上测试和部署bug补丁和新特性的额外开销,这会节省大量资金。这让SaaS应用程序的升级成本更低。节省的大量时间和资金让开发商有机会更好地响应客户的请求并增强易用性,从而提高客户满意度,降低客户流失的可能性,这会带来间接的经济利益。

  1.2 SaaS使用的技术

  SaaS层离普通用户非常接近,下面是其中最主要的五种:

  (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#来进行编程,所以对开发者非常友好。

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


2、平台即服务PaaS

  平台即服务(Platform as a Service,PaaS)提供对操作系统和相关服务的访问。它让用户能够使用提供商支持的编程语言和工具把应用程序部署到云中。用户不必管理或控制底层基础架构,而是控制部署的应用程序并在一定程度上控制应用程序驻留环境的配置。PaaS的提供者包括Google App Engine、Windows Azure、Force.com、Heroku等。小企业软件工作室是非常适合使用PaaS的企业。通过使用云平台,可以创建世界级的产品,而不需要负担内部生产的开销。

详解云计算服务架构:IaaS+PaaS+SaaS

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

  2.1 PaaS的优势

  一般来说,和现有的基于本地的开发和部署环境相比,PaaS平台主要有下面这六方面有非常大的优势:

  (1)友好的开发环境:通过提供SDK和IDE(Integrated Development Environment ,集成开发环境)等工具来让用户不仅能在本地方便地进行应用的开发和测试,而且能进行远程部署。

  (2)丰富的服务:PaaS平台会以API的形式将各种各样的服务提供给上层的应用。

  (3)精细的管理和监控:PaaS能够提供应用层的管理和监控,比如能够观察应用运行的情况和具体数值(比如吞吐量Throughput和响应时间Response Time等)来更好地衡量应用的运行状态,还有能够通过精确计量应用使用所消耗的资源来更好地计费。

  (4)伸缩性强: PaaS 平台会自动调整资源来帮助运行于其上的应用更好地应对突发流量。

  (5) 多租户(Multi-Tenant)机制:许多PaaS平台都自带多租户机制,不仅能更经济地支撑庞大的用户规模,而且能提供一定的可定制性以满足用户的特殊需求。

  (6)整合率和经济性:PaaS平台整合率是非常高,比如PaaS的代表Google App Engine能在一台服务器上承载成千上万的应用。

  2.2 PaaS的主要成分

  PaaS分解为主要组件:平台和服务。考虑提供的服务,这称为解决方案堆。也就是说,PaaS 的两个主要成分是计算平台和解决方案堆。

  为了说明这两个 “成分”,我们进一步研究一下它们的定义。按照最简单的形式,计算平台是指一个可以一致地启动软件的地方(只要代码满足平台的标准)。平台的常见示例包括 Windows、Apple Mac OS X和Linux操作系统;用于移动计算的Google Android、Windows Mobile和Apple iOS;以及作为软件框架的Adobe AIR和Microsoft .NET Framework。要记住的重点是,计算平台不是指软件本身,而是指构建并运行软件的平台。下面提供一张示意图以帮助理解这种关系。

详解云计算服务架构:IaaS+PaaS+SaaS

  云计算分类与PaaS元素之间关系的图形化解释

  解决方案堆由应用程序组成,这些应用程序有助于开发过程和应用程序部署。这些应用程序是指操作系统、运行时环境、源代码控制存储库和必需的所有其他中间件。

  2.3 PaaS使用的技术

  PaaS 层的技术比较多样性,下面是常见的五种:

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


3、基础架构即服务IaaS

  基础架构,或称基础设施(Infrastructure)是云的基础。它由服务器、网络设备、存储磁盘等物理资产组成。在使用IaaS时,用户并不实际控制底层基础架构,而是控制操作系统、存储和部署应用程序,还在有限的程度上控制网络组件的选择。

详解云计算服务架构:IaaS+PaaS+SaaS

  通过IaaS这种模式,用户可以从供应商那里获得他所需要的计算或者存储等资源来装载相关的应用,并只需为其所租用的那部分资源进行付费,而同时这些基础设施繁琐的管理工作则交给IaaS供应商来负责。

   IaaS的关键概念:

   * 云爆发(cloud bursting)

   * 多租户计算(multi-tenant computing)

   * 资源共用(resources pooling)

   * 虚拟机监控程序(hypervisor)

   IaaS最与众不同的两个方面:可伸缩性和虚拟化(elasticity and virtualization)。

  对于企业而言,IaaS的巨大价值通过云爆发(cloudbursting)概念实现。云爆发是指当业务瞬间增长,需要大量的计算资源时,将任务负载扩展到云环境的过程。云爆发促成的资本节约潜力巨大,因为企业无需额外投资利用率很低的服务器,那些服务器一年中只有两三次使用 70% 的容量,其余时间仅有 7-10% 的负荷。

  3.1 从”基础架构即资产“到”基础架构即服务”

  在过去50年之内,大量成功的公司花费大量宝贵时间和资源来构建基础架构,其目标是通过创建一个更大、更快、更强的网络来获取战胜其竞争对手的竞争优势。IT 行业中的 “基础架构即资产” 范式拥有上世纪六七十年代的 “暴力跑车(muscle cars)” 所拥有的相同或类似的低效率和不利特征。对于企业计算,这些低效率包括:

* 大量未使用的计算能力和容量,它们耗费的成本与大型、昂贵的数据中心中的硬件消耗的大量空间相关联。比如服务器一年中可能只有两三次使用70%的容量,其余时间仅有7-10%的负荷。* 昂贵的人力资源需求,包括要求基础架构资产(服务器、路由器、交换机等)所在的数据中心的网络管理员进行24小时监控。* 旨在应对高水平能源浪费的Green Computing计划的一个巨大障碍。

  IaaS标志着从 “基础架构即资产” 到 “基础架构即服务” 的转变。云计算的其他两个类别也标志着范式转变。对于Platform as a Service (PaaS),转变来自 “平台即资产” 范式,该范式的特征是大量采购许可。同样的转变也适用Software as a Service (SaaS),这种转变是从 “软件以许可形式作为组织资产” 到 “软件以服务形式提供”。

  3.2 IaaS的主要特征

   (1)可伸缩性

  可伸缩性是IaaS的首要关键特征。

  假设云由一些粘在一起的棉花糖簇组成,这样人们就可以坐在它们上面。每个棉花糖都能承载一定数量的人,具体取决于组成云的棉花糖簇的数量和那些簇中包含的棉花糖的数量。随着越来越多的人登上棉花糖云,可以通过粘贴更多的棉花糖来扩展棉花糖簇,增加表面面积。人代表需要计算资源的应用程序,比如承载网站并运行软件的资源。棉花糖簇代表VM集群,每个棉花糖代表一 VM。

  尽管这听起来有点像Seuss博士的书中可能出现的内容,但它提供了一种方法来理解许多黑魔法(dark art)考虑的一个概念:可伸缩的集群(elastic clustering)。集群化几个物理服务器来形成一个虚拟云称为云集群(cloud clustering),如果它真是一种黑魔法,则精通程度可以通过一位艺术家的系统设计的可伸缩性来衡量。

  (2)虚拟化

  IaaS很容易定位,因为它通常是独立于平台的。IaaS有一个硬件和软件资源组合组成。IaaS软件是低级代码,独立于操作系统运行,例如虚拟机监控程序。虚拟机监控程序负责管理硬件资源的库存并根据需要分配上述资源。这个过程称为资源共用(resource pooling)虚拟机监控程序实现的资源共用使得虚拟化成为可能,虚拟化使多租户计算(multi-tenant computing)成为可能。多租户计算概念指由几个组织共享的一个基础架构,这些组织在安全需求和遵从性问题方面有类似的兴趣。

详解云计算服务架构:IaaS+PaaS+SaaS

  VMs、虚拟机监控程序和计算机之间的关系

  通过 IaaS,我们可以拥有提供处理、存储、网络和其他计算资源的能力,可以在那里部署和运行任意软件,比如操作系统和应用程序。大多数云计算用例遵循已经习惯的基础分层结构:一个软件解决方案堆栈或平台被部署在一个网络基础架构上,一些应用程序在那个平台之上运行。但是,虚拟化使得云范式独一无二。

  3.3 IaaS的优势

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

  (1)免维护:主要的维护工作都有IaaS云供应商负责,所以不必用户操心。

  (2)非常经济:首先免去了用户前期的硬件购置成本,而且由于IaaS云大都采用虚拟化技术,所以在应用和服务器的整合率普遍在10以上,这样能有效降低使用成本。

  (3)开放标准:虽然很多IaaS平台都存在一定的私有功能,但是由于OVF等应用发布协议的诞生,使得IaaS在跨平台方面稳步前进,从而使得应用能在多个IaaS云上灵活的迁移,而不会被固定在某个企业数据中心内。

  (4)支持的应用:因为IaaS主要是提供虚拟机,而且普通的虚拟机能支持多种操作系统,所以IaaS所支持应用的范围是非常广泛的。

  (5)伸缩性强:IaaS云只需几分钟就能提供用户一个新的计算资源,而传统的企业数据中心则往往需要几周时间,并且计算资源可以根据用户需求来调整其资源的大小。

  3.4 IaaS使用的技术

  在IaaS所采用的技术方面,都是一些比较底层的技术,其中有四种技术是比较常用的:

  (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则推出基于NoSQL技术的Simple DB 。


详解云计算服务架构:IaaS+PaaS+SaaS

  分享一个跨概念矩阵来理解云计算的这三个类别:

详解云计算服务架构:IaaS+PaaS+SaaS

  三个云计算类别的跨概念矩阵

  后面会分享更多云计算方面内容,感兴趣的朋友可以关注下~

详解云计算服务架构:IaaS+PaaS+SaaS

  

评论(0)

二维码