从多种平台中选择一个合适云平台的入门指南

本文作者将介绍一些领先的云计算平台,并提供关于这些云计算平台可以处理的用例指导。

平台即服务 (PaaS) 通常被认为是三种主要的云计算服务交付模型之一,另外两种是基础架构即服务和软件即服务。它加速了云应用程序开发,提供了托管基础架构、简单而又灵活的资源分配以及丰富的工具和服务,通过这些帮助实现高效的代码和运行时性能。

然而,这个术语却掩饰了云平台的广泛的多样性。粗看起来,Windows® Azure 和 Google App Engine 或 Force.com 之间似乎没什么共通性。Amazon Web Services (AWS) 采用一种完全不同的方法逐渐从 IaaS 迁移到 PaaS。而私有平台,比如 VMware® 提供的平台,则满足了另外一些需求。本文将介绍一些领先的云计算平台,并提供关于这些云计算平台可以处理的用例的指导。

历史

PaaS 是融合了两种趋势而形成的:

IaaS 并不是最理想的云计算平台。 web 应用程序的发展演变。

基础架构服务为希望扩展或将其应用程序迁移到云环境中的客户提供了许多优势;然而,基础架构服务通常运行在为桌面或传统的客户机-服务器环境而设计的平台上。它们目前可能已经实现了虚拟化,但并未针对云而进行优化。

第二个值得注意的趋势是 Web 托管站点的不断演变。GeoCities 等在 20 世纪 90 年代中期就提供了 HTML 托管服务;然而,Web 托管服务的数量曾以惊人的速度在增长,这些服务支持各种活跃的服务器端组件,其中包括 Microsoft® ASP.NET 和 Java 技术,以及 PHP、Python 和 Ruby on Rails 脚本等。与基础架构服务相比,这些平台减少了每个应用程序的存储需求并简化了部署。

考虑事项

在选择 PaaS 云时,云应用程序开发人员、云迁移专家或正在实现云的管理员有哪些基本选择?

开放云、专有云或混合云(以及混合方式)……了解每种类别的一些概念即可。 托管结构和限制:支持哪些内容,不支持哪些内容,等等。 资源分配方式:自动化程度,易于开发 (ease to tap),解除资源分配是否和分配一样简单,等等。 数据存储功能和方法:持久性自动存储还是根据请求执行存储,等等 支持的开发工具和管理工具 性能和事务类型及数量。 各种云组件的安全性:如何实现安全性?

Google App Engine

Google App Engine 是目前已知的最好的平台之一。除了提供基本的运行时环境之外,它还消除了在构建可扩展至数百万用户的应用程序过程中可能遇到的系统管理和开发挑战。它提供了一些工具,可将代码部署到集群,并提供了诸如监视、故障转移、自动扩展和负载平衡等功能。

Google App Engine 最初仅支持基于 Python 的运行时环境,之后又增加了对 Java Virtual Machines (JVM) 的支持,因此,它不仅能够支持使用 Java 编写的应用程序,而且还能够支持使用其他 JVM 语言编写的应用程序,比如 Groovy、JRuby、Jython、Scala 或 Clojure。软件开发工具箱包括了完整的本地开发环境,可以在开发人员的台式机上模拟 Google App Engine。

Google App Engine 对编程语言有一些限制。例如,Python 模块必须是纯 Python 模块,因为 C 和 Pyrex 模块不受支持。同样,Java 应用程序只能使用 Java Runtime Environment (JRE) Standard Edition 类的一个子集;它们无法创建新的线程。

清单 1 展示了 Google App Engine 中的一个简单的 “Hello World” 应用程序。

清单 1. Google App Engine “Hello World”

from google.appengine.ext import webappfrom google.appengine.ext.webapp.util import run_wsgi_appclass Main
Page(webapp.RequestHandler): def get(self): self.response.headers['Content-Type'] = 'text/plain' self.response.out.write('Hello, World!')application = webapp.WSGIApplication( [('/', MainPage)])def main(): run_wsgi_app(application)if __name__ == "__main__": main()

