新浪云计算公开课第二期:sae平台的灵活应用(吕毅、魏世江)

79
新新新新新 SAE(Sina APP Engine ) sae.sina.com.cn Sina SAE team 2012/02

Post on 13-Sep-2014

1.273 views

Category:

Education


20 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

新浪云计算SAE(Sina APP Engine )

sae.sina.com.cn

Sina SAE team

2012/02

Page 2: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

第二期:SAE 平台的灵活应用 :

•开发 、调试•管理 、部署•运营 、维护

Page 3: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 平台应用开发 & 调试

@ 吕毅

Page 4: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 平台的灵活应用 —— 开发目录

开发前的准备工作• 开发环境• 扩展服务 与 第三方服务

SAE 服务与使用• StdLib & API• 服务的使用• 服务的限制、配额

SAE应用调试

Page 5: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 应用开发 —— 线上开发环境开发

Apache 2.2.x + PHP 5.3.x

Java 、 Python 已公测

Page 6: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 应用开发 —— 与标准 LAMP 差异开发

本地 IO —> TmpFS / Wapperhtaccess —> Appconfig网络 IO —> FetchURLMail —> SaeMail()

传统 LAMP 环境 SAE 平台环境

Page 7: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 应用开发 —— 本地开发环境开发

• windows 版– 高仿真 SAE 线上环境– 模拟支持几乎所有服务 (除了 Cron )– 仅 20M– 免安装

• Linux 版( 即将发布 )

Page 8: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

替代 htaccess 的方案 —— Appconfig开发

• 安全• 实现更高效• 语法更人性化

Page 9: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 应用开发 —— 服务开发

Page 10: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 应用开发 —— StdLib & API开发

• StdLib 封装各种服务– saemysql.class.php– saestorage.class.php– saeimage.class.php– saefetchurl.class.php– ........

StdLib " 文档中心 " -> " 开发手册 " -> "StdLib 源代码 "API 文档 http:// apidoc . sinaapp . com /

Page 11: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 应用开发 —— API 文档开发

API 文档 http:// apidoc . sinaapp . com /

StdLib封装的服务样 例

Page 12: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 应用开发 —— API 文档开发

API 文档 http:// apidoc . sinaapp . com /

接口提供的方法列表

对每个方法的详细描述

Page 13: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 应用开发 —— 服务的使用开发

以 SaeMysql() 为例

$SaeABCD->errno(); // 返回错误码$SaeABCD->errmsg(); // 返回错误信息

Page 14: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 应用开发 —— 服务的使用开发

FetchURL 服务 、 Image 服务

Page 15: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 应用开发 —— 服务的限制开发

MySQL 慢查询条目数 10 条 /minStorage :

– 单一 Domain 2G– 单一文件大小 800M– Domain 个数 5 个 /App & 10 个 /User

使用 SAE 平台前应当了解服务限制PHP :

– 执行时间 30s– 单 PHP 请求内存 64M– POST 大小限制 10M

Page 16: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 应用开发 —— 服务的配额开发

• 分钟配额• 软配额(阀值)

• 容量配额• 预算设置

分钟配额

容量配额

Page 17: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 平台的灵活应用 —— 调试目录

• SAE 平台程序的调试– 程序有问题了怎么办?– 资源统计图表– 服务自排查– 管理记录– SAE 日志 & SVN 日志– 不得不说的潜规则

• SAE 平台程序的调优– XHProf

Page 18: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 应用调试 —— 初判

调试

• 相信平台的可用性• 从自身程序出发想问题

Page 19: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 应用调试 —— 图表调试

适用: 日常了解应用状态和排查问题

Page 20: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 应用调试 —— 服务自排查调试

适用: 怀疑平台可用性的时候

Page 21: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 应用调试 —— 管理记录调试

适用: 需要了解管理记录时

Page 22: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 应用调试 —— 日志 [ 重要 ]

调试

Page 23: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 应用调试 —— 开发规范 [ 重要 ]

调试

