打开网易新闻 查看精彩图片

迁移目的

1. 实现降本增效

打开网易新闻 查看精彩图片

制定标准

1. 统一网段划分

a) 保险使用172.20.0.0/16,172.26.0.0/16 , 分配给DEV\TEST\PRE\UAT\PRD\PUB 6个环境

b) 科技使用172.27.0.0/16 ,分配给DEV\TEST\PRE\UAT\PRD\PUB 6个环境

c) 其他子公司使用172.25.0.0/16

a) 办公网可以访问测试环境服务非22和3389端口外所有端口。

b) 办公网仅允许访问预发环境服务和生产环境服务的80和443端口。

3. 服务之间访问基本标准

a) 统一通过域名访问,不允许直接通过IP提供服务。

b) 内网服务仅允许同环境通过标准端口访问,不允许跨环境访问。

4. 运维平台及工具标准

众安科技统一运维平台及工具为集团统一提供服务。

a) 统一发布平台ship。

b) 统一监控平台六翼。

c) 统一各种库(代码库git , maven库,Python库,npm库,镜像库等)。

d) 统一数据库中间件到xdbc

打开网易新闻 查看精彩图片

方案设计

打开网易新闻 查看精彩图片

b) 高可用性:CEN采用多节点构建的方式,具有高可用性和故障自愈能力,避免了单点故障的风险。

3. 微服务迁移方案

4. 中间件迁移方案

b) 对于无状态的服务比如nacos,通过手动部署服务到新主机节点,后端使用同一数据库,验证无误后下线老节点。

c) 对于有状态的服务比如kafka ,通过手动部署服务到新节点,添加到同一集群,从老节点同步数据到新节点,逐步替换老节点。

迁移实施简图:

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

迁移过程

1. 基建环境准备

b) 采购主机搭建CMDB资源管理平台,并调试具备可采购VPC中ECS资源。

c) 采购主机部署各种运维相关组件如salt、gitlab、nexus、harbor、npm、pypi、gayway等。

d) 采购阿里云容器服务ACK, 部署ingress 、 promethus、sentinel、jaeger,operator,nacos等服务。

e) 采购主机搭建ship发布平台,并调试具备服务发布功能,基础监控功能等。

2. 微服务迁移

a) 以系统为维度,收集需要迁移的应用信息(依赖中间件、服务调用关系、白名单、域名等)。

b) 系统和应用申请以及代码迁移(系统和应用申请后,邮件运维将老代码库中对应应用的代码copy到新仓库)。

c) 资源申请(服务器资源申请、数据库资源申请、中间件资源申请)。

d) 编码工作(主要为配置文件替换,以及部分硬编码替换)。

e) 通过发布系统发布上线(统一ship发布系统发布上线)。

f) 第三方合作伙伴专线地址变更(对于专线访问,NAT地址发生变更)。

g) 第三方公网白名单变更(统一使用NAT网关,提供统一的公网出口IP地址)。

h) 公网域名和办公网域名切换后端容器负载均衡地址(新旧服务切换)。

i) 验证服务和监控的有效性。

j) 迁移后资源下线。

3. 中间件迁移

按照如上中间件迁移方案中的3种迁移模式进行了迁移和切换。

打开网易新闻 查看精彩图片

迁移难点及解决方案举例

打开网易新闻 查看精彩图片

2. DNS解析

遇到难点 :

解决方案

a) 以保险微服务域名za.biz和科技微服务域名za-tech.net为例,我们创建了如下dns关系.

打开网易新闻 查看精彩图片

讲到最后

想都是问题,做才是答案,站着不动永远是观众。阿里云VPC服务在2017年推出,但众安规模庞大,涉及到3000多台服务器,2000多个服务,很多人都知难而退。多年的规划,基建产品的不断成熟,直到2019年初终于迎来了最合适的时机,基于vpc迁移,我们不断地试错、总结经验,并努力做出更好的决策,经过半年多日日夜夜的努力,终于圆满的完成了目标,借此更升级及统一了全司的研发一体化平台。