当前位置:首页 > 开发教程 > mysql教程 >

Sina App Engine

时间:2013-04-24 22:41 来源:网络整理 作者:采集侠 收藏

Sina App Engine(简称SAE)是新浪研发中心推出的国内首个公有云计算平台,支持PHP,MySQL,Memcached,Mail,TaskQueue,RDC(关系型数据库集群)等服务,并为开发者

文档中心 » 平台介绍 » 概况

 

什么是Sina App Engine  

        Sina App Engine(以下简称SAE)是新浪研发中心于2009年8月开始内部开发,并在2009年11月3日正式推出第一个Alpha版本的国内首个公有云计算平台(),  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附属的分布式计算型服务和分布式存储型服务,具体又分成同步计算型服务、异步计算型服务、持久化存储服务、非持久化存储服务。各种服务统一向日志和统计中心汇报,参考下图:

Sina App Engine

Sina App Engine

    

        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的线路特性

                 

Sina App Engine

 

    SAE平台出口IP:

     220.181.129.126
    220.181.129.121
    220.181.136.229
    220.181.136.230
    220.181.129.93
    220.181.129.102
    220.181.129.117
    220.181.129.90

 

 

    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面向的服务,使用者得到的是服务的使用权。 


mysql教程阅读排行

最新文章