汇报一下,闲鱼的ipv6改造之路
ipv6应用架构分析
要让闲鱼app支持ipv6网络,势必需要理清现在完整的网络应用架构;由于阿里庞大复杂的技术体系,实际上可能很多同学也不太清楚我们的网络应用架构到底是什么样的,在此借此机会梳理了闲鱼完整的app网络应用架构:闲鱼app网络应用架构
首先请求dns的服务解析域名地址。
对于图片、js等静态资源直接请求cdn服务获取。
对于业务接口通过https请求到LVS负载服务,然后转到aserver(类似ngnix的http代理服务器),再通过mtop将http请求转换成rpc调用到达后台服务。
ipv6解决方案闲鱼的ipv6改造是基于阿里集团的ipv6架构实施的,有了上图的网络应用架构后,ipv6的解决方案看起来就很清晰了:
一定要可测试、可灰度、可实时监控诊断分析、可随时回退。
必须能支持ipv4/ipv6双栈环境,确保ipv6即使出现问题也不影响用户。
改造过程先小模块再全业务;先分支业务再核心业务。
先android再ios;android上架灵活。
上线过程中,先开启主业务服务域名放量,提升ipv6月活用户量,再开启cdn域名放量提升ipv6流量占比。
主要做移动端改造,PC端流量很小,优先级较低。
改造上线步骤整体改造步骤
调研app端上修改点与后台服务修改点。
app与后台服务基于ipv6改造升级。
支持ipv6的内侧app,测试版本app进行内部灰度。
支持ipv6的正式app,集成后线上开始灰度,并逐渐放量发布。
服务域名ipv6放量:主服务域名通过amdc控制用户ipv6的比例,逐步在各省市放量。
cdn域名ipv6放量:静态页面、图片、视频,通过amdc精细化控制逐步在各省市放量。
具体改造点首先需要确保app集成的网络sdk库是支持ipv6的,如果不支持,需要升级sdk网络库或者应用自行开发。闲鱼使用的集团提供sdk网络库,升级到最新版本就支持ipv6环境了。
前端页面中使用到ip地址的逻辑需要支持ipv6格式。
后端业务逻辑中使用ip地址作为参数和数据库存储地方需要修改支持ipv6地址。
使用ip地址调用获取LBS的服务需要支持ipv6地址库。
用户画像、搜索、推荐使用到了用户ip的地方支持ipv6地址格式。
测试方法1. 需要确保本地ip是双栈环境。以WiFi网络为例:
app主服务域名:acs.m.taobao.com,请求后台业务的主要域名。
前端资源域名:g.alicdn.com ,获取js和css的资源,走cdn网络。
图片域名:heic.alicdn.com 获取图片的资源,走cdn网络。
视频域名:xianyu-video.alicdn.com 获取视频文件,走cdn网络。
pc端域名:2.taobao.com。
在放量过程中一般是针对某个域名逐步进行放量,针对指定域名开启某些省份各个运营商的ipv6功能,开启时候按照百分比控制;开启ipv6功能后,后如果用户处在双栈网络环境(同时支持ipv4与ipv6),那么优先走ipv6的网络,如果用户当前只有ipv4 only环境,app自动切换到ipv4网络。
一个具体放量配置如下:
ipv6监控
我们使用集团提供的一些工具监控以下信息:
ipv6 cdn的网络质量。
ipv6 cdn流量占比。
接口请求时延、超时率、错误率。
使用ipv6网络的用户dau、mau统计信息。
效果与展望自去年底闲鱼app支持ipv6上线以来,逐步开启了各个省市的放量,目前ipv6的日活用户占比达到了55%左右。业务运行稳定,未来我们会进一步开启相关域名的ipv6能力,提升ipv6用户的日活占比与流量占比。ipv6技术具有更高的网络报文转发效率与更强的安全性,随着集团ipv6技术的持续增强,相信未来我们可以给用户提供更好的使用体验。闲鱼技术团队不仅是阿里巴巴集团旗下闲置交易社区的创造者,更是移动与高并发大数据应用新技术的引导者与创新者。我们与Google Flutter/Dart小组密切合作,为社区贡献了多个高star的项目和大量PR。我们正在积极探索深度学习和视觉技术在互动、交易、社区场景的创新应用。闲鱼技术与集团中间件团队共同打造的FaaS平台每天支持数以千万级用户的高并发访问场景。
就是现在!客户端/服务端java/架构/前端/质量工程师
面向社会+校园招聘,base杭州阿里巴巴西溪园区,一起做有创想空间的社区产品、做深度顶级的开源项目,一起拓展技术边界成就极致!
扫一扫,关注我们