獨家揭秘 | 京東物流Elasticsearch大規模“遷移上雲”實踐

京東科技開發者發表於2020-06-02

獨家揭秘 | 京東物流Elasticsearch大規模“遷移上雲”實踐

雲妹導讀:
據美國調研機構Gartner公司調研指出,2020年,企業“無雲”就像“無網路”一樣窘迫。如果企 業對於資訊化和數字化視而不見,勢必將被這個時代所淘汰。近日,國常會議指出,要對“網際網路+”、平臺經濟等加大支援力度,發展數字經濟新業態,依託工業網際網路促進傳統產業加快上線上雲。在頂層架構的帶動下,“企業上雲”概念,再次站上風口。

京東物流在上雲過程中算走在京東集團的最前列,截止目前已經有超過90%的應用在公有云上部署了例項,包括去年的雙11.11大量業務都是執行在公有云上,在業務流量超過了三倍以上的情況下,整體運營也都非常平穩。

1 京東物流為什麼要“上雲”

京東物流之所以需要遷移上雲,除了整個京東集團上雲戰略上的考慮,從物流集團內部自驅來看有三點考慮,即 輕資產化降低成本架構升級

物流是非常重資產的行業,要有庫房、大量的員工還有物流系統也是非常龐大的,而這麼大體量的系統卻常年跑在很多物理機上面,隨著時間的推移,這些物理機可能過保或者損壞,帶來了大量的維護成本,而隨著業務的發展,還要採購更多的物理機,這就導致資產會越來越重。而從整個網際網路趨勢來看,大家都是希望自己的架構越來越輕,資產越來越輕。

第二就是降低成本,大家都知道雲端計算的特點就是虛擬化和共享化。如果資源在不使用的時候可以回收掉,使用的時候可以採用按需申請,包括計費的模式,就可以按小時按天進行計費。這樣對集團內部資產進行規劃,對於集團制定伺服器的預算都有很好的幫助。

第三,如果只是簡單的把系統搬到雲上去的話是沒有任何意義的,僅僅把系統伺服器部署從私有云搬到公有云上意義也不大,真正有意義的是,在這個遷移的過程中,可以對自身的系統架構進行梳理,同時也可以對陳舊的、過時的和現在業務發展不太匹配的系統架構進行一定的升級,包括雲原生的架構,這是一個非常好的機會。

而這三點就是京東物流啟動上雲的驅動力。

2 京東物流遷移上雲方案

依託京東智聯云云搜尋Elasticsearch高可用、易擴充套件、近實時等特性,產品在降低使用門檻,減少資源投入成本的前提下,成功助力京東物流分揀中心自動化系統、冷鏈流程監控系統、開放訂單跟蹤系統等上百個系統遷移上雲。

獨家揭秘 | 京東物流Elasticsearch大規模“遷移上雲”實踐

遷移方案的選擇

根據業務需求,方案包括停機遷移和不停機遷移2種:

1、停機遷移

遷移過程中,舊叢集可以暫時停止服務或者暫停寫入,待資料全部遷移到新叢集后,再將業務切換到新叢集進行讀寫。

停機遷移可以透過elasticsearch-dump、snapshot、reindex、logstash等方式完成資料遷移。

獨家揭秘 | 京東物流Elasticsearch大規模“遷移上雲”實踐

2、不停機遷移

遷移過程中,舊叢集不能停止寫入,業務不能停服,這也是京東物流上雲主要採用的方案。

如果舊叢集不能停止寫入,此時進行線上資料遷移,需要保證新舊叢集的資料一致性。目前看來,除了官方商業版提供的CCR功能,開源版本並沒有開源的嚴格保證資料一致性的線上資料遷移工具。因此京東智聯雲Elasticsearch團隊基於京東物流需求提供了業務不停機場景下的遷移工具。

工作原理

在雲端建立新叢集,將雲上叢集和使用者叢集合併成一個大叢集,利用Elasticsearch資料分佈API(cluster.routing.allocation.exclude)將使用者叢集中的索引資料遷移到雲上叢集的資料節點,最後將使用者叢集和雲上叢集構成的大叢集拆分,關閉使用者叢集即可完成遷移。

但採用這種方式必須要同時滿足如下兩個條件:

  • 使用者叢集版本和雲上叢集版本相同
  • 使用者叢集所有節點和雲上叢集所有節點網路能夠互通

操作步驟

整個遷移過程包括新建映象叢集、映象叢集加入源叢集、移動資料到映象叢集、切換客戶端流量、切分叢集5個方面。

#1 建立雲上叢集。在京東智聯云云搜尋Elasticsearch控制檯( )建立與使用者源叢集版本一致、網路互通的雲上叢集,作為映象叢集。


