Let’s run @ SAE

       @kobe
      2011.12.25
•   为什么选择 SAE

•   功能
      开发
      调试优化
      管理
      运维

•   架构
     无限扩展
     高可靠性

•   特色
     应用商店
     开发框架
         开发微博应用
         开发移动互联网应用
     服务商店
     SWS

•   新浪云
为什么选择 SAE

• 解放
• 彻底的解放
• web + mobile
• 转变
国内领先的 PaaS

  工信部云计算理事

国家云计算政策制定参与企业

  “ 祥云工程”项目

 独立技术知识产权专利
国内领先的 PaaS
                新浪及合作第三方支持                                      云计算产品研发

            微游戏、微盘、校园微博、 Q 微博、                          计算类服务 、存储类服务、云应用商
            互联网的那点事 ...                                 店、云服务商店、 CDN...
                                                        IaaS 平台、 CDN
                                                                             新浪云计算
                                              SinaCloud.com


2009.8    2009.11           2010.2            2010.9      2010.10.10   2011.5.18         2011.7

云计算小组成立   Sina App Engine   Sina App Engine   Sina App Engine 微盘上线     Sina App Engine   开通支付
          alpha 版上线         alpha2 版上线        Beta 版上线                 Beta2 版上线

          SAE 诞生            TmpFS 支持          首个公测版本发布                 正式开放注册            云应用商店上线
国内领先的 PaaS
国内领先的 PaaS
活跃开发者: 10000 名,开发者认证
              +




与 PHP 官方合作:



应用商店:
他们都在 SAE




微博图墙
教育机构与SAE



  北航软件学院联合办
      学

  云计算教材出版
  (图灵出版社)
•   为什么选择 SAE

•   功能
      开发
      调试优化
      管理
      运维

•   架构
     无限扩展
     高可靠性

•   特色
     应用商店
     开发框架
         开发微博应用
         开发移动互联网应用
     服务商店
     SWS

•   新浪云
功能 - 开发

• 多语言开发平台

• Web 服务   http https 负载均衡


• 计算型服务
• 存储型服务
功能 - 开发

• Web 服务
 AppConfig
 - passwdaccess: if(path ~ "/secret/") passwd "test:123qwe coder:123asd"
 - hostaccess: if(path ~ ".conf$") allow "127.0.0.1”
 - rewrite: if(query_string ~ "^(so)$" && path ~ "zhaochou$") goto "/url/%1"


 HTTPS
 isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off'
功能 - 开发
• 计算型服务

     Cron        Image        Mail




    FetchURL   TaskQueue   DeferredJob
•   Cron                     功能 - 开发
    自然语法 & UNIX 语法
•       cron:


•           - description: cron test


•             url: mycron/test.php


•             schedule: every 5 mins


•             login: kobe@12345


•       cron:


•           - description: cron test


•    误差
              url: mycron/test.php


•    执行版本
              schedule: every 1 hour, offset 0, from 8:00 to 12:00


     执行时间
功能 - 开发
• FetchURL
• TaskQueue
    应用场景
    队列选择

•                 $queue->addTask("http://freedemo.sinaapp.com/yourtask1.php");

•                 $queue->addTask("http://freedemo.sinaapp.com/yourtask2.php", "postdata", true);



• DeferredJob
    数据导入导出
    sql & csv
功能 - 开发
• 存储型服务

          MySQL        MemcacheX          Storage




   KVDB           Counter          Rank             TmpFS
功能 - 开发
• RDC 与 MySQL
• RDC 与 DeferedJob
• MemcacheX 与 Memcache
• 管理 Storage
• 各种存储服务的选择( KVDB )
功能 - 开发
• Counter 与 Rank
      $c = new SaeCounter();
      $c->create('c1');  // 默认 c1 的值为 0 
      $c->set('c1',100); // 返回 true 设置 c1 的值为 100
      $c->incr('c1'); // 返回 101

      $sr=new SaeRank();
        $ret=$sr->create($name,100);
                $ret=$sr->set($name,$key,$value);
        $ret=$sr->getRank($name,$key);




