随着众安业务的不断扩大和变化,原有云网络架构已无法满足业务需求,比如经典网络不支持私网自定义,安全性也相对较低,经典网络迁移VPC网络的需求也日益凸显。
阿里云经典网络和VPC网络是阿里云提供的两种不同的网络模型。经典网络是指所有云产品都使用同一内网网络环境,VPC网络则是指用户可以自定义私有IP地址范围,并且可以使用安全组、网络ACL等方式来加强网络安全性。
在迁移经典网络至VPC网络的过程中,会涉及到网络拓扑结构调整、IP地址的变化等问题,因此需要进行仔细的规划和准备。为了确保迁移过程的顺利进行,我们做了详细的迁移指南和技术支持,帮助业务线顺利完成迁移。
相比经典网络,VPC相同主机配置价格减少约30%。
相比经典网络,VPC网络提供了更加丰富的安全性控制措施,如网络ACL、安全组、VPN等,可以更好地保护用户的业务数据和网络安全。
VPC网络具有更高的带宽利用率和更低的网络延迟,可以提高网络性能和响应速度,从而提高业务效率。
VPC网络提供丰富的网络管理工具和API接口,用户可以通过控制台或API对网络拓扑结构、安全规则、路由表等进行灵活配置和管理,提高管理效率。随着业务的不断发展和变化,经典网络已经无法满足众安的需求,而VPC网络可以提供更加灵活和丰富的网络服务,可以满足我们的需求。
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端口。
a) 统一通过域名访问,不允许直接通过IP提供服务。
b) 内网服务仅允许同环境通过标准端口访问,不允许跨环境访问。
众安科技统一运维平台及工具为集团统一提供服务。
a) 统一发布平台ship。
b) 统一监控平台六翼。
c) 统一各种库(代码库git , maven库,Python库,npm库,镜像库等)。
d) 统一数据库中间件到xdbc
a) ClassLink、在经典网络下的ECS服务器建立一个链接通道,让其能够通过这个通道访问到专有网络(VPC)环境下的ECS服务器、数据库RDS等资源。
b) 混挂、让阿里云SLB负载均衡可以混挂经典网络和专有网络下的ECS服务器,经典网络ECS和专有网络ECS同时提供服务,在切断经典网络ECS的网络流量后,专有网络下的ECS可以继续对外提供服务,SLB作为一个切换开关来实现无中断切换。
c) 混访、云数据库RDS和对象存储OSS等云产品同时支持经典网络下的ECS和专有网络下的ECS混合访问,无论ECS处于何种网络架构下均支持对RDS和OSS的访问。
经过各种网络方案对比,我们发现阿里云CEN云企业网具有网络互通性强、高可用性、网络管理简单、灵活扩展等优势,可以帮助我们快速构建安全、可靠、高效的企业级云联网,具体如下:
a) 网络互通性强:CEN可以实现多个VPC之间、不同地域之间的网络互通,满足企业多地域、多业务之间的互通需求。
b) 高可用性:CEN采用多节点构建的方式,具有高可用性和故障自愈能力,避免了单点故障的风险。
c) 网络管理简单:CEN提供控制台和API接口,可实现VPC网络的快速配置、自动路由发现和动态路由调整,降低了网络管理的复杂度。
d) 灵活扩展:CEN支持弹性扩展和弹性调整,可以根据业务需求随时增加或减少带宽和节点数量,保证网络的稳定性和高效性。
运维在VPC环境重新搭建运维基建,发布平台、监控平台等,所有微服务在VPC环境重新申请应用仓库,并重新发布,回归测试验证OK后如果有提供办公网域名和公网域名,邮件通知运维域名映射到新的负载均衡地址,切换验证无误后下线经典网络资源和服务。
中间件迁移涉及到多个方面,如数据迁移、网络配置、安全策略等,因此需要仔细规划和操作。此外,在迁移中间件时,也应该考虑到中间件的版本升级和功能优化,以充分发挥新的中间件的优势。根据不同的场景,有如下3种迁移方案:
a) 经典网络主机通过镜像方式迁移比如salt,通过镜像的方式在VPC环境创建新实例,验证无误后下线老节点。
b) 对于无状态的服务比如nacos,通过手动部署服务到新主机节点,后端使用同一数据库,验证无误后下线老节点。
c) 对于有状态的服务比如kafka ,通过手动部署服务到新节点,添加到同一集群,从老节点同步数据到新节点,逐步替换老节点。
迁移实施简图:
a) 创建VPC、交换机、ACL、安全组、NAT网关等网络资源。
b) 采购主机搭建CMDB资源管理平台,并调试具备可采购VPC中ECS资源。
c) 采购主机部署各种运维相关组件如salt、gitlab、nexus、harbor、npm、pypi、gayway等。
d) 采购阿里云容器服务ACK, 部署ingress 、 promethus、sentinel、jaeger,operator,nacos等服务。
e) 采购主机搭建ship发布平台,并调试具备服务发布功能,基础监控功能等。
a) 以系统为维度,收集需要迁移的应用信息(依赖中间件、服务调用关系、白名单、域名等)。
b) 系统和应用申请以及代码迁移(系统和应用申请后,邮件运维将老代码库中对应应用的代码copy到新仓库)。
c) 资源申请(服务器资源申请、数据库资源申请、中间件资源申请)。
d) 编码工作(主要为配置文件替换,以及部分硬编码替换)。
e) 通过发布系统发布上线(统一ship发布系统发布上线)。
f) 第三方合作伙伴专线地址变更(对于专线访问,NAT地址发生变更)。
g) 第三方公网白名单变更(统一使用NAT网关,提供统一的公网出口IP地址)。
h) 公网域名和办公网域名切换后端容器负载均衡地址(新旧服务切换)。
i) 验证服务和监控的有效性。
j) 迁移后资源下线。
按照如上中间件迁移方案中的3种迁移模式进行了迁移和切换。
众安保险规划有7个vpc, 众安科技规划有7个VPC,办公网到阿里云2条专线4个VBR实例,但是CEN实例只能加载15个实例,后经过和阿里云协调,扩容到21个,但还是无法满足众多子公司迁移VPC的需求,经过团队多方面的考虑和验证,将所有子公司迁移到了威寻账号下,解决了子公司迁移中面临的网络问题,实现了所有子公司云资源的统一纳管。(备注:从19年发展到目前2023年,随着子公司规模越来越大,有部分公司需要具备自主独立的运维环境,以保障服务稳定性)
遇到难点 :
a) vpc网络没法直接访问经典网络的SLB地址。
b) 需要保证经典网络老的服务能被经典网络和VPC服务能同时访问。
c) 需要保证VPC网络新的服务能被经典网络和VPC服务能同时访问。
解决方案
a) 以保险微服务域名za.biz和科技微服务域名za-tech.net为例,我们创建了如下dns关系.
b) 为满足VPC需要访问经典网络的微服务,我们把经典网络微服务网关的混挂了VPC地址,并在vpc中做了泛解析,意味着VPC能直接访问到经典网络的微服务。
c) 为满足VPC环境发布后,需要被VPC和经典网络访问,我们用发布系统实现了自动并可控的经典网络和VPC解析地址新增和删除功能。
想都是问题,做才是答案,站着不动永远是观众。阿里云VPC服务在2017年推出,但众安规模庞大,涉及到3000多台服务器,2000多个服务,很多人都知难而退。多年的规划,基建产品的不断成熟,直到2019年初终于迎来了最合适的时机,基于vpc迁移,我们不断地试错、总结经验,并努力做出更好的决策,经过半年多日日夜夜的努力,终于圆满的完成了目标,借此更升级及统一了全司的研发一体化平台。