線上數據遷移,數字化時代的必修課 —— 京東雲數據遷移實踐

来源:https://www.cnblogs.com/Jcloud/archive/2022/09/02/16649290.html
-Advertisement-
Play Games

打破數據邊界,是數字化時代常掛在嘴邊的一句話,數據的價值是在流動中體現的,數據應用也是如此。以往為了滿足開發、測試、數據保護容災和數據分析的需要,我們不斷對數據進行複製、備份、遷移,因此數據遷移非常重要。 混合多雲時代,用戶數據遷移需求與場景激增 今天我們來重點聊聊混合雲時代中數據遷移,先來看看常見 ...


打破數據邊界,是數字化時代常掛在嘴邊的一句話,數據的價值是在流動中體現的,數據應用也是如此。以往為了滿足開發、測試、數據保護容災和數據分析的需要,我們不斷對數據進行複製、備份、遷移,因此數據遷移非常重要。

混合多雲時代,用戶數據遷移需求與場景激增

今天我們來重點聊聊混合雲時代中數據遷移,先來看看常見的幾種企業數據遷移的需求與場景:

  1. 傳統雲化型:設備老舊,需要升級,硬體成本升級性價比不高,雲上更經濟;

  2. 價格敏感型:綜合對比多家廠商價格,靈活選型採用成本最優方案;

  3. 災備驅動型:需要多雲、異構雲來架構自己的災備體系,保證數據的安全

  4. 游戲客戶:異地開服,服務不同地域的用戶,因各地網路質量不一致需要多雲模式用於構建服務本地用戶的游戲伺服器。

  5. 泛金融客戶:要符合金融安全政策的要求,需要數據的遷移

這些客戶都因系統和技術升級、業務的發展、以及安全合規等因素採用混合多雲的方案,同時對其數據的遷移有著很高的訴求,在不同的業務模式和需求下也會面臨多種問題。

混合多雲時代下,數據遷移的困境

資料庫的發展多樣性提升遷移門檻

混合多雲時代,遷移是面臨的一大難題,其中數據安全遷移往往又是企業最關註的。提到數據遷移的困難,究其原因先粗略回顧下關係型資料庫到非關係型資料庫的發展。

關係型資料庫,是指採用了關係模型來組織數據的資料庫。關係模型是在1970年由IBM的研究員E.F.Codd博士首先提出的,在之後的幾十年中,關係模型的概念得到了充分的發展並逐漸成為主流。關係型資料庫具備事務一致性、讀寫實時性、結構化與規範化等特性,因而容易理解、使用方便、易於維護,在虛機時代,互聯網還未普及時它是最主流的資料庫,典型的代表有Oracle、Microsoft SQL Server、DB2、MySQL等。

但隨著互聯網的飛速發展,網站用戶併發高,海量數據的產生,傳統關係型資料庫已經不能滿足企業的數據存儲需求了,非關係型資料庫應勢而生,它高併發,讀寫能力強、弱化數據結構一致性,使用更加靈活有良好的可擴展性等優勢逐漸成為了企業的首選。

NoSQL一詞首先是Carlo Strozzi在1998年提出來的。典型代表Redis, Amazon DynamoDB, Memcached,Microsoft Azure Cosmos DB等

在面對這兩種資料庫之間的遷移,關係型資料庫SQL RDBMS發展久,遷移生態工具齊全,且大部分資料庫產品都自帶遷移工具;而非關係NoSQL,數據定義更寬鬆,產品體積輕量,放棄了一致性校驗,導致某些數據結構濫用,提升了遷移難度。而遷移工具大部分開放給生態來做,由於發展時間較短,工具完善度不如RDBMS高。

廠商試圖“數據綁架”,使遷移雪上加霜

分析完關係型資料庫到非關係資料庫的發展,可以看到數據存儲結構本身已發生了巨大的變化,這從根因上已大幅提升了遷移的難度,而一些雲廠商對資料庫的再次改造,且對關係型資料庫底層改造不透明,導致資料庫的複雜性大大加大,試圖用數據遷移成本高來長期綁定客戶,更是令數據的遷移雪上加霜。

“個體差異”導致通用型解決方案缺失

不同的企業由於自身需求不同與使用場景的多樣性,每一個客戶,對我們來說都是一個新的案例,我們必須“量身定製”化服務,但在過程中我們也總結出幾類常見難點:

  • 難點一:多節點資料庫遷移,節點數量不一致

  • 難點二:原生產品跨版本問題,版本不一致且上下版本相容性不夠好

  • 難點三:緩存類數據易失性更高 

