50
Let’s run @ SAE @kobe 2011.12.25

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

  • Upload
    -

  • View
    1.187

  • Download
    0

Embed Size (px)

DESCRIPTION

 

Citation preview

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

Let’s run @ SAE

@kobe2011.12.25

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

• 为什么选择 SAE

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

• 架构 无限扩展 高可靠性

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

• 新浪云

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

为什么选择 SAE

•解放

•彻底的解放

•web + mobile

•转变

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

国内领先的 PaaS

工信部云计算理事

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

“祥云工程”项目

独立技术知识产权专利

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

国内领先的 PaaS

新浪及合作第三方支持新浪及合作第三方支持 微游戏、微盘、校园微博、 微游戏、微盘、校园微博、 QQ 微博、微博、互联网的那点事互联网的那点事 ......

新浪及合作第三方支持新浪及合作第三方支持 微游戏、微盘、校园微博、 微游戏、微盘、校园微博、 QQ 微博、微博、互联网的那点事互联网的那点事 ......

云计算产品研发云计算产品研发

计算类服务 、存储类服务、云应用商计算类服务 、存储类服务、云应用商店、云服务商店、店、云服务商店、 CDN...CDN... IaaSIaaS 平台、平台、 CDNCDN

云计算产品研发云计算产品研发

计算类服务 、存储类服务、云应用商计算类服务 、存储类服务、云应用商店、云服务商店、店、云服务商店、 CDN...CDN... IaaSIaaS 平台、平台、 CDNCDN

新浪云计算 新浪云计算 SinaCloud.comSinaCloud.com 新浪云计算 新浪云计算 SinaCloud.comSinaCloud.com

2009.8 2009.11 2011.5.18 2011.72010.10.10

云计算小组成立 Sina App Engine alpha 版上线

Sina App Engine alpha2 版上线

微盘上线 Sina App Engine Beta2 版上线

正式开放注册

开通支付

云应用商店上线

2010.2 2010.9

Sina App Engine Beta 版上线

SAE诞生 TmpFS 支持 首个公测版本发布

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

国内领先的 PaaS

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

国内领先的 PaaS活跃开发者: 10000+ 名,开发者认证

与 PHP 官方合作:

应用商店:

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

他们都在 SAE

微博图墙

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

教育机构与SAE

北航软件学院联合办学

云计算教材出版(图灵出版社)

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

• 为什么选择 SAE

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

• 架构 无限扩展 高可靠性

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

• 新浪云

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

功能 - 开发

•多语言开发平台

•Web 服务 http https 负载均衡

•计算型服务

•存储型服务

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

功能 - 开发

•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"

HTTPSisset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off'

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

功能 - 开发•计算型服务

CronCronCronCron ImageImageImageImage

TaskQueuTaskQueuee

TaskQueuTaskQueuee

MailMailMailMail

DeferredJoDeferredJobb

DeferredJoDeferredJobb

FetchURLFetchURLFetchURLFetchURL

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

功能 - 开发•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

误差执行版本执行时间

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

功能 - 开发•FetchURL

•TaskQueue

应用场景队列选择

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

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

•DeferredJob数据导入导出sql & csv

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

功能 - 开发•存储型服务

MySQLMySQLMySQLMySQL MemcacheMemcacheXX

MemcacheMemcacheXX

CounterCounterCounterCounter

StorageStorageStorageStorage

RankRankRankRankKVDBKVDBKVDBKVDB TmpFSTmpFSTmpFSTmpFS

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

功能 - 开发•RDC 与 MySQL

•RDC 与 DeferedJob

•MemcacheX 与 Memcache

•管理 Storage

•各种存储服务的选择( KVDB )

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

功能 - 开发•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);

应用场景

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

功能 - 开发•TmpFS

file_put_contents( SAE_TMP_PATH . '/mycode.txt' , 'dummy test' );

目的和作用域

•Wrapper storage 和 mc

file_put_contents(‘saestor://mycode.txt’,‘dummy test’);

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

• 为什么选择 SAE

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

• 架构 无限扩展 高可靠性

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

• 新浪云

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

功能 - 调试优化

•sae_debug

•display_errors

•XHProf

•应用体检

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

功能 - 调试优化

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

功能 - 调试优化

•MySQL 慢查询

•RDC/MySQL 优化建议

indexjoinsort

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

• 为什么选择 SAE

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

• 架构 无限扩展 高可靠性

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

• 新浪云

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

功能 - 管理

•账号、安全密码

•创建、删除应用

•切换版本

•服务开启、关闭

•绑定域名

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

功能 - 管理

•部署应用SVNSDKonline Editor

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

功能 - 管理

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

•预算设置

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

功能 - 运维•PV+UIP 信息,访问曲线

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

功能 - 运维•Memcache 请求曲线

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

功能 - 运维•KVDB 流入带宽曲线

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

功能 - 运维•Storage 外网流出带宽

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

功能 - 运维

•日志信息访问日志错误日志自定义日志日志搜索

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

功能 - 运维•成本核算、云豆报表

•服务状态

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

功能 - 运维•特定服务运维信息

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

• 为什么选择 SAE

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

• 架构 无限扩展 高可靠性

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

• 新浪云

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

SAE 基本架构

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

无限扩展

•无状态服务

•无缝重平衡

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

高可靠

•Q3 宕机时长: 45 分钟

•Q3 宕机次数: 4 次

•Q3 整体服务 SLA : 99.95%

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

高可靠•代码可靠性

CodeFS

•数据可靠性备份策略

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

•配额的含义

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

• 为什么选择 SAE

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

• 架构 无限扩展 高可靠性

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

• 新浪云

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

特色 - 应用商店

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

特色 - 开发框架

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

开发一个微博应用•安装新浪微博 OAuth v2

•open.weibo.com

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

开发一个微博应用

// 从 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'] ,'' );}

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

开发移动互联网应用

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

开发移动互联网应用

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

特色 - 服务商店

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

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

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

特色 -SWS

•EC2

•EBS

•S3

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

SinaCloud.com

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

End

Q & A

@SinaAppEngine

SAE意见反馈: http://sae.sina.com.cn/?m=feedbackSAE咨询邮箱: [email protected]