注意:以下文档只适用于TOP接口,请谨慎使用!

文档中心 > 聚石塔

EWS应用服务张北迁移

更新时间:2019/07/05 访问次数:4922

背景

聚石塔华东1(杭州)地域于2019年10月1日下线,原EWS聚石塔杭州的服务不能再运行在聚石塔华东1(杭州)的ECS主机上,需要迁移至华北3(张家口)。对应的EWS服务需要从聚石塔杭州迁移至聚石塔张北。为避免杭州区服务停止运行后原域名无法继续访问的问题,特此提供张北迁移辅助功能,不仅EWS服务层面的数据可以一键迁移,还可以通过切流功能保留使用原域名

 

迁移操作页面 

 

迁移操作步骤 

备注 :

前期准备:确认哪些服务需要迁移,不需要的服务可以直接删除;梳理是否需要保留原域名;梳理需要购买的张家口ECS数量和规格;

后期清理:对于成功迁移至聚石塔华北3(张家口)的服务,杭州的服务可以删除了。切流完成后杭州服务最好仍保留一段时间,之后再删除;

需要保留原域名的,才需要切流操作,我们会帮助配置DNS(操作有风险,详情请看文档最后Q&A)从而达到 ”访问原域名->请求新服务“ 的目的;

不需要保留原域名的,服务一键迁移后,直接确认完成,新服务的域名为新的张北域名,使用新域名访问服务即可;

 

主要步骤说明:

1.张家口ECS准备

购买聚石塔张家口的ECS资源,并且添加到资源池,可以与第2步同时进行。

 

2.发起迁移

状态为“未开始”的任务点击“发起迁移”按钮为每个服务提交迁移任务。如下图所示: 

 
开始执行后页面状态为“ 数据准备中”,完成之后,刷新页面可以看到任务状态变为“ 数据准备完成”。如下图所示:
 

注意事项:

此步骤会在张北创建同名同配置的新服务,同时会拷贝原服务的git仓库、代码包等;

ECS上的数据和容器不会迁移,需要自己迁移相关数据以及扩容容器(步骤3);

新服务名与原来一致,之后用户可以自己修改;

新服务的历史包版本与原来相同;

新服务的域名前缀与原来相同,如原域名为mydomain.ews.m.jaeapp.com,则新域名为mydomain.ewszjk.m.jaeapp.com;

新服务的git仓库url与原来相同,不影响代码仓库操作

 

3.新服务容器扩容

进入服务列表页面,在聚石塔张北TAB下找到系统自动为您创建的新服务,点击容器管理->增加容器。云服务器选择第1步中准备好的张北机器,为新服务扩容,此时服务会自动进行部署。

注意事项:

因为主机和容器都变化了,服务如果依赖了数据库、REDIS等,新服务可能因连接不通导致启动失败,需要自己去进行相应的排查和配置,保证服务部署启动成功

 

4.新服务功能测试

使用新服务的域名,测试功能。如 mytest.ewszjk.m.jaeapp.com

 

5.流量切换

不需要保留杭州域名的,请跳过次步骤。

回到张北迁移页面,点击“流量切换”按钮,切换成功后,任务状态为“已切流”。

操作后,访问原杭州域名,请求会转发到张北的新服务中。如遇访问异常等意外情况,点击“流量回滚”按钮进行回退操作,并及时向我们反馈。

注意事项:

切流前请先确保张北服务正常,以避免切流产生问题后又回滚;

切流后请先确认流量已经切到了张北,杭州服务同时继续维护,持续观察几天,没问题之后再对杭州服务进行下线或删除等操作。

建议不要频繁地操作切流和回滚,操作后不符合预期,请先按照下方的Q&A排查,仍然有问题的及时提EWS工单;

不需要保留原杭州域名的,这里可以直接确认完成,如下图所示:

 

6.确认完成

确认功能正常,杭州域名(切流后)和张北新域名可以继续访问。之后可以点击“完成迁移”按钮,页面状态变为“迁移完成”。

此时整个服务的迁移完成,原杭州服务可以进行处理。

 

Q&A

1)切流操作有什么风险?到底要不要保留原域名?

切流操作会设置DNS以及后台相关接入层配置,由于DNS缓存的原因,切流后,有可能存在少量客户不能正常访问原地址的情况。

具体原因如下:

DNS有多级缓存,每一级的缓存时间均不相同。比如本地浏览器、不同层级的DNS服务器、某些ISP(如**联通)等。通常情况下,切流之后10分钟左右DNS都会生效,但是不排除某些DNS服务器缓存时间比较长(比如某个海南联通的手机用户,ta在访问杭州域名时,使用的DNS仍是旧的,域名就会解析到杭州,如果此时杭州服务下线了,则会提示"找不到应用")。如果是电脑端访问有这个问题,可以通过清理本地的DNS缓存解决。

 

如果能够不保留原域名,最好还是直接使用新服务的zjk域名,将使用杭州域名的地方都改为新域名;如果保留原域名更方便,请知晓上述风险,自行评估是否切流

 

2)服务迁移完成之后,杭州的服务需要删除吗?删除服务之后会影响原来域名的访问吗?

A:原杭州的服务需要删除,如果需要保留原域名,进行了切流操作,最好保留一段时间之后再删除杭州服务。

如果操作了切流,杭州服务删除之后原来域名依然可以访问。

第5步中切流工作已经将原来的域名请求转发到张北的服务上。工作原理如下:

自己配置过CNAME:外部域名——>杭州EWS域名——>张北EWS域名

没有配置CNMAE:杭州EWS域名——>张北EWS域名

 

3)如何判断流量切换是否成功?

①访问杭州域名,检查张北服务的日志/访问日志中是否有对应的请求

②终端上执行 nslookup 杭州域名,看输出中是否有

杭州域名 canonical name = 张北域名.

如果有,则说明杭州域名->张北域名的CNAME DNS配置已经生效

 

4)切流成功之后,访问杭州域名仍然请求的是聚石塔杭州服务?

A:DNS设置有一定的缓存延迟,5-10分钟,请先等待;仍然没有生效,请提EWS工单

 

5)流量回滚后,应用打不开,显示找不到应用,请尝试重新部署?

① 确认下杭州服务的容器,运行中的容器数量是否>0

② 请先不要操作切流或者回滚,等待5-10分钟再尝试。仍然有问题,请提EWS工单

注:流量回滚之后,访问杭州域名,正常情况下会访问到杭州服务。DNS的解析有5-10min的TTL,即可能会有延迟,这种情况下CNAME没有及时清理,dns依然cname到张北域名,但是EWS接入层的解析已回滚,所以找不到杭州域名(最初始的原域名)对应的张北容器,页面提示“找不到应用,请尝试重新部署”,所以这种情况需要等待回滚DNS生效

 

6)原杭州websocket域名能否保留?

A:使用websocket域名的需求较少,所以上述步骤没有进行保留。如果需要,麻烦提EWS工单

 

7)切流之后,张北的服务运行异常?服务蹦掉?

① 检查下是否是张北的EWS服务,访问的还是杭州的RDS,如果是,

张北ECS访问杭州RDS是很慢的,比原来从杭州ECS访问要慢10-20倍,数据库响应慢导致服务运行异常,那么解决方案是先迁移RDS,再修改张北EWS服务中的数据库连接,最后再切流

② 检查应用日志,如/acs/log,看是否是应用问题。

java类应用,请检查容器规格和服务-配置管理-jvm相关参数,看是否是内存不足导致java进程被kill。参考:

dmesg |grep java

egrep -i -r 'killed process' /var/log

 

FAQ

关于此文档暂时还没有FAQ
返回
顶部