应用场景
功能 - 开发
• TmpFS
  file_put_contents( SAE_TMP_PATH . '/mycode.txt' , 'dummy test' );

     目的和作用域


• Wrapper
  storage 和 mc

       file_put_contents(‘saestor://mycode.txt’,‘dummy test’);
•   为什么选择 SAE

•   功能
      开发
      调试优化
      管理
      运维

•   架构
     无限扩展
     高可靠性

•   特色
     应用商店
     开发框架
         开发微博应用
         开发移动互联网应用
     服务商店
     SWS

•   新浪云
功能 - 调试优化

• sae_debug
• display_errors
• XHProf
• 应用体检
功能 - 调试优化
功能 - 调试优化
• MySQL 慢查询
• RDC/MySQL 优化建议
 index
 join
 sort
•   为什么选择 SAE

•   功能
      开发
      调试优化
      管理
      运维

•   架构
     无限扩展
     高可靠性

•   特色
     应用商店
     开发框架
         开发微博应用
         开发移动互联网应用
     服务商店
     SWS

•   新浪云
功能 - 管理
• 账号、安全密码
• 创建、删除应用
• 切换版本
• 服务开启、关闭
• 绑定域名
功能 - 管理
• 部署应用
 SVN
 SDK
 online Editor
功能 - 管理

•团队管理
角色:管理者、参与者、观察者
权限:管理代码、服务、配额、账号


•预算设置
功能 - 运维
• PV+UIP 信息,访问曲线
功能 - 运维
• Memcache 请求曲线
功能 - 运维
• KVDB 流入带宽曲线
功能 - 运维
• Storage 外网流出带宽
功能 - 运维
• 日志信息
 访问日志
 错误日志
 自定义日志
 日志搜索
功能 - 运维
• 成本核算、云豆报表



• 服务状态
功能 - 运维
• 特定服务运维信息
•   为什么选择 SAE

•   功能
      开发
      调试优化
      管理
      运维

•   架构
     无限扩展
     高可靠性

•   特色
     应用商店
     开发框架
         开发微博应用
         开发移动互联网应用
     服务商店
     SWS

•   新浪云
SAE 基本架构
无限扩展


• 无状态服务
• 无缝重平衡
高可靠

• Q3 宕机时长: 45 分钟
• Q3 宕机次数: 4 次
• Q3 整体服务 SLA : 99.95%
高可靠
• 代码可靠性
 CodeFS


• 数据可靠性
 备份策略


• 服务可靠性
 沙盒
 无单点设计
 监控策略


• 配额的含义
•   为什么选择 SAE

•   功能
      开发
      调试优化
      管理
      运维

•   架构
     无限扩展
     高可靠性

•   特色
     应用商店
     开发框架
         开发微博应用
         开发移动互联网应用
     服务商店
     SWS

•   新浪云
特色 - 应用商店
特色 - 开发框架
开发一个微博应用
• 安装新浪微博 OAuth v2




• open.weibo.com
开发一个微博应用

// 从 POST 过来的 signed_request 中提取 oauth2 信息 if(!
empty($_REQUEST["signed_request"])){       $o = new SaeTOAuthV2( WB_AKEY ,
WB_SKEY ); $data=$o->parseSignedRequest($_REQUEST["signed_request"]);
if($data=='-2'){       die(' 签名错误 !');     }else{
$_SESSION['oauth2']=$data; }}// 判断用户是否授权 if
(empty($_SESSION['oauth2']["user_id"])) {         include "auth.php";
exit;} else {         $c = new SaeTClientV2( WB_AKEY , WB_SKEY ,
$_SESSION['oauth2']['oauth_token'] ,'' );}
开发移动互联网应用
开发移动互联网应用
特色 - 服务商店

• 服务售卖
 按服务的请求次数进行计费


• 公司内部服务接入
 分词服务
 全文检索服务
 更多服务(博客、无线、邮箱、财经 ... )
特色 -SWS

• EC2
• EBS
• S3
SinaCloud.com
End


             Q&A
              @SinaAppEngine