1 、在开发环境时,应当做到:– 不要使用 @ 来屏蔽错误信息– error_reporting=E_ALL|E_STRICT– display_errors=On

2 、会用 sae_debug() 函数记录日志

Page 24: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 应用调试 —— XHProf调优

Page 25: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 应用调试 —— XHProf调优

Page 26: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

BREAK

Page 27: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 平台应用•管理 、部署•运营 、维护 @世江

Page 28: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

• SAE 环境比普通环境部署应用的优势• 如何在 SAE 平台部署应用• SAE 平台部署应用的注意事项• SAE 应用维护及日常升级方法• SAE 应用及服务的管理• SAE 提供的运营工具

目录

Page 29: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 比传统应用部署的优势

Page 30: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 比传统应用部署的优势

Page 31: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

传统 WEB 应用部署SAE 比传统应用部署的优势

购买服务器

联系 IDC 托管

装系统

配置网络及服务器软件部署应用代码、调试

上线

Page 32: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

传统 WEB 应用部署– 哥才写了一天的程序,部署了两天还没跑通啊,有木有!!– 哥费了很大工夫写好的应用,刚刚跑通,却发现别人的已经上线了,悲剧……

SAE 比传统应用部署的优势

Page 33: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

传统 WEB 应用部署– 哥辛辛苦苦写的应用刚刚部署好,那该死的服务器挂鸟…… 偶滴神啊!– 哥熬了两个通宵写的代码,一不小心删除了个文件 #$^

– ……

SAE 比传统应用部署的优势

Page 34: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 平台应用部署SAE 比传统应用部署的优势

svn ci -m 'So Easy!!'

Page 35: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

如何在 SAE 平台部署应用

Page 36: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

应用商店一键安装在线上传代码包通过 SVN 提交代码

如何在 SAE 平台部署应用

Page 37: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

如何在 SAE 平台部署应用 - 应用商店一键搞定

Page 38: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

如何在 SAE 平台部署应用 - WEB 上传

创建应用

上传代码

访问

WEB 界面上传代码

Page 39: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

把代码压缩包上传到 SAE 的应用如何在 SAE 平台部署应用 - WEB 上传

Page 40: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

如何在 SAE 平台部署应用 - WEB 上传

通过 Web 管理面板上传的代码会自动提交到 SVN 仓库,保证代码不会丢失

Page 41: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

如何在 SAE 平台部署应用 - SVN

创建应用

svn co

svn add

svn ci

通过 SVN 部署

Page 42: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

创建应用如何在 SAE 平台部署应用 - SVN

Page 43: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

应用创建好以后,就自动初始化了 SVN 仓库如何在 SAE 平台部署应用 - SVN

SVN 仓库地址

Page 44: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

如何在 SAE 平台部署应用 - SVN

SAE 安全邮箱 SVN 仓库地址

通过 SVN 部署代码

Page 45: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

这时已经可以访问我们的应用了http://saedemo1.sinaapp.com

或者https://saedemo1.sinaapp.com

如何在 SAE 平台部署应用 - SVN

Page 46: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

如何在 SAE 平台部署应用 - 应用版本应用版本

注意: 1.应用版本不是 SVN 的 revision2.应用默认版本访问时,域名加不加版本号都行,非默认版本访问需要加上版本号如何巧妙使用应用版本,稍后会跟大家分享

Page 47: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 平台部署应用的注意事项

Page 48: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

• 单文件不能超过 20M• 一个版本代码不能超过 50M• 一个应用所有代码之和不能超过 100M

注意事项

Page 49: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

目录或文件名不允许含有以下字符: " * ? < > | ,另外目录或文件名的开始与结束也不允许有空格

只允许存在 10 个以内的版本,并且版本号必须为正整数

注意事项

Page 50: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

代码空间太小了?

关于代码容量限制

Page 51: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 的代码空间对于结构合理的网站来说是完全够用了Apache源码解压后 42M

