獨家揭秘 | 京東物流Elasticsearch大規模“遷移上雲”實踐
雲妹導讀:
據美國調研機構Gartner公司調研指出,2020年,企業“無雲”就像“無網路”一樣窘迫。如果企 業對於資訊化和數字化視而不見,勢必將被這個時代所淘汰。近日,國常會議指出,要對“網際網路+”、平臺經濟等加大支援力度,發展數字經濟新業態,依託工業網際網路促進傳統產業加快上線上雲。在頂層架構的帶動下,“企業上雲”概念,再次站上風口。
京東物流在上雲過程中算走在京東集團的最前列,截止目前已經有超過90%的應用在公有云上部署了例項,包括去年的雙11.11大量業務都是執行在公有云上,在業務流量超過了三倍以上的情況下,整體運營也都非常平穩。
1 京東物流為什麼要“上雲”
京東物流之所以需要遷移上雲,除了整個京東集團上雲戰略上的考慮,從物流集團內部自驅來看有三點考慮,即 輕資產化、 降低成本、 架構升級。
物流是非常重資產的行業,要有庫房、大量的員工還有物流系統也是非常龐大的,而這麼大體量的系統卻常年跑在很多物理機上面,隨著時間的推移,這些物理機可能過保或者損壞,帶來了大量的維護成本,而隨著業務的發展,還要採購更多的物理機,這就導致資產會越來越重。而從整個網際網路趨勢來看,大家都是希望自己的架構越來越輕,資產越來越輕。
第二就是降低成本,大家都知道雲端計算的特點就是虛擬化和共享化。如果資源在不使用的時候可以回收掉,使用的時候可以採用按需申請,包括計費的模式,就可以按小時按天進行計費。這樣對集團內部資產進行規劃,對於集團制定伺服器的預算都有很好的幫助。
第三,如果只是簡單的把系統搬到雲上去的話是沒有任何意義的,僅僅把系統伺服器部署從私有云搬到公有云上意義也不大,真正有意義的是,在這個遷移的過程中,可以對自身的系統架構進行梳理,同時也可以對陳舊的、過時的和現在業務發展不太匹配的系統架構進行一定的升級,包括雲原生的架構,這是一個非常好的機會。
而這三點就是京東物流啟動上雲的驅動力。
2 京東物流遷移上雲方案
依託京東智聯云云搜尋Elasticsearch高可用、易擴充套件、近實時等特性,產品在降低使用門檻,減少資源投入成本的前提下,成功助力京東物流分揀中心自動化系統、冷鏈流程監控系統、開放訂單跟蹤系統等上百個系統遷移上雲。
遷移方案的選擇
根據業務需求,方案包括停機遷移和不停機遷移2種:
1、停機遷移
遷移過程中,舊叢集可以暫時停止服務或者暫停寫入,待資料全部遷移到新叢集后,再將業務切換到新叢集進行讀寫。
停機遷移可以透過elasticsearch-dump、snapshot、reindex、logstash等方式完成資料遷移。
2、不停機遷移
遷移過程中,舊叢集不能停止寫入,業務不能停服,這也是京東物流上雲主要採用的方案。
如果舊叢集不能停止寫入,此時進行線上資料遷移,需要保證新舊叢集的資料一致性。目前看來,除了官方商業版提供的CCR功能,開源版本並沒有開源的嚴格保證資料一致性的線上資料遷移工具。因此京東智聯雲Elasticsearch團隊基於京東物流需求提供了業務不停機場景下的遷移工具。
工作原理
在雲端建立新叢集,將雲上叢集和使用者叢集合併成一個大叢集,利用Elasticsearch資料分佈API(cluster.routing.allocation.exclude)將使用者叢集中的索引資料遷移到雲上叢集的資料節點,最後將使用者叢集和雲上叢集構成的大叢集拆分,關閉使用者叢集即可完成遷移。
但採用這種方式必須要同時滿足如下兩個條件:
- 使用者叢集版本和雲上叢集版本相同
- 使用者叢集所有節點和雲上叢集所有節點網路能夠互通
操作步驟
整個遷移過程包括新建映象叢集、映象叢集加入源叢集、移動資料到映象叢集、切換客戶端流量、切分叢集5個方面。
#1 建立雲上叢集。在京東智聯云云搜尋Elasticsearch控制檯( )建立與使用者源叢集版本一致、網路互通的雲上叢集,作為映象叢集。
#2 合併叢集。設定使用者源端叢集地址和雲上叢集例項ID,建立遷移任務後,將映象叢集加入源叢集。
#3 遷移資料。叢集合併成功後,可以先嚐試遷移一個索引,遷移後切換該索引的應用端流量,觀察應用端讀寫資料正常後,遷移全部索引。
#4 切換流量。索引遷移成功後,應用側需要將配置的叢集地址修改為雲上叢集的地址,切換應用的叢集地址後,建議執行一段時間,觀察應用是否讀寫正常。
#5 切分叢集。叢集切分後無法恢復,建議執行一段時間,確認叢集執行正常後,再切分叢集,同時關閉源叢集,才會最終切分完成。
透過上述方法,僅6個月時間京東物流就完成了近百個系統的數百個叢集、數千個節點資料遷移工作。還配套提供了一鍵報警等核心功能,進行全天候、全方位掌握叢集健康等情況。
3 為什麼使用ES?
京東物流作為全球唯一擁有中小件、大件、冷鏈、B2B、跨境和眾包(達達)六大物流網路的企業,產生的資料規模極大,需要的元件必然是多元化的,Elasticsearch作為排名最高的搜尋引擎, 完美相容Logstash、Kibana周邊生態,在搜尋查詢領域,幾乎完勝所有競爭產品,解決一切搜尋查詢問題。因此,這也是Elasticsearch成為京東物流大件二手倉系統、訂單跟蹤系統等上百個系統搜尋查詢場景下的不二選擇的重要原因。
但在物流上雲之前,使用的Elasticsearch系統均是採用自行搭建方式完成的,使用傳統自建伺服器的方式其實存在很多的問題:
- 開源叢集、索引管理工具問題——一是缺少對公司業務的感知和資料治理能;二是缺乏與公司基礎設施的聯動
- 叢集、索引的運維問題——在操作的安全性和標準化的運維手段、流程健全性等方面都有待最佳化
- 線上問題排查——較多依賴手動操作和人工經驗判斷,解決問題的最佳實踐沒有固化
- 資金成本問題——硬體採購需要大量資金,機房託管、部署機器等工作,需要較長的時間週期和人力成本
雲端計算高可用、全託管、易擴充套件等特性可以很好的解決使用者服務的痛點。雲搜尋Elasticsearch圍繞企業需要和運維中面臨的問題,提供了完善的解決能力:
- 全託管——使用者分鐘級即可成功建立出可用Elasticsearch叢集,無需部署維護軟硬體設施,整合完整的叢集管理、監控與告警系統,專業團隊7*24小時不間斷守護,使用者只需專注於業務開發。
- 高可用——能夠方便地為資料建立索引,擁有節點自動發現和替換失效節點能力,零配置實現分佈。當有新節點加入叢集時,自動發現並重新進行負載均衡,為新節點分配資料;當某節點失效時,它同樣會自動重新為可用節點分配資料。
- 易擴充套件——雲搜尋Elasticsearch服務提供實時擴容功能,實現叢集的輕鬆擴充套件。使用者可根據資料量和查詢量選擇合適的機型,自定義節點的儲存空間,靈活實現按需配置,動態擴容叢集以滿足業務增長需求。
- 近實時——自動將海量資料分散到多臺伺服器上去儲存和檢索,在秒級別對資料進行搜尋和分析,達到海量資料近實時處理。
- 開放相容——100%相容開源Elasticsearch,開放大量簡單易用的RestfulAPI,整合了視覺化分析工具Kibana和叢集管理工具Head。
- 安全可控——雲搜尋Elasticsearch部署在邏輯隔離的專有網路內,杜絕了外網直連風險。同時只開放雲搜尋Elasticsearch服務所需特定埠,加固了資料訪問安全。
以上,Enjoy~
點選 【 閱讀 】,可瞭解更多Elasticsearch詳請!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69912185/viewspace-2695814/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MSSQL·最佳實踐·RDSSDK實現資料庫遷移上阿里雲RDSSQLServerSQL資料庫阿里Server
- 京東物流實時風控實踐
- ELK 效能(4) — 大規模 Elasticsearch 叢集效能的最佳實踐Elasticsearch
- PB 級大規模 Elasticsearch 叢集運維與調優實踐Elasticsearch運維
- 京東物流常態化壓測實踐
- 位元組跳動 Flink 大規模雲原生化實踐
- Serverless 如何落地?揭秘阿里核心業務大規模落地實現Server阿里
- Node 在滬江的大規模實踐
- Apache RocketMQ 在阿里雲大規模商業化實踐之路ApacheMQ阿里
- 阿里雲如何打破Oracle 遷移上雲的壁壘阿里Oracle
- 騰訊大規模Hadoop叢集實踐Hadoop
- SAP系統為什麼要遷移上雲?
- 騰訊雲Elasticsearch叢集規劃及效能優化實踐Elasticsearch優化
- 輕鬆上雲系列之一:本地資料遷移上雲
- 浪潮雲海OS遷移上雲工具,讓上雲更簡單
- RocketMQ Streams在雲安全及 IoT 場景下的大規模最佳實踐MQ
- 私有化場景下大規模雲原生應用的交付實踐
- 阿里雲效團隊大規模程式碼構建技術實踐阿里
- 達達埋點遷移京東子午線實踐
- 獨家揭祕!阿里大規模資料中心的效能分析阿里
- Serverless 在大規模資料處理的實踐Server
- RocketMQ DLedger架構在小米的大規模實踐MQ架構
- 大規模 Hadoop 升級在 Pinterest 的實踐HadoopREST
- docker搭建大規模測試環境的實踐Docker
- 京東零售大資料雲原生平臺化實踐大資料
- 構建雲規模軟體的10項基本實踐
- 阿里雲釋出遷移解決方案,“遷移上雲”這件事有專業的人做阿里
- 攀登規模化的高峰 - 螞蟻集團大規模 Sigma 叢集 ApiServer 優化實踐APIServer優化
- 阿里雲RDS SQL自動化遷移上雲的一種方案阿里SQL
- 有數BI大規模報告穩定性保障實踐
- 微博紅包:大規模Docker叢集實踐經驗分享Docker
- 大規模機器學習在愛奇藝視訊分析理解中的實踐機器學習
- 螞蟻大規模 Sigma 叢集 Etcd 拆分實踐
- 從0到1到無窮,vivo大規模機器學習實踐機器學習
- 運營商大規模資料叢集治理的實踐指南
- 騰訊會議大規模使用Kubernetes的技術實踐
- 微信分享 | 大規模資料中心自動化運維實踐運維
- 前端⼤規模構建演進實踐前端