给网站、App搬家是个细致的体力活,容易遇到各种意外,轻则停服、影响收入,重则数据丢失,造成不可挽回的损失。因此需要制定一个周密细致的计划,所谓谋定而后动,三思而后行。
首先要选择一个靠谱的平台。目前提供网站、app托管服务的平台很多,有免费的也有收费的,有境内的也有境外的,有大平台也有小平台。建议站长、开发者朋友从以下几个方面来选择:
·稳定性:建议选择比较大的、比较重视这块业务的平台,服务相对有保障,避免停服带来的尴尬。境外的平台虽然不用备案,但是访问速度肯定没法和国内平台比。另外说墙就墙了,因此除非不得已,还是建议选择国内的平台。
· 性价比:价格是一个关键因素,但也不是越便宜越好。免费的服务不推荐,说停就停了,没有保障,而且往往会在数据迁移方面设置各种障碍。另外还要考虑收费是否灵活,如果不灵活就失去云服务的优势了。
· 可扩展性:CPU、内存、容量和带宽都要能够很方便的扩展。毕竟等网站、App的流量、数据量上来后,谁都不想再搬家,这个站长、开发者朋友都懂的。
· 安全性:平台要能够提供最起码的入侵和攻击防护,这一点大平台肯定比小平台更有优势。在互联网上裸奔是个近乎自杀的行为,分分钟让你中招。
以百度开放云应用引擎BAE为例,介绍如何进行网站、App的迁移。
百度应用引擎(Baidu App Engine,简称BAE)是国内商业运营时间最久、用户群体最为庞大的PaaS平台之一,提供弹性、一站式的应用部署服务,支持php/java/node.js/python等各种语言。用户只需上传代码,BAE自动完成运行环境配置、应用部署、均衡负载、资源监控、日志收集等各项任务,大大简化运维部署工作。
同时基于百度开放云海量的资源,基于docker技术和分布式架构,BAE提供灵活、弹性、分钟级的资源扩展能力,升级扩容无需重新部署代码,轻松应对各种高并发访问场景(如“双十一”、“秒杀”、“春运订票”等)。
一般的站长和开发者朋友对BAE应该并不陌生,可以访问其官网、在线帮助、论坛脑补一下:
https://bce.baidu.com/product/bae.html
https://bce.baidu.com/doc/BAE/QuickGuide.html
https://bce.baidu.com/doc/BAE-Pro/QuickGuide.html
http://developer.baidu.com/forum/topic/list?boardId=66
(值得一提的是BAE刚刚支持了自定义docker镜像,这对于当下如火如荼的docker开发者而言是一个福音。)
第一步:评估可行性
迁移网站之前,首先要评估您的网站、App能否在BAE上正常运行。主要从两个方面来判断:
一是运行环境是否满足要求,BAE提供了支持以下语言的运行化境:
(*通过自定义docker镜像,您可以自行安装任何语言需要的依赖和组件。)
二是您的网站、App是否需要读写本地文件。BAE虽然允许程序读写本地文件,但是在应用重启时更新会丢失。这主要是因为BAE是为支持高并发、分布式应用部署而进行设计的,要求每个执行单元/服务器实例上运行的程序是无状态、无差别的,这就要求不能将需要长久保存的数据写到本地(否则下次访问该文件时,会因不知道这个文件存在哪个实例上而导致出错)。此外,应用在故障重启或者发布新版本时,也会从代码库中取出对应的版本覆盖本地空间,导致本地文件被覆盖。通俗来说,就是BAE的代码空间和运行空间是分离的,代码空间里的文件不会丢,运行空间里的文件在重启或发布新版本时会被清空。因此要将需要持久保存的数据写到数据库或者外部存储介质中(如BOS百度对象存储)。
因此,您可能需要修改原来的程序以适应BAE这种分布式部署架构。好处很明显,分布式的架构将使您的应用将更加稳定、健壮,并能够应对高并发的访问场景。
对于一些开源框架(如Wordpress),已经有一些专门的插件,帮助您将本地文件读写改成读写到BOS,详情请参考BOS论坛上的一个帖子:
http://developer.baidu.com/forum/topic/show?topicId=2839&t=1448941902456&pageNo=1
值得注意的是,BAE即将推出应用模板功能,届时将支持本地文件的永久存储,模板原生代码不需要改动即可正常运行,支持在线安装模板插件、升级模板、备份数据,将极大提高对各种开源框架的兼容性。
第二步:BAE基础版 vs 专业版
需要确认是迁移到BAE基础版还是专业版。这两个版本各有侧重:
BAE基础版:资源共享,更经济、更便捷,适合部署中小型站点
BAE专业版:资源独享,更安全、更强大,适合部署中大型站点
两者详细对比如下(●支持 -不支持 〇即将支持):
第三部:数据库迁移
确认数据库服务是否满足需要。目前BAE基础版提供了免费的MySQL和MongoDB服务,BAE专业版可以对接RDS(关系型数据库)。其中免费MySQL支持从BOS导入数据,而RDS提供了数据迁移工具,方便用户进行全量数据迁移。一般推荐的组合是:
BAE基础版+BAE基础版扩展服务中的MySQL/MongoDB/Redis
BAE专业版+RDS+SCS
如果以上数据库不满足您的要求,您还可以用云服务器BCC自行搭建数据库服务器。
第四部:搭建网站、App
接下来是创建BAE应用、部署好代码。创建好数据库,将数据迁移过来。
具体的操作步骤可以参考百度开放云上BAE和RDS相应的帮助文档(https://bce.baidu.com/doc/index.html) RDS目前提供MySQL和SQLServer数据库服务。BAE专业版可以内网访问BAE基础版中的共享MongoDB服务。
如果您的网站、App对性能有较高要求,您还可以考虑使用缓存服务SCS、Redis。
同样,您还可以使用cdn服务,以提升站点在不同地区的访问速度。
建议对搭建好的网站、App要进行充分的测试。
下图是通过BAE专业版搭建高并发网站、App的系统架构图,供大家参考:
第五步:备案
根据相关法规要求,网站需要进行站点备案(App不需要)。
如果您的站点之前已有备案,则需要进行备案的转入。如果您的站点之前没有备案,则要进行全新备案。
百度开放云提供免费的备案服务,详情可登录百度开放云官网的备案专区查看,https://bce.baidu.com/beian/index.html
第六部:切换域名
请注意,在将域名指向对应的BAE站点之前,您的网站必须是已经完成备案的。
结束语
在云计算连接一切的年代,你永远不用担心无家可归。
百度开放云是国内首家提供托管平台服务(BAE)的云计算厂商。四年来,我们累计为超过十五万名用户提供此服务。四年来,我们始终在这里。
原文链接:https://blog.csdn.net/weixin_42460407/article/details/114975368?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165918471416780357279938%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165918471416780357279938&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-7-114975368-null-null.nonecase&utm_term=%E5%85%8D%E5%A4%87%E6%A1%88cdn
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/3843