京東區塊鏈郭理靖
⑴ 京東高管詳解:雲戰略如何做到數據安全
京東指出,到2015年將開放電商業務全部資源和能力,成為中國第一位的電商雲提供商。京東何以豪氣雲天?京東雲戰略背後蘊藏著哪些技術與力量?而未來極端,從雲端落地的雲計算,誰又能獨領風騷?京東雲平台開發者服務部研發總監郭理靖有著自己的觀點和看法:作者:郭理靖,京東雲平台開發者服務部研發總監雲資料庫服務是雲平台不可或缺的重要組成部分,它承載著用戶重要關系型數據落地,數據分拆,無縫擴容等重要功能,而RDS(Relation Database Service)服務本身各家都有不同的實現,本文嘗試分析京東共享型的雲資料庫的一些特點,架構及技術實現相關的內容。通常RDS服務提供商對每個用戶的資料庫申請會為其單獨分配一台資料庫實例,這個實例也是單獨建立在一台或者多台虛擬機上的,這種服務提供方式可以提供相對高性能的解決方案。但是存在一個問題,如果為每個用戶的實例背後都是一個或者多個虛擬機的話,必然會導致總體成本的提高,而這種成本上的增加通常也不是必要的。因為大多數中小型的業務是完全可以跑在同一個資料庫實例里的。這樣也就可以幫助那些中小開發者們大大的節省了成本問題,最終做到一個月幾塊錢的創業成本。另外也會存在一部分業務數據量和訪問量都比較大,不適合同其他用戶一起跑在同一個資料庫實例里,這部分用戶就比較合適獨立一個資料庫的實例。京東雲資料庫考慮到了這兩種不同的需求,所以單獨開發了共享型雲資料庫平台,獨享型資料庫平台兩套系統,同時又支持無縫地從一個平台遷移到另一個平台上。共享型雲資料庫最大的特點就是低成本,同時又不會犧牲資料庫的可用性和可靠性,即使很多個用戶共享同一個資料庫實例,每個用戶也都是有自己單獨獨立的備份,主從互備等支持。 這種方案的幾個技術上的關鍵點在於如何做到用戶資源的有效隔離,資料庫的平滑擴容升級等。京東共享型雲資料庫架構1.Shared RDS API對外提供create/delete/describe等管理共享型資料庫的介面2.對於創建資料庫Shared RDS API會根據DB資源池負載信息選擇一個適合的實例為用戶創建資料庫,並更新集群路由到JManager3.JManager管理整個集群路由信息,收到的任何路由變更同步到JProxy路由節點4.JProxy路由節點對外提供透明的MySQL代理服務,根據路由信息將用戶請求發送到用戶所在的資料庫實例上5.每個資料庫實例根據資源使用情況超過指定閾值,會由JTransfer模塊將數據遷移到空閑的實例上6.Cron模塊定時通過RDS API動態為資源池增加空閑資源此外,京東共享型的雲資料庫做到了以下關鍵技術實現:1. 租戶隔離。多個租戶共享同一資料庫實例必然需要一個有效的隔離方案,防止一個用戶的慢查詢請求或惡意請求影響其他用戶訪問。這里的隔離實現方式是通過JProxy層對用戶所有的訪問進行了攔截,並根據用戶訪問的數據表索引信息等,對用戶執行該請求所需資源進行預判,並攔截掉惡意的請求及影響其他用戶的請求。同時為了精確控制每個用戶的資源使用,整個系統針對用戶使用的連接數,內存佔用容量,磁碟空間使用情況,帶寬流量等都做了有效的記錄和監控並根據用戶的配額進行控制。2. 集群路由信息高一致性保障。整體集群採用經典的弱中心化集群結構,在滿足集群高性能的基礎上同時具備足夠的可控性,JManager管理整個集群路由信息,並通過多個Slave避免單點故障,當路由變更時,JManager首先同步路由變更信息給自己的Slave,然後才會同步所有的JProxy,避免路由變更時JManager掛掉導致路由不一致。3. 高可用保障。