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

Post on 13-Sep-2014

1.273 Views

Category:

Education

20 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

新浪云计算SAE(Sina APP Engine )

sae.sina.com.cn

Sina SAE team

2012/02

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

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

SAE 平台应用开发 & 调试

@ 吕毅

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

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

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

SAE应用调试

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

Apache 2.2.x + PHP 5.3.x

Java 、 Python 已公测

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

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

传统 LAMP 环境 SAE 平台环境

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

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

• Linux 版( 即将发布 )

替代 htaccess 的方案 —— Appconfig开发

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

SAE 应用开发 —— 服务开发

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

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

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

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

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

StdLib封装的服务样 例

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

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

接口提供的方法列表

对每个方法的详细描述

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

以 SaeMysql() 为例

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

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

FetchURL 服务 、 Image 服务

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

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

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

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

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

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

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

• 容量配额• 预算设置

分钟配额

容量配额

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

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

• SAE 平台程序的调优– XHProf

SAE 应用调试 —— 初判

调试

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

SAE 应用调试 —— 图表调试

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

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

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

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

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

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

调试

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

调试

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

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

SAE 应用调试 —— XHProf调优

SAE 应用调试 —— XHProf调优

BREAK

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

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

目录

SAE 比传统应用部署的优势

SAE 比传统应用部署的优势

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

购买服务器

联系 IDC 托管

装系统

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

上线

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

SAE 比传统应用部署的优势

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

– ……

SAE 比传统应用部署的优势

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

svn ci -m 'So Easy!!'

如何在 SAE 平台部署应用

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

如何在 SAE 平台部署应用

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

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

创建应用

上传代码

访问

WEB 界面上传代码

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

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

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

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

创建应用

svn co

svn add

svn ci

通过 SVN 部署

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

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

SVN 仓库地址

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

SAE 安全邮箱 SVN 仓库地址

通过 SVN 部署代码

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

或者https://saedemo1.sinaapp.com

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

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

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

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

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

注意事项

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

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

注意事项

代码空间太小了?

关于代码容量限制

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

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

关于代码容量限制

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

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/

SAE 应用的维护及升级

应用的维护与升级

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

应用的维护与升级

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

更新版本2的代码

把默认版本切换成版本2

测试版本2

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

应用的维护与升级

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

应用的维护与升级

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

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

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

应用的维护与升级

NO!

应用的维护与升级

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

应用的维护与升级

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

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

SAE 应用的管理

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

应用的管理

MySQLMySQL 管理管理应用的管理

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

AppConfig

AppConfig

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

SAE 应用的运营

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

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

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

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

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

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

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

http://weibo.com/saet

Thanks

下期预告

http://sae.sina.com.cn

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

http://sae.sina.com.cn

top related