SAE 意见反馈: http://sae.sina.com.cn/?m=feedback
      SAE 咨询邮箱: saemail@sina.cn

新浪云计算公开课第一期:Let’s run @ sae(丛磊)

  • 1.
    Let’s run @SAE @kobe 2011.12.25
  • 2.
    为什么选择 SAE • 功能 开发 调试优化 管理 运维 • 架构 无限扩展 高可靠性 • 特色 应用商店 开发框架 开发微博应用 开发移动互联网应用 服务商店 SWS • 新浪云
  • 3.
    为什么选择 SAE • 解放 •彻底的解放 • web + mobile • 转变
  • 4.
    国内领先的 PaaS 工信部云计算理事 国家云计算政策制定参与企业 “ 祥云工程”项目 独立技术知识产权专利
  • 5.
    国内领先的 PaaS 新浪及合作第三方支持 云计算产品研发 微游戏、微盘、校园微博、 Q 微博、 计算类服务 、存储类服务、云应用商 互联网的那点事 ... 店、云服务商店、 CDN... IaaS 平台、 CDN 新浪云计算 SinaCloud.com 2009.8 2009.11 2010.2 2010.9 2010.10.10 2011.5.18 2011.7 云计算小组成立 Sina App Engine Sina App Engine Sina App Engine 微盘上线 Sina App Engine 开通支付 alpha 版上线 alpha2 版上线 Beta 版上线 Beta2 版上线 SAE 诞生 TmpFS 支持 首个公测版本发布 正式开放注册 云应用商店上线
  • 6.
  • 7.
    国内领先的 PaaS 活跃开发者: 10000名,开发者认证 + 与 PHP 官方合作: 应用商店:
  • 8.
  • 9.
    教育机构与SAE 北航软件学院联合办 学 云计算教材出版 (图灵出版社)
  • 10.
    为什么选择 SAE • 功能 开发 调试优化 管理 运维 • 架构 无限扩展 高可靠性 • 特色 应用商店 开发框架 开发微博应用 开发移动互联网应用 服务商店 SWS • 新浪云
  • 11.
    功能 - 开发 •多语言开发平台 • Web 服务 http https 负载均衡 • 计算型服务 • 存储型服务
  • 12.
    功能 - 开发 •Web 服务 AppConfig - passwdaccess: if(path ~ "/secret/") passwd "test:123qwe coder:123asd" - hostaccess: if(path ~ ".conf$") allow "127.0.0.1” - rewrite: if(query_string ~ "^(so)$" && path ~ "zhaochou$") goto "/url/%1" HTTPS isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off'
  • 13.
    功能 - 开发 •计算型服务 Cron Image Mail FetchURL TaskQueue DeferredJob
  • 14.
    Cron 功能 - 开发 自然语法 & UNIX 语法 •     cron: •         - description: cron test •           url: mycron/test.php •           schedule: every 5 mins •           login: kobe@12345 •     cron: •         - description: cron test • 误差           url: mycron/test.php • 执行版本           schedule: every 1 hour, offset 0, from 8:00 to 12:00 执行时间
  • 15.
    功能 - 开发 •FetchURL • TaskQueue 应用场景 队列选择 •               $queue->addTask("http://freedemo.sinaapp.com/yourtask1.php"); •               $queue->addTask("http://freedemo.sinaapp.com/yourtask2.php", "postdata", true); • DeferredJob 数据导入导出 sql & csv
  • 16.
    功能 - 开发 •存储型服务 MySQL MemcacheX Storage KVDB Counter Rank TmpFS
  • 17.
    功能 - 开发 •RDC 与 MySQL • RDC 与 DeferedJob • MemcacheX 与 Memcache • 管理 Storage • 各种存储服务的选择( KVDB )
  • 18.
    功能 - 开发 •Counter 与 Rank $c = new SaeCounter(); $c->create('c1');  // 默认 c1 的值为 0  $c->set('c1',100); // 返回 true 设置 c1 的值为 100 $c->incr('c1'); // 返回 101       $sr=new SaeRank();         $ret=$sr->create($name,100);         $ret=$sr->set($name,$key,$value);         $ret=$sr->getRank($name,$key); 应用场景
  • 19.
    功能 - 开发 •TmpFS file_put_contents( SAE_TMP_PATH . '/mycode.txt' , 'dummy test' ); 目的和作用域 • Wrapper storage 和 mc file_put_contents(‘saestor://mycode.txt’,‘dummy test’);
  • 20.
    为什么选择 SAE • 功能 开发 调试优化 管理 运维 • 架构 无限扩展 高可靠性 • 特色 应用商店 开发框架 开发微博应用 开发移动互联网应用 服务商店 SWS • 新浪云
  • 21.
    功能 - 调试优化 •sae_debug • display_errors • XHProf • 应用体检
  • 22.
  • 23.
    功能 - 调试优化 •MySQL 慢查询 • RDC/MySQL 优化建议 index join sort
  • 24.
    为什么选择 SAE • 功能 开发 调试优化 管理 运维 • 架构 无限扩展 高可靠性 • 特色 应用商店 开发框架 开发微博应用 开发移动互联网应用 服务商店 SWS • 新浪云
  • 25.
    功能 - 管理 •账号、安全密码 • 创建、删除应用 • 切换版本 • 服务开启、关闭 • 绑定域名
  • 26.
    功能 - 管理 •部署应用 SVN SDK online Editor
  • 27.
  • 28.
    功能 - 运维 •PV+UIP 信息,访问曲线
  • 29.
    功能 - 运维 •Memcache 请求曲线
  • 30.
    功能 - 运维 •KVDB 流入带宽曲线
  • 31.
    功能 - 运维 •Storage 外网流出带宽
  • 32.
    功能 - 运维 •日志信息 访问日志 错误日志 自定义日志 日志搜索
  • 33.
    功能 - 运维 •成本核算、云豆报表 • 服务状态
  • 34.
    功能 - 运维 •特定服务运维信息
  • 35.
    为什么选择 SAE • 功能 开发 调试优化 管理 运维 • 架构 无限扩展 高可靠性 • 特色 应用商店 开发框架 开发微博应用 开发移动互联网应用 服务商店 SWS • 新浪云
  • 36.
  • 37.
  • 38.
    高可靠 • Q3 宕机时长:45 分钟 • Q3 宕机次数: 4 次 • Q3 整体服务 SLA : 99.95%
  • 39.
    高可靠 • 代码可靠性 CodeFS •数据可靠性 备份策略 • 服务可靠性 沙盒 无单点设计 监控策略 • 配额的含义
  • 40.
    为什么选择 SAE • 功能 开发 调试优化 管理 运维 • 架构 无限扩展 高可靠性 • 特色 应用商店 开发框架 开发微博应用 开发移动互联网应用 服务商店 SWS • 新浪云
  • 41.
  • 42.
  • 43.
  • 44.
    开发一个微博应用 // 从 POST过来的 signed_request 中提取 oauth2 信息 if(! empty($_REQUEST["signed_request"])){ $o = new SaeTOAuthV2( WB_AKEY , WB_SKEY ); $data=$o->parseSignedRequest($_REQUEST["signed_request"]); if($data=='-2'){ die(' 签名错误 !'); }else{ $_SESSION['oauth2']=$data; }}// 判断用户是否授权 if (empty($_SESSION['oauth2']["user_id"])) { include "auth.php"; exit;} else { $c = new SaeTClientV2( WB_AKEY , WB_SKEY , $_SESSION['oauth2']['oauth_token'] ,'' );}
  • 45.
  • 46.
  • 47.
    特色 - 服务商店 •服务售卖 按服务的请求次数进行计费 • 公司内部服务接入 分词服务 全文检索服务 更多服务(博客、无线、邮箱、财经 ... )
  • 48.
  • 49.
  • 50.
    End Q&A @SinaAppEngine SAE 意见反馈: http://sae.sina.com.cn/?m=feedback SAE 咨询邮箱: saemail@sina.cn