服务Q Q:75303307

网站优化

网站建设

工作时间:周一至周五:8:30-6:00 周六、日:9:00-5:00

技术点滴

您的位置:主页 > 新闻观点 > 技术点滴 > 详细内容>

各大appengine云平台介绍

2012-08-23 13:55 作者:admin [ ]

什么是AppEngine,简单的说它是一个带有鲜明的云特色的程序运行环境,程序运行时所在的机器是临时调度的,程序和数据是分布式存储的。对于开发者,需要按照具体AppEngine的接口说明编写、修改程序,然后将程序托管到AppEngine里。当然,为了减少开发者的抵触心理,AppEngine会尽量复用已有的编程接口,而将一些特殊的操作进行封装,比如本地文件写操作、Socket操作等。

Google在这方面算是鼻祖了,相继提供了Python, Java, Go语言的支持,最吸引人的就是慷慨的免费资源,很大方,如果你的程序需要用付费资源才能跑的动的话,那应该算得上是一个大块头了。对GAE最不满意的就是到现在还不支持Php,很多Php迷们都在翘首期盼,毕竟Php在Web开发领域还是占有相当份额的。当然还有其他有待改进的功能,比如邮件服务只可以用管理员的邮箱发出,代发都不行。

再看看国内的几个XAE,都是从Php入手的,这个方向应该是正确的,门槛低,受众广,应该会引来不少好奇者。但有了好的开始,还要有过硬的技术,并不是说你用了分布式存储就叫云了,如果服务不稳定,功能不健全,那就叫晕了,甭管你吹嘘着跟自己的微博、跟自己的旺旺怎么结合的天衣无缝。举个最简单的应用,SAE的文档介绍发Mail似乎极其简单,几句话就行,但怎么连个Gmail的mail都发不了呢?!不要说用Sina邮箱没问题,抱歉,我们玩IT的不用,最后的结果就是,陪SAE玩,我们伤不起。SAE晃荡了将近2年了,至今用户数也没多少,我想问题不是出在营销上,而是心态上,炒作对于成功来说固然是捷径,但还是需要踏踏实实的做技术才能赢得信赖的。最近也发现Sina改进了些东西,比如注册微博时,mail可以包括字符“点”了,真不知道这对于他们来说是一小步还是一大步,怎么不早点请我做专家点评呢,哈哈!

不管怎么说,希望这些XAE们能脚踏实地的为中国IT做些贡献,而不是像某度搜索低着脑袋瞎着眼睛跟别人走,仙气、屁味来者不拒的接着,要不是有GFW,早就关门大吉了。

 

1.Google App Engine

通过使用 Google App Engine,您可以在 Google 基础架构上运行网络应用程序。App Engine 应用程序易于构建和维护,并且可随着通信量和数据存储需求增长而轻松扩展。在使用 Google App Engine 时,不需要维护任何服务器:您只需上传应用程序,它便可以为用户提供服务。