面臨挑戰,京東雲破局遷移困境

下麵通過實際案例和大家分享我們是如何破局遷移困境,幫助用戶解脫數據枷鎖的。

重大挑戰,臨危不亂/從容不迫

2019年京東物流為了實現其輕資產化、降低成本、升級架構的三大目的,將其ES開始由本地機房遷移到雲上。依托京東云云搜索ES高可用、易擴展、近實時等特性,京東物流成功地將分揀中心自動化系統、冷鏈流程監控系統、開放訂單跟蹤系統等上百個系統遷移上雲。

在遷移過程中京東雲不僅提供了常規的停機遷移方案,還提供了特殊的不停機遷移方案,保證了物流業務不停服。不停機遷移方案如下:在雲端創建新集群,將雲上集群和用戶集群合併成一個大集群,利用Elasticsearch數據分佈API(cluster.routing.allocation.exclude)將用戶集群中的索引數據遷移到雲上集群的數據節點,最後將用戶集群和雲上集群構成的大集群拆分,關閉用戶集群即可完成遷移。(採用這種方式須註意同時滿足以下兩個條件:用戶集群版本和雲上集群版本相同;用戶集群所有節點和雲上集群所有節點網路能夠互通。)

通過上述方法,很快就就完成了京東物流近百個系統的數百個集群、數千個節點數據上雲工作。在此之上京東雲還配套提供了一鍵報警等核心功能,對上雲工作進行全天候、全方位的保障。

截止目前,京東物流已有超過90%的應用在公有雲上部署了實例,去年11.11期間業務量超過日常三倍以上的情況下,整體運營平穩。

遷移利器,上雲必備

關係型資料庫依然是各行業的主流應用之一,怎樣更快的將傳統關係型數據中的數據遷移上雲也是很多行業用戶關心的。為此京東雲特意打造了一款針對關係型資料庫的遷移工具——數據傳輸DTS。

數據傳輸DTS 提供實時數據流服務,支持數據遷移、數據訂閱和數據同步服務,可簡單方便的滿足數據上雲、業務非同步解耦、數據異地災備、業務系統數據流轉等業務場景。目前數據傳輸DTS支持MySQL、MariaDB、Percona、SQL Server、PostgreSQL等多種資料庫遷移,可以簡單快速地將本地自建資料庫遷移至京東雲,源資料庫在遷移過程中可繼續正常運行,從而最大程度地減少應用程式的停機時間。

不斷突破,技術創新

某家線上廣告公司需要將Redis從自有機房遷移到雲上。由於客戶系統承載著大量結算緩存和業務緩存所以要求在遷移過程中不能有業務中斷。當時有一些開源工具,但是不滿足要求。主要是由於版本問題,客戶用的Redis版本是4.0而當時開源的工具只支持3.28及以下版本。本著京東客戶業務為先的原則,和鼓勵創新的技術精神,我們思考,能不能為客戶自研一套工具,能夠Cover住Redis數據流轉大部分場景的通用工具,於是2019年7月redissyncer 1.0版本誕生,完成了數據源及目標校驗、原生集群同步、 大KV的拆解等基本功能。

1.0完後很快迎來了幾個客戶:

  • 其一是互聯網行業用戶,Redis單實例,數據體量不大20Gb左右。我們通過啟動參數修複、調整每批次Value值等細節優化順利完成了遷移任務;

  • 第二個用戶是游戲行業的用戶,用戶需要將自有IDC中的Redis遷移到京東雲。在使用我們的產品之前,用戶自己找過若幹開源產品但都不符合要求。由於用戶的實例數量較多,在瞭解過Redissyncer產品特性後,用戶決定使用我們的工具自行遷移。

貼近一線,無微不至

經過一個下午的培訓遠程培訓,用戶很快上手第一個實例遷移很順利。在接下來的幾天用戶通過我們的工具陸續完成遷移工作,並反饋中給予產品很高評價,並特意發來感謝信。

 

 

 

 

來自客戶的認可,是我們不斷向前的最大動力!

 

不斷打磨,精益求精

在剖析過更多客戶痛點與需求後, 2019年11月底,我們完成了2.0版本的升級,補充了同步模式拆分、斷點續傳、離線文件載入、跨版本遷移、流式載入等功能。

