網站ipv6改造(匯報一下)

背景ipv6作為改進ipv4的下一代ip技術,其目的是為瞭解決ipv4地址枯竭的問題,同時在網絡數據轉發效率與安全性方面有很多改進。其第一版協議標準(RFC1883)早在1995年就已發佈,但是由於現存ipv4網絡升級成本較高以及ipv4自身的改進等種種原因直到最近幾年ipv6才開始在全球范圍內大規模應用。在我國從2018年5月工信部通知貫徹兩辦文件開始,三大運營商迅速完成移動端IPv6改造,並急速拉升用戶量。閑魚作為阿裡巴巴旗下全球最大的閑置交易社區,為響應國傢政策同時迎接未來技術的變革,開啟瞭基於ipv6的技術改造。ipv6應用架構分析要讓閑魚app支持ipv6網絡,勢必需要理清現在完整的網絡應用架構;由於阿裡龐大復雜的技術體系,實際上可能很多同學也不太清楚我們的網絡應用架構到底是什麼樣的,在此借此機會梳理瞭閑魚完整的app網絡應用架構:閑魚app網絡應用架構圖1如上圖所示,端上發起一次請求後:首先請求dns的服務解析域名地址。對於圖片、js等靜態資源直接請求cdn服務獲取。對於業務接口通過https請求到LVS負載服務,然後轉到aserver(類似ngnix的http代理服務器),再通過mtop將http請求轉換成rpc調用到達後臺服務。ipv6解決方案閑魚的ipv6改造是基於阿裡集團的ipv6架構實施的,有瞭上圖的網絡應用架構後,ipv6的解決方案看起來就很清晰瞭:圖2請求流程:app—>VIP(NAT轉換 TOC傳遞CIP)—>aserver(CIP打包裝入Http header)–>mtop服務。目前的方案是在LVS層通過阿裡自研的技術將IPV6通過NAT技術轉換成IPV4,然後將client ipv6信息通過http header傳入下遊服務,減少後端改造工作量;後續應用完全上雲後是端到端的ipv6/4雙棧支持。改造原則網絡屬於基礎設施,改造過程中需要非常小心,否則容易引發大故障。在改造過程中我們總結瞭以下原則供參考:一定要可測試、可灰度、可實時監控診斷分析、可隨時回退。必須能支持ipv4/ipv6雙棧環境,確保ipv6即使出現問題也不影響用戶。改造過程先小模塊再全業務;先分支業務再核心業務。先android再ios;android上架靈活。上線過程中,先開啟主業務服務域名放量,提升ipv6月活用戶量,再開啟cdn域名放量提升ipv6流量占比。主要做移動端改造,PC端流量很小,優先級較低。改造上線步驟整體改造步驟圖3調研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網絡為例:圖42. app端通過專用測試工具測試ipv6網絡連接,比如www.dotouch.net.cn提供的app網絡測試工具。裡面會有詳細的ipv4/6網絡鏈接與流量統計信息。3. 使用web工具通過瀏覽器直接訪問指定域名,統計ipv6訪問的詳細信息。4. 記錄日志查看ip相關信息。上線策略與監控灰度上線灰度上線包含以下三個部分:支持ipv6 app上線:ipv6改造測試完成後,首先使用獨立的app版本開始灰度發佈,在這個過程中開啟所有域名的ipv6策略,觀察一段時間看是否運行穩定。灰度完成後,再將支持ipv6版本的特性合入主版本開始發佈。前端、服務端改造發佈。ipv6域名上線:通過amdc控制各個域名的放量比例,可以控制的維度包含:域名名稱、appkey、省市地區、運營商。對閑魚來說主要的幾個域名如下: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網絡。一個具體放量配置如下:圖5ipv6監控我們使用集團提供的一些工具監控以下信息:ipv6 cdn的網絡質量。ipv6 cdn流量占比。接口請求時延、超時率、錯誤率。使用ipv6網絡的用戶dau、mau統計信息。效果與展望自去年底閑魚app支持ipv6上線以來,逐步開啟瞭各個省市的放量,目前ipv6的日活用戶占比達到瞭55%左右。業務運行穩定,未來我們會進一步開啟相關域名的ipv6能力,提升ipv6用戶的日活占比與流量占比。ipv6技術具有更高的網絡報文轉發效率與更強的安全性,隨著集團ipv6技術的持續增強,相信未來我們可以給用戶提供更好的使用體驗。閑魚技術團隊不僅是阿裡巴巴集團旗下閑置交易社區的創造者,更是移動與高並發大數據應用新技術的引導者與創新者。我們與Google Flutter/Dart小組密切合作,為社區貢獻瞭多個高star的項目和大量PR。我們正在積極探索深度學習和視覺技術在互動、交易、社區場景的創新應用。閑魚技術與集團中間件團隊共同打造的FaaS平臺每天支持數以千萬級用戶的高並發訪問場景。 就是現在!客戶端/服務端java/架構/前端/質量工程師面向社會+校園招聘,base杭州阿裡巴巴西溪園區,一起做有創想空間的社區產品、做深度頂級的開源項目,一起拓展技術邊界成就極致!*投喂簡歷給小閑魚→[email protected]開源項目、峰會直擊、關鍵洞察、深度解讀請認準閑魚技術


本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://www.xiaosb.com/beian/51031/