您可以使用 Google Apps 通过自己的域名(如 http://www.example.com/)提供应用程序。或者,也可以使用 appspot.com 域中的免费名称提供应用程序。您可以与世界各地的用户共享应用程序,或者仅限您所在单位的成员能够访问应用程序。

Google App Engine 支持使用几种编程语言编写的应用程序。通过使用 App Engine 的 Java 运行时环境,您可以使用标准 Java 技术构建应用程序,包括 JVM、Java Servlet 和 Java 编程语言或任何其他使用基于 JVM 的解释器或编译器的语言(如 JavaScript 或 Ruby)。App Engine 还提供一个专用的 Python 运行时环境,其中包括快速 Python 解释器和 Python 标准库。建立的 Java 和 Python 运行时环境旨在确保快速安全地运行应用程序,而不会受到系统上的其他应用程序的干扰。

在使用 App Engine 时,您只需为使用的资源付费。没有设置成本,也没有日常性费用。应用程序使用的资源(如存储空间和带宽)测量单位是 GB,并按非常有竞争力的价格收费。您可以控制应用程序使用的最大资源数量,以使其始终保持在预算范围内。

在开始使用 App Engine 时,不需要支付任何费用。所有应用程序最多可使用 500 MB 存储空间以及足够的 CPU 和带宽,以使应用程序有效地提供每月约 500 万页的浏览量,并且是绝对免费的。在为应用程序启用计费时,将提高您的免费限制,您只需为超过免费级别的资源付费。https://developers.google.com/appengine/docs/whatisgoogleappengine?hl=zh-CN

2. BAE(Baidu App Engine)

 BAE(Baidu App Engine)是百度推出的网络应用开发平台。基于BAE基础架构,您不需要维护任何服务器,只需要简单地上传应用程序,就可以为您的用户提供服务。BAE有能力将原本单机的LAMP架构,变成分布式架构。
您可以基于BAE平台进行PHP、Java应用的开发、编译、调试、发布。同时,BAE平台也已经提供了大量的云服务,包括fetch URL、task queue、SQL、memcache,后续会有更多服务提供。在性能方面,如果您希望增加服务能力,可以通过申请执行单元的方式进行灵活的调整

http://developer.baidu.com/wiki/index.php

3.Sina App Engine 

  Sina App Engine(以下简称SAE)是新浪研发中心于2009年8月开始内部开发,并在2009年11月3日正式推出第一个Alpha版本的国内首个公有云计算平台(http://sae.sina.com.cn),SAE是新浪云计算战略的核心组成部分。     

    SAE作为国内的公有云计算,从开发伊始借鉴吸纳Google、Amazon等国外公司的公有云计算的成功技术经验,并很快推出不同于他们的具有自身特色的云计算平台。SAE选择在国内流行最广的Web开发语言PHP作为首选的支持语言,Web开发者可以在Linux/Mac/Windows上通过SVN或者Web版在线代码编辑器进行开发、部署、调试,团队开发时还可以进行成员协作,不同的角色将对代码、项目拥有不同的权限;SAE提供了一系列分布式计算、存储服务供开发者使用,包括分布式文件存储、分布式数据库集群、分布式缓存、分布式定时服务等,这些服务将大大降低开发者的开发成本。同时又由于SAE整体架构的高可靠性和新浪的品牌保证,大大降低了开发者的运营风险。另外,作为典型的云计算,SAE采用“所付即所用,所付仅所用”的计费理念,通过日志和统计中心精确的计算每个应用的资源消耗(包括CPU、内存、磁盘等)。     

    总之,SAE就是简单高效的分布式Web服务开发、运行平台。

 

SAE的核心优势

    SAE的基本目标用户有两种,一种是Web开发者,另一种是普通互联网上网人群。

    对于Web开发者,SAE带来的好处有:

    · 硬件成本更低,无需预先购买设备,承担更大的投入风险

    · 开发成本更低,SAE提供许多服务供开发者使用,开发者无需重复开发,包括队列、数据库、缓存、定时、验证码、计数器,几乎覆盖了Web开发的所有领域。另外对于特定开放平台的开发者,比如新浪微博开发者,SAE已经集成了完整的OpenAPI的封装,将开发者的开发成本降到最低。值得一提的是,SAE的开发者目前已经形成了良好的交流氛围,在意见反馈中心、SAE官方群,SAE官方微群可以看到很多热情的开发者在一起共同提高

    · 运维成本更低,在SAE上的应用无需关心硬件维护、服务监控、数据容灾等操作,SAE会通过其高可靠的架构和方便的监控页面为用户将运维成本降到最低扩展性更强,在SAE上的服务无需关心服务压力猛增时带来的扩容等操作,SAE自动支持服务扩展

    · 更加安全可靠,SAE自动提供SQL语句性能分析、前端防攻击、代码检查等功能,在SAE上的所有应用均为多机房容灾部署,比传统的部署模式更加安全可靠,并且SAE提供服务的SLA来实现对用户服务质量的承诺

    对于普通上网人群,使用SAE可以:

    使用推荐应用一键安装Web应用,普通用户无需会编码,也可以在瞬间拥有自己的团购、博客、微博、Wiki等

 

SAE整体架构

    SAE从架构上采用分层设计,从上往下分别为反向代理层、路由逻辑层、Web计算服务池。而从Web计算服务层延伸出SAE附属的分布式计算型服务和分布式存储型服务,具体又分成同步计算型服务、异步计算型服务、持久化存储服务、非持久化存储服务。各种服务统一向日志和统计中心汇报,参考下图:

    

    7层反向代理层:HTTP反向代理,在最外层,负责响应用户的HTTP请求,分析请求,并转发到后端的Web服务池上,并提供负载均衡、健康检查等功能。

    服务路由层:逻辑层,负责根据请求的唯一标识,快速的映射(O(1)时间复杂度)到相应的Web服务池,并映射到相应的硬件路径。如果发现映射关系不存在或者错误,则给出相应的错误提示。该层对用户隐藏了很多具体地址信息,使开发者无需关心服务的内部实际分配情况。

    Web服务池:由一些不同特性的Web服务池组成。每个Web服务池实际是由一组Apache(PHP)组成的,这些池按照不同的SLA提供不同级别的服务。每个Web服务进程实际处理用户的HTTP请求,进程运行在HTTP服务沙盒内,同时还内嵌同样运行在SAE沙盒内的PHP解析引擎。用户的代码最终通过接口调用各种服务。

    日志和统计中心:负责对用户所使用的所有服务进行统计和资源计费,并设定的分钟配额,来判定是否有非正常的使用。分钟配额描述了资源消耗的速度,当资源消耗的速度到达一个预警阈值时,SAE通知系统会提前向用户发出一个警告,提醒用户应用在某个服务上的使用可能存在问题,需要介入关注或处理,配额系统是SAE用来保证整个平台稳定的措施之一;日志中心负责将用户所有服务的日志汇总并备份,并提供检索查询服务。

    各种分布式服务:SAE提供几乎可以覆盖Web应用开发所有方面的多种服务,用户可以通过StdLib(可以理解为SAE PHP版的STL)很方便的调用它们。

 

SAE的线路特性

                 

 

    SAE平台出口IP:

     220.181.129.126
    220.181.129.121
    220.181.136.229
    220.181.136.230

    http接口方需要IP授权可以进行相应的设置。

 

SAE的功能

    开发:

    ·   代码检查,帮助检查不良函数并帮助移植

    ·   代码部署

    ·   分布式数据库

    ·   分布式文件存储

    ·   分布式缓存

    ·   各种附属分布式服务,包括图像、定时、任务队列、邮件、计数器等

    ·   对接多个开放平台,如新浪微博开发平台

    ·   代码调优,通过XHProf提供

    ·   数据库优化,通过RDC提供

    ·   团队协作,可以邀请好友以不同的权限加入项目

    ·   代码版本管理(计划支持)

    运营:

    ·   应用打包,通过我们的应用向导进行推广

    ·   日志,包括访问日志、错误日志等

    ·   资源报表,消耗SAE各项资源的统计

    ·   服务监控,监控各项服务状态

    ·   数据迁移,包括数据库导入、数据库导出等

 

SAE提供的服务及两大特性

 SAE提供的服务

    SAE目前已经提供了十多种服务,整体上分为计算型和存储型,计算型又包括同步计算和异步计算,而存储型则分为持久化存储和非持久化存储。具体列表如下:

 

服务名称

类型

说明

HTTP+PHP

同步计算

带SAE沙盒的Apache和Zend为用户提供Web计算服务

Storage

持久化存储

提供分布式文件存储

Memcache

非持久化存储

提供分布式缓存服务

RDC

持久化存储

分布式数据库集群,提供MySQL服务

TaskQueue

异步计算

异步离线轻量级任务队列,HTTP方式调用

DeferredJob

异步计算

异步离线重量级任务队列,系统方式调用

Counter

持久化存储

计数器服务

RankDB

持久化存储 分布式排行榜服务

KVDB

持久化存储 分布式key/value存储服务

Cron

异步计算

分布式定时服务

FetchURL

同步计算

分布式抓取服务

TmpFS

非持久化存储

提供临时文件存储,文件生命周期在一个会话内,Http请求结束文件自动消失

AppConfig

 

提供应用配置功能,取代Apache htaccess

Mail

异步计算

邮件发送服务

Image

同步计算

图像处理服务

XHProf

同步计算

Facebook提供的强大的PHP调优工具

SVN

持久存储

用户代码部署的入口点:https://svn.sinaapp.com/yourapp

Online CodeEditor

持久存储

在线代码编辑器,编辑的代码保存后入自动入SVN并部署到Web服务器

 

 两大特性:扩展性与可靠性

    ·   扩展性

    SAE在服务的可扩展性上基本是动态可扩展性的思路,即资源和ID没有强对应关系,用户以服务使用者的身份使用SAE服务。

    ·   可靠性

    在计算可靠性方面,SAE主要是依靠多点部署来完成可靠性,多节点的计算一致性上,SAE有分布式锁服务提供比Paxos更好的容错逻辑。

    在数据可靠性方面,SAE的所有数据都通过冗余存储来达到SLA。SAE通过主动复制和被动复制来实现多点数据冗余。

 

SAE和虚拟主机的区别

    ·   传统服务托管面向的是硬件软件设备,使用者得到的也是设备的使用权;而SAE面向的服务,使用者得到的是服务的使用权。 

    ·   传统服务托管不面向开发者,开发者无法在其上享受到开发的乐趣;而SAE的一个重要用户就是web developer,开发者可以在其上通过在线调试、日志分析、协作共享等功能进行web开发。 

    ·   传统服务托管不提供分布式系统解决方案;而SAE提供的完整的分布式web服务的解决方案,其中不仅仅包括分布式数据库、分布式文件系统,更包括分布式定时器系统、网页抓取服务、图像处理服务等。 

 

    ·   传统服务托管不解决域名问题,用户往往烦恼于域名申请;而SAE的用户将自动得到在sinaapp下的二级域名,同时SAE还支持域名cname。 

 

    ·   传统服务托管无法保证SLA(Service Level Agreement),硬件故障的成本基本由使用者承担;而SAE保证用户的SLA,用户的web服务自动享有高冗余的前端服务器、享有自动负载均衡系统、服务自动扩展、服务自动收缩等功能。 

 

    ·   传统的服务托管采用预付费的方式,费用固定且和实际使用情况无直接关系;而SAE采用预充值方式,“所付即所用,所付仅所用”,web服务的一切损耗均提供报表查询和账单汇总,让用户一目了然。

 

    SAE公有云计算和传统的虚拟主机的区别如下表。

 

 

类项

SAE

VPS

核心用户

Web开发者

无核心用户

使用方式

服务使用

设备租用

目标

力争覆盖Web服务所有需求,提供多种服务给开发者使用

仅基本需求

SLA(服务承诺)

高可靠性及严格的服务承诺

依服务商变化,无严格协议

计费方式

所付即所用,所付仅所用

预付费,无精确计费

 

 

为什么我们要做SAE

      Sina App Engine项目始于2009年8月,目标为云计算时代的分布式web服务提供一整套解决方案。我们开发SAE主要是出于对内、对外两方面考虑:

    对内,新浪很早以前就开始了关于私有云的开发和实践,所以为了进一步提高公司资源的利用率,更加提高web开发的效率,降低web运营的成本,决定了我们要开发SAE。

    对外,亚马逊、Google都是国外的成功的提供公有云计算服务的公司,SAE也想借助云计算这样一个趋势,为国内广大用户提供云计算的分布式web服务的开发、运行平台。

 

SAE的目标和发展

    云计算虽然是个新名词,但实际在国外已经有4、5年的历史。2006年,亚马逊就推出了以EC2为代表的公有云计算,并且已经实现了大规模盈利;2008年,Google则推出了以Google App Engine为代表的公有云计算。国内的云计算却一直是炒的很厉害,各大互联网公司都在宣传,但真正有技术实力做出来而又对外公开使用的少之又少。

    实际从2004年开始,新浪就开始了私有云方向的研究和实践,以此为基础的动态应用平台目前已经支撑新浪内部的绝大部分业务。从2008年起,新浪又启动了“浪云”的公有云计算计划,相继开发了分布式队列服务、P2P文件系统、分布式计算框架等一系列基础服务。实际SAE就是“浪云”战略的产物。

    SAE从架构设计和代码编写开始,就明确了自身的两个目标:

    · 做公有云计算平台。公有云不同于私有云,更强调安全性和可靠性,这也对整体的架构设计和技术实现提出了更苛刻的要求

    · 为分布式Web服务提供一整套的解决方案。SAE争取提供开发者开发Web应用过程中所用到的所有服务。

    经过技术团队一年的开发,SAE目前已经提供了十多种服务,整体上分为计算型和存储型,计算型又包括同步计算和异步计算,而存储型则分为持久化存储和非持久化存储。具体列表如下: 

    SAE在2009年11月3日发布了alpha1版本,2010年2月1日发布了alpha2版本,2010年9月1日发布了beta版本,2011年5月17日正式开放注册。 

http://sae.sina.com.cn/ 

 

4.腾讯云平台

CEE是一种Web服务引擎,它可以让您的Web应用程序运行在腾讯云平台提供的基础架构上。
与腾讯云平台原来提供的虚拟机服务相比,CEE更加智能、易用:
(1)开发者可在CEE上可以一键部署和发布您的应用程序;
(2)CEE提供自动化监控和运维,开发者无需考虑负载均衡和容量控制,CEE可根据访问量自动进行资源的扩容和缩容。
使用CEE,开发者无需投入过多精力在基础架构运维上,可以更聚焦于产品创新和用户服务。

1.2 CEE的优点

(1)更安全 - 通过七层代理和外界客户端通信,通过网络访问代理组件来访问用户数据和存储系统,让应用远离危险和攻击;
(2)高扩展性 - 智能资源调度系统,开发者无需考虑负载均衡和容量控制,可根据访问量自动进行资源的扩容和缩容;
(3)高运维性 - 通过监控和日志上报系统自动上报和汇总日志信息,反馈请求访问质量,为开发者提供指引性数据和视图。
(4)易用性 - 资源申请,资源上限调整,程序部署,灰度发布,全量发布等都在可视化界面上进行,降低操作难度。

1.3 CEE环境说明及使用限制

目前的情况:
(1)CEE目前提供PHP(支持php5.3.3及5.3.5)和Java(支持apache-tomcat-6.0.32及jetty-6.1.22)语言环境;
 

 

http://wiki.open.qq.com/wiki/CEE


 

5.阿里云云引擎ACE

告别运维麻烦,配置和资源随应用增长轻松扩展

ACE(Aliyun Cloud Engine)是一个基于云计算基础架构的网络应用程序托管环境,帮助应用开发者简化网络应用程序的构建和维护,并可根据应用访问量和数据存储的增长进行扩展。ACE支持PHP,NODE.JS语言编写的应用程序;支持在线创建MYSQL远程数据库应用。

 

支持多种WEB运行环境

ACE目前支持PHP运行环境,NodeJS运行环境,后续会支持更多的开发语言。

丰富的附加服务

我们提供了分布式session,分布式memcache,开放存储,消息队列,计划任务等多种服务,让开发者可以更多的关注在业务开发上,降低开发者的开发成本,其整体架构的高可靠性。

弹性伸缩、按需计费

自动弹性伸缩,无需人工干预运维,根据实际使用量计费。

通过应用模板快速部署应用

系统自带常见应用模板。开发人员可以将自己的应用做成模板,发布其应用给其他人使用;站长可以从模板库中在线创建应用,即可进行自己的网站运营。

良好的易用性

兼容原生API, 调试信息输出,可以方便的进行应用管理和配置。

 

http://www.aliyun.com/product/ace