《云计算:原理与范式》一1.7 平台即服务供应商-阿里云开发者社区

开发者社区> 华章出版社> 正文

《云计算:原理与范式》一1.7 平台即服务供应商

简介: 本节书摘来自华章出版社《云计算:原理与范式》一书中的第1章,第1.7节,作者 (澳)Rajkumar Buyya James Broberg Andrzej Goscinski,更多章节内容可以访问云栖社区“华章计算机”公众号查看

1.7 平台即服务供应商

作为一个服务供应商的公共平台,通常会提供一个开发和部署环境,使用户能够创建和运行他们的应用。用户很少或者根本不会关注平台的低层次细节。此外,在该平台中可以使用特定的编程语言和框架以及其他服务,例如持久性数据存储和内存中的缓存。

1.7.1 特点

编程模型、语言和框架。IaaS供应商提供的编程模型定义了用户应如何使用更高级别的抽象来表达他们的应用,并在云计算平台上高效地运行这些应用。每种模型旨在有效地解决特定问题。在云计算领域,需要专门模型的最常见活动有计算机集群中大型数据集的处理(MapReduce模型)、基于请求的Web服务发展和应用、工作流形式的业务流程的定义和编排(工作流模型)与各种计算任务的高性能分布式执行。
为了方便用户,PaaS供应商通常支持多种编程语言。在平台上最常用的语言包括Python、Java(例如,Google AppEngine)、.NET语言(例如,MicrosoftAzure)和Ruby(例如,Heroku)。Force.com已经制定了自己的编程语言(Apex)和一个类似Excel的查询语言,它对重要平台的功能提供了更高层次的抽象。
各种软件框架通常提供PaaS的开发,这取决于应用的侧重点。专注于Web和企业应用托管的供应商提供了流行的框架,如Ruby on Rails、Spring、Java EE和.NET。
持久性选项。持久层是必不可少的,这允许应用记录它们的状态以及在崩溃的情况下将其恢复并存储用户数据。传统上,Web和企业应用开发人员选择了关系数据库作为其首选的持久性方法。这些数据库提供了快速和可靠的结构化数据存储及事务处理,不过,在处理商用计算机中存储的几个PB的数据时,可能会缺乏可扩展性[71]。
在云计算领域,已经出现了分布式存储技术。它们以关系结构和便捷的查询语言为代价,从而寻求高可扩展性。例如,AmazonSimpleDB和Google AppEngine的数据存储提供了schema-less、自动索引的数据库服务[70]。只有个别表可以进行数据查询,也就是说,为了扩展性尚不支持连接操作。

1.7.2 案例研究

在本节中描述了一些平台即服务(PaaS)产品的主要特点。VI管理器更加详细的直观功能比较请参见表1.3。
Aneka。Aneka[72]是以.NET为基础的面向服务的资源管理和开发平台。Aneka部署(称为Aneka云节点)中的每一台服务器托管在Aneka容器中,提供基本的基础设施服务,包括持久性、安全(授权、认证和审计)和通信(消息处理和调度)。云节点既可以是物理服务器、虚拟机(支持XenServer和VMware),也可以是租用Amazon EC2的实例。
Aneka容器也可以承载任意数量的可选服务,它们可由开发人员添加以增强Aneka云节点的能力,从而提供一种单一的、编排各种应用模型的可扩展框架。
image

这种工作模型使传统的高性能计算应用和MapReduce支持多种编程模型,从而启用各种数据挖掘和搜索应用。
用户通过客户端预定Aneka主节点的服务管理器来请求资源,负责管理所有的云节点,并包含将调度服务分发请求到云节点。
App Engine。Google App Engine使用户在Google提供的弹性基础设施上运行其Python和Java Web应用。App Engine允许应用动态改变,为流量和数据存储的要求增加或减少规模。在Python栈和Java之间,它为开发人员提供了一个选择。App Engine引人注目的服务架构允许实时自动缩放,没有许多常见Web应用类型的虚拟化。然而,这种自动缩放依赖于每个平台上应用开发人员使用有限的本机API子集。在某些情况下,需要使用特定的Google API,如URLFetch、Datastore,并用memcache缓存替换某些本机API调用。例如,部署的App Engine应用不能直接写入到文件系统(必须使用Google的Datastore),或者打开一个套接字或直接访问另一台主机(必须使用Google的URL获取服务)。Java应用还无法创建一个新线程(thread)。
Microsoft Azure。MicrosoftAzure云计算服务为开发人员提供了一个托管的.NET堆栈(C#、VB.NET、ASP.NET)。此外,也可以使用基于.NET服务的Java和Ruby软件开发包(SDK)。Azure系统由若干要素组成。Windows Azure结构控制器(Fabric Controller,FC)提供自动缩放和可靠性,并管理内存资源和负载均衡。.NET服务总线(Service Bus)注册应用并将这些应用连接在一起。.NET访问控制身份验证提供者的企业目录和Windows LiveID。最后,.NET工作流允许构建和执行工作流实例。
Force.com。与Salesforce.com服务相结合,Force.com PaaS使开发人员能够创建附加的功能,将其整合到主要Salesforce CRM的SaaS应用中。
Force.com为开发人员提供了两种方法创建应用,这些应用可在其SaaS平台上部署:一个托管的Apex或Visualforce应用。Apex是一个专有的类似Java的语言,可用于创建Salesforce应用。Visualforce构建的用户界面类似HTML、AJAX或Flex中XML的语法,使其覆盖在Salesforce托管的CRM系统上。它还提供了一个所谓的AppExchange应用商店,以提供有偿和免费的应用目录。
Heroku。Heroku是一个即时部署Ruby on Rails的Web应用平台。在Heroku系统中,服务器是不可见的管理平台,用户无法接触。应用自动分散在不同的CPU内核和服务器上,最大限度地提高性能和减少内容。Heroku有先进的逻辑层可以自动绕过故障路线,以确保在任何时候都无缝和不间断地提供服务。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

华章出版社

官方博客
官网链接