新浪云计算SAE(SinaAPPEngine)sae.sina.com.cnSinaSAEteam2012/02第二期:SAE平台的灵活应用:•开发、调试•管理、部署•运营、维护SAE平台应用开发&调试@吕毅SAE平台的灵活应用——开发目录开发前的准备工作•开发环境•扩展服务与第三方服务SAE服务与使用•StdLib&API•服务的使用•服务的限制、配额SAE应用调试SAE应用开发——线上开发环境开发Apache2.2.x+PHP5.3.xJava、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文档应用开发——API文档开发API文档封装的服务样例SAE应用开发——API文档开发API文档接口提供的方法列表对每个方法的详细描述SAE应用开发——服务的使用开发以SaeMysql()为例$SaeABCD-errno();//返回错误码$SaeABCD-errmsg();//返回错误信息SAE应用开发——服务的使用开发FetchURL服务、Image服务SAE应用开发——服务的限制开发MySQL慢查询条目数10条/minStorage:–单一Domain2G–单一文件大小800M–Domain个数5个/App&10个/User使用SAE平台前应当了解服务限制PHP:–执行时间30s–单PHP请求内存64M–POST大小限制10MSAE应用开发——服务的配额开发•分钟配额•软配额(阀值)•容量配额•预算设置分钟配额容量配额SAE平台的灵活应用——调试目录•SAE平台程序的调试–程序有问题了怎么办?–资源统计图表–服务自排查–管理记录–SAE日志&SVN日志–不得不说的潜规则•SAE平台程序的调优–XHProfSAE应用调试——初判调试•相信平台的可用性•从自身程序出发想问题SAE应用调试——图表调试适用:日常了解应用状态和排查问题SAE应用调试——服务自排查调试适用:怀疑平台可用性的时候SAE应用调试——管理记录调试适用:需要了解管理记录时SAE应用调试——日志[重要]调试SAE应用调试——开发规范[重要]调试1、在开发环境时,应当做到:–不要使用@来屏蔽错误信息–error_reporting=E_ALL|E_STRICT–display_errors=On2、会用sae_debug()函数记录日志SAE应用调试——XHProf调优SAE应用调试——XHProf调优BREAKSAE平台应用•管理、部署•运营、维护@世江•SAE环境比普通环境部署应用的优势•如何在SAE平台部署应用•SAE平台部署应用的注意事项•SAE应用维护及日常升级方法•SAE应用及服务的管理•SAE提供的运营工具目录SAE比传统应用部署的优势SAE比传统应用部署的优势传统WEB应用部署SAE比传统应用部署的优势购买服务器联系IDC托管装系统配置网络及服务器软件部署应用代码、调试上线传统WEB应用部署–哥才写了一天的程序,部署了两天还没跑通啊,有木有!!–哥费了很大工夫写好的应用,刚刚跑通,却发现别人的已经上线了,悲剧……SAE比传统应用部署的优势传统WEB应用部署–哥辛辛苦苦写的应用刚刚部署好,那该死的服务器挂鸟……偶滴神啊!–哥熬了两个通宵写的代码,一不小心删除了个文件#$^–……SAE比传统应用部署的优势SAE平台应用部署SAE比传统应用部署的优势svnci-m'SoEasy!!'如何在SAE平台部署应用应用商店一键安装在线上传代码包通过SVN提交代码如何在SAE平台部署应用如何在SAE平台部署应用-应用商店一键搞定如何在SAE平台部署应用-WEB上传创建应用上传代码访问WEB界面上传代码把代码压缩包上传到SAE的应用如何在SAE平台部署应用-WEB上传如何在SAE平台部署应用-WEB上传通过Web管理面板上传的代码会自动提交到SVN仓库,保证代码不会丢失如何在SAE平台部署应用-SVN创建应用svncosvnaddsvnci通过SVN部署创建应用如何在SAE平台部署应用-SVN应用创建好以后,就自动初始化了SVN仓库如何在SAE平台部署应用-SVNSVN仓库地址如何在SAE平台部署应用-SVNSAE安全邮箱SVN仓库地址通过SVN部署代码这时已经可以访问我们的应用了如何在SAE平台部署应用-SVN如何在SAE平台部署应用-应用版本注意:1.应用版本不是SVN的revision2.应用默认版本访问时,域名加不加版本号都行,非默认版本访问需要加上版本号如何巧妙使用应用版本,稍后会跟大家分享SAE平台部署应用的注意事项•单文件不能超过20M•一个版本代码不能超过50M•一个应用所有代码之和不能超过100M注意事项目录或文件名不允许含有以下字符:*?|,另外目录或文件名的开始与结束也不允许有空格只允许存在10个以内的版本,并且版本号必须为正整数注意事项代码空间太小了?关于代码容量限制SAE的代码空间对于结构合理的网站来说是完全够用了Apache源码解压后42M如果实在不够用,可以购买企业版SAE服务来获取更多的空间=detail&a=product&itm=saeplussaemail@sina.cn关于代码容量限制关于代码容量限制从安全角度考虑,应用代码与数据应该隔离。有很多文件上传漏洞都是由于数据与代码混在一起引起的而且把用户上传的文件直接保存在代码目录下的做法不适用于分布式环境SAE专门为开发者提供了分布式文件存储服务:Storage服务普通用户一个应用可以有10G存储空间企业及用户可以获得无限的存储空间SVN仓库目录结构SVN仓库目录结构如:刚才的演示应用的SVN仓库地址为应用二级域名应用版本只能是数字以上SVN仓库对应的访问地址为:应用的维护及升级应用的维护与升级网站太火了,不敢随便更新代码,怕引入故障影响用户?应用的维护与升级SAE的应用版本可以轻松解决代码升级问题更新版本2的代码把默认版本切换成版本2测试版本2默认版本切换后,如果发现异常,马上把默认版本切换到1,实现秒速回退应用的维护与升级升级完成后,原默认版本保留一段时间不变当新默认版本稳定后,原默认版本要么删除重建,要么把两次升级之间的变更merge到原默认版本,把原默认版本当作新的开发版本应用的维护与升级这种升级方式的优点:1.升级、回退速度极快,因升级引起的故障影响时间极短2.操作简单,基本无需OP参与缺点:升级、开发有可能破坏线上数据解决方案:新建个应用当作开发版本,实现数据隔离在新应用完成开发和测试后先合并到线上应用的非默认版本,测试通过后切换版本升级与传统WEB应用升级相比应用的维护与升级代码升级完了,接下来万事无忧了?应用的维护与升级NO!应用的维护与升级为了保证应用始终满血运行,有件事一定不能忽视那就是:性能在普通WEB运行环境下,性能测试既不精确,又非常麻烦应用的维护与升级在SAE环境可以一眼看出来升级前后代码性能的差异应用的维护与升级用xhprof看看问题出在哪应用的维护与升级SAE应用的管理使用SAE开发应用,不需要专业的运维团队SAE上所有服务都可以通过WEB界面进行可视化管理应用的管理MySQL管理应用的管理Storage服务管理应用的管理AppConfigAppConfig更多服务大家可以亲自体验SAE应用的运营不同行业的网站,运营策略各不相同但都离不开基础数据的支撑在此向大家介绍一下SAE提供的一些运营工具应用某一天花了多少钱,可以通过“资源报表”查看帐户云豆记录可以通过“云豆记录”查看通过日志中心可以发现可异抓站IP然后通过应用防火墙把它封掉还有更多你想要的……下期预告