不同应用程序使用的实际代码是明显不同的。如清单 1 中的 Python 例子所示,如果应用程序逻辑很少的话,那么命令会非常简单。需要导入 SDK 中包含的一些模块并定义一个请求处理程序 MainPage,它处理所有到根 URL 的 HTTP GET 请求。该方法可以使用 self.response 对象编写 HTTP 响应。run_wsgi_app() 函数获取一个 WSGIApplication 实例并在 Google App Engine 的 Common Gateway Interface (CGI) 环境中运行它。如果您的需求不多的话,那么使用这些代码内容就足够用了。

Google App Engine 数据存储使用乐观并发控制 (optimistic concurrency control) 支持查询、排序和事务。这是一种高度一致的分布树数据库,它基于低级的 BigTable 数据存储系统并增加了一些额外的功能。Google App Engine 的查询语言(称为 GQL)在 SELECT 语句中类似于结构化查询语言 (SQL),但是有一些明确的限制。例如,GQL 不支持 JOIN 语句,因此只能接受单一的表查询。

尽管该环境存在一些限制,它还是提供了丰富的应用程序编程接口 (API)。除了前面提到的数据存储功能外,它还提供了一组库函数:

身份验证。 应用程序可以与 Google 帐户交互,从而实现用户身份验证。它可以指引用户登录 Google 帐户并访问电子邮件地址,并在用户完成身份验证后显示用户名。OpenID 用户还可以在任何 OpenID 供应商处创建一个身份,并使用该身份对 Google App Engine 应用程序进行身份验证。 Memcached。 Memcached 服务为应用程序提供了一个内存键值对缓存,可供多个应用程序实例访问。不对临时数据使用持久性和事务性特性将会很有用,比如在本地缓存数据存储,以实现高速访问。 调度任务。cron 服务允许用户调度按固定时间间隔运行的任务,例如,每天或每小时运行一次。应用程序甚至可以执行添加到队列本身的任务。例如,它可以在处理请求时提交后台任务。

时间: 2024-09-15 02:24:07

从多种平台中选择一个合适云平台的入门指南的相关文章

在PHP世界中选择最合适的模板与使用方法第1/2页_php模板

在PHP世界中选择最合适的模板 /google 的广告条--> 事情的起因:你用过FastTemplate吗?对于PHP工程中的模板应用,其实我和我的同事们已经在许多的项目中接触过--关于它的好处,我想无论是在实际开发阶段还是上升到设计模式的角度都已经有很多"前辈先哲"讨论过了.就项目实施而言,在一些中型甚至大型的项目中,有效的将HTML(还有其他文本形式的表现层)和PHP代码分开,不仅在开发阶段可以分别提高界面设计人员和应用程序编写人员的工作效率,更会给项目的测试和维护带来巨大

微信开放平台中的公众号第三方平台 关于全放发布的一个问题!

问题描述 微信开放平台中的公众号第三方平台 关于全放发布的一个问题! 第三方开放平台全网发布的时候,微信会进行模拟粉丝发送消息检测代码的正确性. 文档中提到XML中有个eventtype,我在后台解密事件的xml中没有这个字段.文章"> 我就用event字段的location作为eventtype回复.但是一直失败,微信来人说也是这个字段. 但是我回复后一直错误. 有人做过吗?做过的求来... 没分只能感谢各位大神了!!! 解决方案 Event的type就是 Event的值. 请问你的[返

js-JS从单选框中选择一个值后,点击提交后显示出该值!请问我的代码怎么修改啊啊?

问题描述 JS从单选框中选择一个值后,点击提交后显示出该值!请问我的代码怎么修改啊啊? <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <script type="text/javascript" language="javascript

互联平台纷繁芜杂,MM云平台机会几何?

