AppScale用户手册-中文

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

翻译:万宁2011/05/09AppScale—开源的PaaS平台使用手册UCSB技术报告#2011-012011年1月ChrisBunch,NavrajChohan,ChandraKrintz加利福尼亚大学,计算机科学学院目录1.介绍..................................................................................................................31.1AppScale内部机制..............................................................................51.2GoogleAppEngine提供的API集合....................................................61.3其他的AppScaleAPI...........................................................................102.安装和部署....................................................................................................122.1部署AppScale.....................................................................................132.2高级部署策略.....................................................................................232.3常见错误.............................................................................................272.4社区支援(CommunitySupport)....................................................283.使用AppScale................................................................................................293.1数据库服务.........................................................................................293.2监测服务.............................................................................................303.3Neptune服务......................................................................................304.限制与未来工作............................................................................................314.1未来发展方向.....................................................................................325.致谢................................................................................................................331.介绍AppScale是加州大学圣塔芭芭拉学院在参加研究下一代编程系统时研发的,一个可扩展的、分布式的和故障容错的云操作系统。AppScale作为云计算组织结构中PaaS层(PlatformasaService)的云的平台,管理、执行虚拟化(如Xen、KVM等)或没有虚拟化的,通过流行的云计算架构(如Amazon、Eucalyptus等)构建起来的集群资源。AppScale平台通过write-onerun-anywhere(WORA)技术虚拟化、抽象并多路复用了云计算提供的各种系统服务,并通过简化使用云计算和分布式计算技术开发、部署应用程序的过程,AppScale带来了预制的、私有的、集群的云计算组织结构。为了实现这一目标,我们仿效了商业云计算系统的几个主要层面:(1)建立一个用户社区;(2)从实际应用出发进行研究和实验;(3)探索、综合其它基于开源技术实现的、扩展性强的云计算系统。我们选择了要效仿的第一个API是GoogleAppEngine。GoogleAppEngine是提供可伸缩的Web服务技术(消息,关键价值的数据存储,多任务处理,Web服务器支持,弹性,和资源管理等,其中)的云计算平台。使用GoogleAppEngine,开发人员使用Google体统的开放源码软件开发工具包(SDK)调试和测试所开发的非可扩展版本的基于API的应用程序。然后,开发人员将他们的代码和数据上传到Google的群集,就可以低价租用Google提供的对每个应用程序用户的付费使用(“pay-per-use”)业务了。AppScale实现了“开源”的GoogleAppEngine提供的API。这样,在GoogleAppEngine上部署运行的应用程序不需要修改私有群集资源和公共云基础架构就可以部署和运行在AppScale上。AppScaleAPI和服务的实现了目标应用的规模化,分布化,容错性,高性能,高可用性。我们充分利用成熟的开源技术,最大程度使这一点成为可能。AppScale实现了支持多种开发语言(Java,Python,Ruby)开发的运行应用前端(runtimefrontends)和广泛的开源数据存储技术(关键值存储、关系数据库等)。AppScale不是一个GoogleAppEngine或其他任何公共云服务平台的替代品,相反,AppScale是一个强壮的,跨多个应用程序动态分布资源的分布式系统。AppScale平台提供了包含GoogleAppEngine的服务和基本API在内的服务和API集。AppScale提供的这些技术对一些技术领域的应用,如数据分析和数据密集型的计算应用来说,显得尤其重要。AppScale以服务的形式提供这些技术,例如AppScale“service-izes”库,工具集和软件包,还包括了为GoogleAppEngine提供支持的MapReduce,x10.R和MPI等技术。AppScale为这些技术提供了自动配置,部署和分布式功能,以支持他们的弹性伸缩,负载均衡及容错能力。由于AppScale在云计算的应用层和服务及API层之间提供了一个软件层,那么我们可以在应用中加入现有的一些云服务。同样的,AppScale提供了一个“混合”云平台——一个编程系统,通过它应用程序可以同时或不同时地访问不同的云组织(公共云、私有云或混合云)提供的不同的服务。这些技术可以让开发人员在不同的云平台间移动数据,例如灾难恢复,容错,数据备份等,以减少公共云的成本(使用成本更低的替代品),并且可以从有限制的私有云资源“脱离”到公共云“要即有”的环境中。1.1AppScale内部机制图1显示了AppScale的布局,最高级别是一个负载平衡器(LoadBalancer),它路由传入的用户请求到一个应用服务器(ApplicationServer),这个应用服务器的副本可能存在于不同数量的远程主机上。应用层由大量的服务的集合所组成,通过排除各个应用间的重复任务的方式简化了应用程序的开发和部署。最底层是一个数据库服务系统,提供磁盘上的数据持续化存储功能。AppScale在自动提供服务的同时也自动提供了自动容错和自动扩展功能。自动化的关键是建立一个数据存储机制。AppScale支持许多用不同语言实现的不同设计的数据库系统,这些数据库系统有Cassandre,HBase,Hypertable,MongoDB,MemcacheDB,Scalaris,SimpleDB,MySQLCluster和Voldemort。图1AppScale的层次结构:负载均衡器,多个应用服务器,支持不同API的不同服务和持续化的数据存储1.2GoogleAppEngine提供的API集合最重要的,AppScale提供了GoogleAppEngine实现的API集合。这些API提供了多种可扩展的GoogleAppEngine服务。GoogleAppEngine的API集合包括了Blobstore,Channel,Datastore,Images,Memcache,Namespaces,TaskQueue,Users,URLFetch和XMPP。在上有每一个API的概述和功能介绍。我们在AppScale中使用开源软件系统,工具和一些开源服务仿效了这些API并开发了一些其他的新的组件。这些API的分布式执行,是我们能够提供云计算平台应用程序的隔离性,可扩展性,弹性和容错性。这与GoogleAppEngine只在单机上提供调试和测试SDK形成鲜明的对比。我们将在第4节描述AppScale目前不支持的API的一些特性。BlobstoreAPIBlobstoreAPI使用户能够存储二进制数据,文本和大型的数据实体。通过在一个窗体应用程序中输入文件名的形式来实现数据上传。使用BlobstoreAPI,上传的文件大小不受限于传统的Bolb字段的1MB大小的存储限制。ChannelAPI该API允许应用程序从应用程序服务器到客户端的浏览器推送消息。应用程序必须注册申请一个服务令牌,而JavaScript库则使用这个服务令牌顺序连接到一个消息服务。ChannelAPI对创建在线聊天或实时多人游戏这类的应用程序显得十分有用。AppScale实行了相同的消息推送机制,注册登记了应用令牌的程序可以将消息推送至多个接收者,而GoogleAppEngine在此上强制限制了每个消息发送通道只能有一个接收者。AppScale使用了Ejabberd和Strophejs技术实现channelAPI。DatastoreAPI数据存储APIDatastoreAPI实现了数据持久性。此API提供了许多有用的功能来将各种数据操作映射为简单的PUT,GET,DELETE,QUERY操作.谷歌查询语言(GoogleQueryLanguage/GQL)与标准SQL语句类似,是一个SQL的子集,但从根本上讲,它缺乏对数据的关系操作,例如JOIN和MERGE操作,AppScale使用了内存过滤器来过滤GoogleAppEngine在范围查询数据时映射而成的GQL语句。AppScale使用了和GoogleAppEngine相同的事务语义处理机制(multi-row/key,atomicupdates等)。事务只能在一个实体组内进行,实体组是一个描述数据存储元素之间关系的可编程化的构件。同样,交易则通过应用程序将它传送到GoogleAppEngine的“run_as_transaction”功能时表现出来。AppScale中所有的数据存储操作事务遵循“读-写”独立的ACID标准。(ACID-compliantwithREAD-COMMITisolation)AppScale的事务执行是数据无关的,它依赖ZooKeeper来锁定目标实体组。ZooKeeper存储了有关哪些实体当前被锁

1 / 35
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功