很快2019年12月我們又迎來了一個金融用戶。用戶需要將原生Redis集群遷移到自研的Redis集群。目標集群節點數多大16*2即16對主從構成的集群,遷移過程很順利,經過準備15分鐘完成應用割接。

 

 

(遷移部署圖)

經過實際場景的打磨,我們陸續修複了一些測試中很難遇到的bug,添加了一些新特性。使得產品不僅支持升級遷移同時支持降級遷移;為了提高用戶體驗,我們參考Redis、MySQL等優秀開源產品的方式做了一個命令行客戶端命名為redissyncer-cli。至此,完成了RedisSyncer3.X的升級,這個項目的體系建設基本上可以滿足Redis遷移同步場景中的大部分需求了。

不止於此,突破創新

起初,我們把RedisSyncer定位為一個Redis的同步工具。隨著開發和用戶側的實踐,我們下一步想把RedisSyncer打造成為具備企業級災備能力的Redis數據同步中間件。從工具到具備企業級災備能力還是有一定門檻的。所以下一步我們的工作重點是對軟體進行分散式改造,最終目標是在任意節點發生故障時任務可自動化持續,實現企業級災備能力的Redis數據同步中間件。

擁抱開源,包容開放

目前京東雲已經積累了覆蓋互聯網、游戲、金融、物流、零售等多場景領域的遷移經驗。隨著混合多雲趨勢到來,我們深知用戶遷移之苦,也願意以相容開放的心態為客戶提供技術服務,真正做到把選擇權交給用戶,同時為了讓更多人享受技術帶來的便利,我們在今年決定將自研RedisSyncer完全開源(開源地址:https://github.com/TraceNature/redissyncer-server),將技術回歸社區,給更多用戶和開發者帶來便利!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 三國誌11是一款十分經典的策略類游戲,三國誌11威力加強版是《三國誌11》的擴充強化版本,能夠讓已經體驗過《三國誌11》的玩家可以享受到更豐富的游戲內容。採用了氣勢滂沱的水墨風格,同時還追加全新的6段劇情。 詳情:三國誌11威力加強版 for Mac(三國策略游戲) 《三國誌11威力加強版》是日本光 ...
  • Mac投屏軟體怎麼安裝?AIrServer是一款ios投屏到mac的專用軟體,可將iOS上的音頻,視頻,照片,幻燈片和鏡像接收功通過AIrPlay投射到Mac。AIrserver 7 mac版可以實現將手機上的媒體文件以及其他操作投射到電腦上進行操作。使用AIrServer,您現在可以從Mac,iO ...
  • LightWave 3D Mac版是專為Mac用戶設計的三維動畫製作軟體,功能強大,操作簡便,易學易用,無論是初學者還是專業人士都可以滿足所有需求!LightWave 3D 被廣泛應用於電子游戲開發、電視、電影、網頁、廣告、以及印刷圖形和設計等領域。 詳情:LightWave 3D 2020 for ...
  • 本教程主要介紹如何在 Windows 系統上實現 Spire.Cloud 私有化部署。 詳細步驟如下: 一、安裝依賴 我們的私有部署的依賴有 Nodejs、MySQL、Redis 和 RabbitMQ。請確認伺服器安裝了 Nodejs、MySQL、Redis 和 RabbitMQ。 二、部署 Spi ...
  • 排座位問題的思路 表: Seat + + + | Column Name | Type | + + + | id | int | | name | varchar | + + + Id是該表的主鍵列。 該表的每一行都表示學生的姓名和ID。 Id是一個連續的增量。 編寫SQL查詢來交換每兩個連續的學生 ...
  • 所謂Hive的嚴格模式,就是為了避免用戶提交一些惡意SQL,消耗大量資源進而使得運行環境崩潰做出的一些安全性的限制。 ...
  • 近期,由中科軟科技股份有限公司主辦,以“數字保險 科技引擎”為主題的“中國財險科技應用高峰論壇”在北京古北水鎮成功舉辦。論壇聚集400多位來自國內財險公司、國內外保險科技公司的技術專家,騰訊雲資料庫總經理王義成受邀參加,並作為開場嘉賓做主題演講,分享騰訊雲資料庫在金融領域的探索實踐。以下為大會分享實 ...
  • 點亮 ⭐️ Star · 照亮開源之路 GitHub:https://github.com/apache/dolphinscheduler ​ 參與開源已經快3年了,這次在Meetup上沒有分享純技術的話題,其初衷是想帶這大家從一個開源社區維護者的視角來看開源,希望大家能從中獲取到一些感悟,當然這次 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...