随着移动互联网的不断发展,传统互联网巨头开放的网络平台吸引着大量的人群.近日,中国移动终于按捺不住,联合其合作伙伴正式推出MM云开发平台.中国移动试图转变以往的单一化运营,以全新的面孔涉足电信增值应用服务. MM云开发平台的上线,是中国移动从移动通信到移动信息再到现在的移动互联平台的又一力作.移动MM云开发平台能走多远尚不得而知,但可以看出,在竞争激烈的互联网时代,中国移动的移动互联网基因正悄无声息的孵化. 互联平台纷繁芜杂,MM云平台机会几何? 近日,移动应用搜索行业报告指出:由于移动应用分发

如何选择一个合适的建站系统?

当前网站建设已经成为大多数企业的互联网渠道,随着建站技术的不断进步,建站系统也逐渐增多,关键在于选择合适的方式. 现在的互联网经济极为火爆,这引起了很多即使不懂互联网的一些电脑小白们,也希望能够开设一个网站,从而在这个互联网经济中分得一点残羹冷炙.而且随着互联网经济体量不断的增大,即使收获一点残羹冷炙,也会得到丰厚的回报.而这也正式对很多新手站长产生吸引力的关键. 由于网站建设系统的存在,现在建设一个网站的难度开始变得很低,即使是一些电脑小白,通过简单的培训,就能够非常轻松的建设一个属于自己的网

中启创出版云平台助力数字出版产业腾飞

近日,数字出版第一云--中启创科技受邀参加了由新闻出版总署支持.中国新闻出版研究院主办,主题为"数字出版:新发展 新举措 新期待"的2012中国数字出版年会.中启创科技副总裁王钧出席20日上午的国家数字出版基地建设圆桌会议以及主论坛上的主题演讲,受到了各基地领导和各省市新闻出版局领导的关注.在开幕首日的主要演讲中,新闻出版总署副署长孙寿山对中启创为数字出版产业发展作出的贡献大力称赞. 孙署长说:近两年,数字出版技术发展的重点,逐渐由终端研发转向平台建设.如跨平台阅读技术,可以实现跨越多

俊俊站站谈第二站:站长应该如何选择一个合适的域名

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 域名对于一个网站是非常重要的,但是现在好的域名却越来越少了,那么作为一个站长应该要如何去挑选一个合适的域名呢?下面就跟大家谈谈我的看法: 1.首先就是域名的后缀,什么样的后缀才是比较好的呢? .com国际顶级域名,是目前世界上选择最多的域名了,而且对搜索引擎的友好度也是非常好的.但是.com域名现在却非常难选好到一些比较好的域名了,因为都让人

公司需要选择一个业务架构平台,有什么还得选择?

问题描述 我公司是一个建材企业,想将原来GUI的应用,转为Web的应用,希望导入一个业务架构平台?csdn中的也宣传许多产品,大家有用过哪些,效果如何?x3,eos,ucml,livebos?这些平台对人员有什么要求? 解决方案 解决方案二:看看这里吧,http://lw-soft.com软件构建平台,虽然不是B/S但支持局域网,公网应用,操作方便,可以兼容其他系统的数据库,只要你熟悉数据库结构就行.解决方案三:推荐华丹CHARISMA智能WEB平台,纯B/S结构.http://www.huad

迈克菲增强云安全平台功能 打造更强云平台

对企业而言,部署云技术面临着诸多挑战,不仅要保护驻留在云环境或通过云传输的数据,避免敏感数据泄露,同时还要保护各个部门.远程办公室和移动工作人员免遭网络犯罪分子的攻击,现在越来越多的网络不法之徒开始利用云等新兴技术(例如,移动应用和云API)来传播恶意软件,发起有针对性的攻击. IDC Research的Phil Hochmuth表示:"身份信息.Web和电子邮件安全解决方案对于企业至关重要,因为未来几年,企业IT客户在客户端和非客户端都将部署基于云的解决方案.客户希望充分利用现有安全投资,同时