如果实在不够用,可以购买企业版 SAE 服务来获取更多的空间http://e.sae.sina.com.cn/?m=detail&a=product&[email protected]

关于代码容量限制

Page 52: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

关于代码容量限制从安全角度考虑,应用代码与数据应该隔离。有很多文件上传漏洞都是由于数据与代码混在一起引起的而且把用户上传的文件直接保存在代码目录下的做法不适用于分布式环境SAE专门为开发者提供了分布式文件存储服务: Storage 服务普通用户一个应用可以有 10G 存储空间企业及用户可以获得无限的存储空间

Page 53: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SVN 仓库目录结构

SVN 仓库目录结构 https://svn.sinaapp.com/your_app_name/1/your_cod

es

如: 刚才的演示应用的 SVN 仓库地址为 https://svn.sinaapp.com/saedemo1/1/应用二级域名 应用版本只能是数字以上 SVN 仓库对应的访问地址为: http://1.saedemo1.sinaapp.com/

Page 54: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 应用的维护及升级

Page 55: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

应用的维护与升级

Page 56: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

网站太火了,不敢随便更新代码,怕引入故障影响用户?

应用的维护与升级

Page 57: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 的应用版本可以轻松解决代码升级问题

更新版本2的代码

把默认版本切换成版本2

测试版本2

默认版本切换后,如果发现异常,马上把默认版本切换到1,实现秒速回退

应用的维护与升级

Page 58: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

升级完成后,原默认版本保留一段时间不变当新默认版本稳定后,原默认版本要么删除重建,要么把两次升级之间的变更merge 到原默认版本,把原默认版本当作新的开发版本

应用的维护与升级

Page 59: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

这种升级方式的优点:1. 升级、回退速度极快,因升级引起的故障影响时间极短2. 操作简单,基本无需 OP参与缺点:升级、开发有可能破坏线上数据解决方案:新建个应用当作开发版本,实现数据隔离在新应用完成开发和测试后先合并到线上应用的非默认版本,测试通过后切换版本升级

与传统 WEB 应用升级相比应用的维护与升级

Page 60: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

代码升级完了,接下来万事无忧了?

应用的维护与升级

Page 61: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

NO!

应用的维护与升级

Page 62: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

为了保证应用始终满血运行,有件事一定不能忽视那就是:性能性能在普通 WEB 运行环境下,性能测试既不精确,又非常麻烦

应用的维护与升级

Page 63: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

在在 SAESAE 环境可以一眼看出来升级前后代码性能的差异环境可以一眼看出来升级前后代码性能的差异应用的维护与升级

Page 64: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

用用 xhprofxhprof 看看问题出在哪看看问题出在哪应用的维护与升级

Page 65: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 应用的管理

Page 66: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

使用 SAE 开发应用,不需要专业的运维团队SAE 上所有服务都可以通过 WEB 界面进行可视化管理

应用的管理

Page 67: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

MySQLMySQL 管理管理应用的管理

Page 68: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

StorageStorage 服务管理服务管理应用的管理

Page 69: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

AppConfig

Page 70: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

AppConfig

Page 71: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

更多服务大家可以亲自体验

Page 72: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

SAE 应用的运营

Page 73: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

不同行业的网站,运营策略各不相同但都离不开基础数据的支撑

在此向大家介绍一下 SAE 提供的一些运营工具

Page 74: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

应用某一天花了多少钱,可以通过“资源报表”查看

Page 75: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

帐户云豆记录可以通过“云豆记录”查看

Page 76: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

通过日志中心可以发现可异抓站 IP

Page 77: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

然后通过应用防火墙把它封掉

Page 78: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

还有更多你想要的……http://sae.sina.com.cn

http://weibo.com/saet

Thanks

Page 79: 新浪云计算公开课第二期:Sae平台的灵活应用(吕毅、魏世江)

下期预告

http://sae.sina.com.cn

中篇体验 SAE多语言开发魅力 PHP 开发各个服务应用场景介绍怎么开发微博应用怎么开发游戏类应用

http://sae.sina.com.cn