獨家揭秘 | 京東物流Elasticsearch大規模“遷移上雲”實踐

#2 合併叢集。設定使用者源端叢集地址和雲上叢集例項ID,建立遷移任務後,將映象叢集加入源叢集。

獨家揭秘 | 京東物流Elasticsearch大規模“遷移上雲”實踐

#3 遷移資料。叢集合併成功後,可以先嚐試遷移一個索引,遷移後切換該索引的應用端流量,觀察應用端讀寫資料正常後,遷移全部索引。

獨家揭秘 | 京東物流Elasticsearch大規模“遷移上雲”實踐

#4 切換流量。索引遷移成功後,應用側需要將配置的叢集地址修改為雲上叢集的地址,切換應用的叢集地址後,建議執行一段時間,觀察應用是否讀寫正常。

獨家揭秘 | 京東物流Elasticsearch大規模“遷移上雲”實踐

#5 切分叢集。叢集切分後無法恢復,建議執行一段時間,確認叢集執行正常後,再切分叢集,同時關閉源叢集,才會最終切分完成。

獨家揭秘 | 京東物流Elasticsearch大規模“遷移上雲”實踐

透過上述方法,僅6個月時間京東物流就完成了近百個系統的數百個叢集、數千個節點資料遷移工作。還配套提供了一鍵報警等核心功能,進行全天候、全方位掌握叢集健康等情況。

3 為什麼使用ES?

京東物流作為全球唯一擁有中小件、大件、冷鏈、B2B、跨境和眾包(達達)六大物流網路的企業,產生的資料規模極大,需要的元件必然是多元化的,Elasticsearch作為排名最高的搜尋引擎, 完美相容Logstash、Kibana周邊生態,在搜尋查詢領域,幾乎完勝所有競爭產品,解決一切搜尋查詢問題。因此,這也是Elasticsearch成為京東物流大件二手倉系統、訂單跟蹤系統等上百個系統搜尋查詢場景下的不二選擇的重要原因。

獨家揭秘 | 京東物流Elasticsearch大規模“遷移上雲”實踐

但在物流上雲之前,使用的Elasticsearch系統均是採用自行搭建方式完成的,使用傳統自建伺服器的方式其實存在很多的問題:

  • 開源叢集、索引管理工具問題——一是缺少對公司業務的感知和資料治理能;二是缺乏與公司基礎設施的聯動
  • 叢集、索引的運維問題——在操作的安全性和標準化的運維手段、流程健全性等方面都有待最佳化
  • 線上問題排查——較多依賴手動操作和人工經驗判斷,解決問題的最佳實踐沒有固化
  • 資金成本問題——硬體採購需要大量資金,機房託管、部署機器等工作,需要較長的時間週期和人力成本

雲端計算高可用、全託管、易擴充套件等特性可以很好的解決使用者服務的痛點。雲搜尋Elasticsearch圍繞企業需要和運維中面臨的問題,提供了完善的解決能力:

獨家揭秘 | 京東物流Elasticsearch大規模“遷移上雲”實踐

  • 全託管——使用者分鐘級即可成功建立出可用Elasticsearch叢集,無需部署維護軟硬體設施,整合完整的叢集管理、監控與告警系統,專業團隊7*24小時不間斷守護,使用者只需專注於業務開發。
  • 高可用——能夠方便地為資料建立索引,擁有節點自動發現和替換失效節點能力,零配置實現分佈。當有新節點加入叢集時,自動發現並重新進行負載均衡,為新節點分配資料;當某節點失效時,它同樣會自動重新為可用節點分配資料。
  • 易擴充套件——雲搜尋Elasticsearch服務提供實時擴容功能,實現叢集的輕鬆擴充套件。使用者可根據資料量和查詢量選擇合適的機型,自定義節點的儲存空間,靈活實現按需配置,動態擴容叢集以滿足業務增長需求。
  • 近實時——自動將海量資料分散到多臺伺服器上去儲存和檢索,在秒級別對資料進行搜尋和分析,達到海量資料近實時處理。
  • 開放相容——100%相容開源Elasticsearch,開放大量簡單易用的RestfulAPI,整合了視覺化分析工具Kibana和叢集管理工具Head。
  • 安全可控——雲搜尋Elasticsearch部署在邏輯隔離的專有網路內,杜絕了外網直連風險。同時只開放雲搜尋Elasticsearch服務所需特定埠,加固了資料訪問安全。

以上,Enjoy~

點選 閱讀 ,可瞭解更多Elasticsearch詳請!

獨家揭秘 | 京東物流Elasticsearch大規模“遷移上雲”實踐


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69912185/viewspace-2695814/,如需轉載,請註明出處,否則將追究法律責任。

相關文章