ipv6作为改进ipv4的下一代ip技术,其目的是为了解决ipv4地址枯竭的问题,同时在网络数据转发效率与安全性方面有很多改进。其第一版协议标准(RFC1883)早在1995年就已发布,但是由于现存ipv4网络升级成本较高以及ipv4自身的改进等种种原因直到最近几年ipv6才开始在全球范围内大规模应用。
在我国从2018年5月工信部通知贯彻两办文件开始,三大运营商迅速完成移动端IPv6改造,并急速拉升用户量。闲鱼作为阿里巴巴旗下全球最大的闲置交易社区,为响应国家政策同时迎接未来技术的变革,开启了基于ipv6的技术改造。
要让闲鱼app支持ipv6网络,势必需要理清现在完整的网络应用架构;由于阿里庞大复杂的技术体系,实际上可能很多同学也不太清楚我们的网络应用架构到底是什么样的,在此借此机会梳理了闲鱼完整的app网络应用架构:
图1
如上图所示,端上发起一次请求后:
闲鱼的ipv6改造是基于阿里集团的ipv6架构实施的,有了上图的网络应用架构后,ipv6的解决方案看起来就很清晰了:
图2
请求流程:app--->VIP(NAT转换 TOC传递CIP)--->aserver(CIP打包装入Http header)-->mtop服务。
目前的方案是在LVS层通过阿里自研的技术将IPV6通过NAT技术转换成IPV4,然后将client ipv6信息通过http header传入下游服务,减少后端改造工作量;后续应用完全上云后是端到端的ipv6/4双栈支持。
网络属于基础设施,改造过程中需要非常小心,否则容易引发大故障。在改造过程中我们总结了以下原则供参考:
图3
图4
2.app端通过专用测试工具测试ipv6网络连接,比如www.dotouch.net.cn提供的app网络测试工具。里面会有详细的ipv4/6网络链接与流量统计信息。 3.使用web工具通过浏览器直接访问指定域名,统计ipv6访问的详细信息。 4.记录日志查看ip相关信息。
上线策略与监控
灰度上线
灰度上线包含以下三个部分:
支持ipv6 app上线:ipv6改造测试完成后,首先使用独立的app版本开始灰度发布,在这个过程中开启所有域名的ipv6策略,观察一段时间看是否运行稳定。灰度完成后,再将支持ipv6版本的特性合入主版本开始发布。
前端、服务端改造发布。
ipv6域名上线:通过amdc控制各个域名的放量比例,可以控制的维度包含:域名名称、appkey、省市地区、运营商。
对闲鱼来说主要的几个域名如下:
在放量过程中一般是针对某个域名逐步进行放量,针对指定域名开启某些省份各个运营商的ipv6功能,开启时候按照百分比控制;开启ipv6功能后,后如果用户处在双栈网络环境(同时支持ipv4与ipv6),那么优先走ipv6的网络,如果用户当前只有ipv4 only环境,app自动切换到ipv4网络。 一个具体放量配置如下:
图5
我们使用集团提供的一些工具监控以下信息:
自去年底闲鱼app支持ipv6上线以来,逐步开启了各个省市的放量,目前ipv6的日活用户占比达到了55%左右。业务运行稳定,未来我们会进一步开启相关域名的ipv6能力,提升ipv6用户的日活占比与流量占比。ipv6技术具有更高的网络报文转发效率与更强的安全性,随着集团ipv6技术的持续增强,相信未来我们可以给用户提供更好的使用体验。
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8