本帖最后由 xng2012 于 2014-4-22 14:19 编辑
问题导读:
1.百度云几种部署方式
2.代码提交失败的原因是什么?
3.SVN、Git、包上传等方式,是如何使用的?
4.BAE3.0有什么特点,为什么迁移?
5.那些资源可以迁移?
6.如何迁移?
概述
BAE提供的各种支持,体现在对应用各方面的管理。通过《新手入门》,您已经成功创建并部署了应用,但要想进一步发挥BAE的威力,请详细参考如下内容:
应用部署
BAE为广大开发者提供了四种应用部署方式,即:
- SVN使用: 支持开发者在本地开发模式下,通过SVN管理和发布应用。
- Git使用: 支持开发者在本地开发模式下,通过Git管理和发布应用。
- 在线编辑: 支持开发者在管理中心通过在线编辑器对应用源代码进行快捷修改及发布。
- 包上传更新: 支持开发者在管理中心通过上传包来快速部署应用。
代码提交及发布失败主要原因:
1. 试图在应用目录下创建、删除、修改文件。我们只允许在应用的版本目录下进行SVN操作。
2. 试图在多个版本下同时进行SVN操作。每次SVN操作,我们只允许在单个版本下进行。
3. 版本下所有文件的总大小超过限制。目前总大小限制为100M,不能超过限制。
4. 版本目录的名称非法。目前我们只允许版本目录的名称为 ‘0’ – ‘19’ 的数字。
5. 语法检查错误。我们会对应用提交的PHP, Java, Python文件做语法检查,若失败,则不能发布。您可以通过管理中心的应用日志查看语法错误的具体原因。
6. app.conf 格式不对。应用目录下的 app.conf 文件的格式不对。
除此以外的错误,都属于异常错误,请您提供应用的 appid 和版本信息,发送至dev_support@baidu.com。
应用设置
应用评测
应用迁移至BAE3.0
1、为什么迁移
好处:BAE3.0的应用开发无任何限制;且运行时独享资源,有完全的资源隔离,能有更好的稳定性以及性能。 必要性: 1.BAE3.0中开发规范接近于用户本地原生开发体验,而2.0应用代码中残留的各种强制规范,在3.0不再支持,如果BAE直接强制迁移,可能会导致应用不可访问等问题,所以我们让用户自己进行迁移,以保证您的应用流量不受影响。迁移过程中,有任何问题,我们都会给予充分的协助。 2.我们后续会逐渐下线BAE2.0的管理平台,不再维护。 因此,为了更好的运维支持,强烈建议尽快迁移。目前已停止应用创建以及版本创建,2014年3月31日将停止代码发布。 3.在BAE2.0管理平台下线后,没来得及迁移的应用,流量不会受到影响。但是由于不会再增加更多机器资源,所以无法保证更多流量增长后的访问质量。 4. 因为BAE2.0集群资源为共享的,未受保护的应用流量(重点优质应用我们通过人工措施做了部分保护)会受到同一池子中的其他低性能应用影响,可能会出现响应慢或503的情况。
2、哪些资源可以迁移可以保留的资源包括2.0上线版本代码、MySQL、MongoDB、Redis数据库,以及duapp域名、自有域名。
3、如何迁移2.0旧版管理中心中心——>应用管理页面—>云环境(BAE)—>迁移至BAE3.0 直接点击"一键迁移"按钮,创建3.0应用并迁移2.0资源(包括上线版本代码、数据库、duapp域名及自有域名)等一系列操作均自动帮你完成。 注意:该方案会损失部分流量,因为2.0代码在3.0环境下可能会运行异常,请参照下文中"各语言应用迁移注意事项"处理 1.在BAE3.0中创建应用并创建BAE部署。熟悉3.0版控制台的用法,可参考 《新手入门》注意:目前BAE3.0资源分批发放的,仅在每周四14:00左右可以创建部署。其它时间请在“配额管理”中提交执行单元申请,审核通过后即可创建。
2.将2.0应用的代码部署到新的3.0部署中。
3.将2.0中的数据库(MySQL、MongoDB、Redis)迁移到3.0。有两种方式,推荐使用第二种: (1)如不要求数据库为最新或数据库短期不会修改,可以将2.0的数据导出然后在3.0新建数据库后将数据导入。 (2)使用迁移至3.0的工具,将数据库迁移到3.0的应用中。 注意:迁移成功后,BAE2.0的应用依然可以使用先前方式访问数据库,不影响线上流量;用户在BAE3.0管理页的扩展服务中才能看到数据库
4.根据BAE3.0的文档调试代码。
5.调试完成后。使用迁移域名,将当前2.0应用的主域名和自有域名,迁移至3.0的部署。 注意:进行迁移域名操作,2.0应用将被删除,3.0的主域名将被替换成2.0的主域名。在执行迁移域名操作前,请确认,已经将2.0应用的代码和数据库迁移完毕。
各语言应用迁移注意事项
1.ak、sk更改,值从界面获取 2.判断是否是bae环境,使用 if(SERVER_SOFTWARE == 'bae/3.0') 来判断 3.服务的sdk需要手动下载放到代码路径中,并手动添加require/include 4.封禁函数全部开放
1.只支持war包上传,不再支持源码上传 2.所有依赖的jar包均需要自己上传,BAE不在内置任何jar包 3.所有BAE服务的SDK均需要重新下载3.0的SDK,并修改使用方式 4.2.0中所有从环境变量里获取的信息,均需要直接写在代码中,例如:ak、sk等
1.3.0中Node.js必须监听18080端口,且不能从环境变量中获取端口 2.3.0中所有的依赖可以在本地下载到node_modules目录下,然后一并上传,或者配置在package.json中的dependencies 3.2.0中所有从环境变量中获取的信息,均需要直接写在代码中,例如:ak、sk等 4.所有的BAE的SDK均需要重新下载3.0的SDK,并修改使用方式,BAE3.0不再内置任何依赖
1.3.0中删除了之前常用的bae.core.const模块,不再把如MySQL服务地址等的变量放到该模块中,用户需从管理控制台获取诸如AK、SK、MySQL服务地址等信息手动设置 2.3.0自有服务如Memcache、Image等,其SDK均未预装在环境中,用户需使用requirements.txt指定依赖安装使用
4、3.0环境的差异性1.BAE3.0中不再支持各类全局环境变量,例如BAE2.0中的ak、sk、各类服务访问地址等。这些信息用户可以到控制台里相关页面中查看。所以代码中涉及到环境变量使用部分需要去掉。
2.BAE3.0中不再内置任何服务的SDK,开发者需要自行在服务的文档里下载SDK,或者在语言自身依赖规范中添加。Cache等部分服务使用方式也有调整,所以需要相应修改代码。
3.BAE3.0中各语言的目录规范和BAE2.0有一些差异,所以需要先了解熟悉对应语言的文档介绍。
4.BAE3.0中目前不支持taskqueue、counter、cron等服务,用户可以用redis替代或者使用worker实现。
5.BAE3.0中没有开发中版本的概念,开发调试建议直接在线下本地开发环境中完成。或者在另外的部署中完成。
6.BAE3.0中,发布和代码仓库ci是分离的,即不会像BAE2.0一样,在svn或git ci后自动发布,而是在ci后,自行到管理控制台中点击“发布最新版”。
|