Dow Jones 如何一次遷移和現代化業務關鍵型資料庫以取得效率和成本效益
由 Sheri Moran、Luke Sawatsky 和 Alex Zuo 發佈 | 日期:2022 年 2 月 11 日 | 類別: Advanced (300)、Amazon Aurora、AWS Database Migration Service、AWS Schema Conversion Tool、客戶解決方案、資料庫、遷移、Windows on AWS | 永久連結 | 分享


關於市場資料的平台架構
在高峰容量的情況下,Dow Jones 透過市場資料平台每秒處理超過 3000 個請求。資料範圍包括來自交易所的正式收盤價到即時定價資料、公司資訊和映射資料。然後 Dow Jones 市場資料平台會在整個 Dow Jones 擷取、正常化和顯示此市場資料。鑑於其對業務的策略價值,該平台必須高度可靠、可擴展且快速,並在數毫秒內為消費者提供即時市場資料,同時防止停機。
在對平台進行現代化前,該系統由超過 44 個單獨的應用程式組成,在分為四個主要群組的 200 個內部部署伺服器上執行。
平台的核心資料儲存層是在 Microsoft SQL Server 2008 R2 上建置的內部部署 2 TB 關聯式資料庫管理系統。此資料庫是與市場資料相關之所有項目的中央儲存庫,並儲存應用程式系統的所有資料。例如,其儲存直接映射回在每個證券交易所上市之每家公司的相關資料。伺服器資料庫也會儲存市場資料操作資料以用於處理交易,包括可追溯至 1970 年代的所有歷史定價資料。
某些管理並為消費者提供市場資料的應用程式以 SQL Server 資料庫為中心。遷移至 AWS 讓公司可淘汰這些系統,包括:
DJ 代號系統,其提供「公司代碼」(例如 Dow Jones 股票代碼) 與美國、加拿大和全球公司即時或延遲報價的實際映射。
即時摘要處理器應用程式群組,其負責在市場開放和股票交易時維護最新資料。這些應用程式會連線至多個來源、擷取資料並將其整合至市場資料平台。
盤中系統的任務是維護市場狀態。最後,他們遷移了面向客戶的 API。這些報告系統用於為客戶和印刷產品產生 XML 檔案,以及圖表系統和主要市場資料 API。
其中每個應用程式都負責市場資料架構的不同部分,例如管理提醒、運算索引、提供定價和更新其查詢引擎。
從架構的角度來看,內部部署市場資料 SQL Server 資料庫由多達 15 個個別資料庫伺服器執行個體組成,分佈於美國的兩個不同的資料中心。Dow Jones 使用 SQL Server 資料庫鏡像,以提高故障時的可用性和資料保護。在兩個不同的資料中心中對四個主碎片進行鏡像,其餘的伺服器執行個體則分為 2 個配置員執行個體和 9 個訂閲者執行個體。主碎片主體伺服器執行個體會從單一資料中心為所有客戶提供資料庫。同時,主鏡像執行個體會作為暖待命伺服器,以防止主伺服器發生故障。每個資料中心中的配置員執行個體會處理本機訂閲者伺服器節點的同步複寫。主資料中心中的主體伺服器會處理所有寫入,分佈於兩個資料中心的 9 個訂閲者伺服器執行個體則會處理讀取。

Dow Jones 遷移和現代化概觀
為了實現最快的生產時間,Dow Jones 團隊使用工作負載平移雲端遷移策略,將市場資料應用程式的核心元件遷移至 AWS。此策略讓 Dow Jones 以最少的程式碼變更加速遷移,而無需重新設計整個應用程式。此方法具有過渡性:Dow Jones 工作負載平移至 AWS 後,便計劃進行現代化,並改為採用雲端原生方法。AWS 雲端服務和最佳化可提供顯著的優勢,讓其輕鬆升級和重新架構系統。
為了在此過程中管理授權成本,公司將現有的內部部署 2 TB MS SQL Server 資料庫升級為雲端原生資料庫,讓其充分利用此類 AWS 資料庫提供的可靠性、可擴展性、可管理性和成本最佳化。因此,市場資料使用 Amazon Aurora 進行重新架構。Amazon Aurora 是與 MySQL 相容的關聯式資料庫,專為雲端建置,並結合高端商業資料庫的效能和可用性與開放原始碼資料庫的簡單性和成本效益。
根據 Dow Jones 軟體工程經理 Luke Sawatsky 的說法,「從內部部署 SQL Server 資料庫遷移至 Amazon Aurora MySQL 是一個蘊含幾個關鍵階段的簡單過程。」
階段 1:轉換資料庫結構描述
使用 AWS Schema Conversion Tool 自動化結構描述轉換
在將 2 TB 資料庫從 MS SQL Server 移至 Amazon Aurora MySQL 目標資料庫前,Dow Jones 需要建立目標結構描述。為了協助進行此過程,公司使用 AWS Schema Conversion Tool (AWS SCT) 協助將現有的資料庫結構描述從 MS SQL Server 轉換至 Amazon Aurora MySQL。
作為此過程的一部分,Dow Jones 產生了 AWS SCT 資料庫遷移評估報告。此報告評估了使用 AWS Schema Conversion Tool 可完成多少專案,以及需要完成其他哪些工作才能完成轉換。該報告總結所有結構描述轉換任務,並詳細介紹無法轉換至 Aurora MySQL 目標資料庫執行個體之結構描述的交辦事項,因此為極具價值的工具。

完成此分析後,Dow Jones 發現 99.8% 的資料庫儲存物件 (例如:結構描述、資料表、索引、類型、資料表類型等) 和 52% 的資料庫程式碼物件 (例如:觸發程序、檢視、程序、函數) 都可自動轉換,或使用 Amazon Aurora MySQL Compatible 作為遷移目標進行最少的變更。此外,Dow Jones 整個資料庫結構描述的 97% 都可自動轉換至 Amazon Aurora (與 MySQL 相容)。
手動結構描述轉換
雖然可自動化大部分的遷移工作,但某些方面需要手動干預。該報告將一個資料庫儲存物件和 38 個資料庫程式碼物件標記為需要手動干預的「重大動作」。

例如,其中一個重大資料庫程式碼物件問題與 Dow Jones 使用全域資料指標相關:

結果證實,Aurora MySQL 資料指標架構比 SQL Server 更簡單,且僅提供基本類型的伺服器。如果 Dow Jones 的程式碼依賴進階資料指標功能,則需要整個重新撰寫。相反的,Dow Jones 可透過使用暫存資料表解決此問題。
Dow Jones 遇到與 SQL Server 函數相關的第二個問題。此函數使用巢套 SQL 陳述式取得記錄樹狀結構及其父記錄。由於無法在 MySQL 中重新建立此遞迴,Dow Jones 必須以 C# 重新撰寫 SQL 陳述式。
針對每個轉換問題,Dow Jones 都修改了來源 SQL Server 資料庫上的物件,讓 AWS SCT 將這些物件成功轉換至目標 Aurora MySQL 資料庫。透過使用 SCT,Dow Jones 可在每次迭代後仔細檢查評估報告。
在此階段期間,其平行執行幾個小型 POC,以驗證程式碼變更是否如預期般執行。Dow Jones 繼續進行此過程,直到其未發現進一步的轉換問題。Dow Jones 估計總共需要一名工程師花費一個月的時間重新撰寫儲存程序的程式碼。Dow Jones 發現修正一個程式碼問題通常會同時修正其他問題,而減少整體花費的時間。完成所有轉換後,Dow Jones 將結構描述變更套用至 Aurora MySQL 資料庫,並準備好進行下一個階段,即資料遷移。
階段 2:透過 AWS Database Migration Service 遷移資料
透過使用 AWS Database Migration Service (AWS DMS),Dow Jones 可快速且安全地將資料從內部部署 SQL Server 持續遷移至 Amazon Aurora MySQL。來源資料庫在遷移期間保持全面運作,可大幅減少依賴資料庫之市場資料應用程式的停機時間。設定資料庫遷移任務時,Dow Jones 選擇了「遷移現有資料並複寫正在進行的變更」選項。這確保即使已載入大量資料,AWS DMS 仍可擷取和套用變更。AWS DMS 會管理整個資料遷移的複雜性,並在 24 小時內成功完成該程序。最後一個步驟是將 AWS DMS 複寫任務更新為「僅限 CDC」,以確保兩個資料庫在最終切換前保持同步。
階段 3:內部測試階段和 AWS Well-Architected Review
在下一個遷移階段,Dow Jones 開始長時間的內部測試,以確保市場資料平台已準備好用於生產。在此期間,Dow Jones 與 AWS 專家合作,對平台執行 AWS Well-Architected Review (WAR)。此關鍵步驟確保 Dow Jones 採用最佳實務,以確保營運卓越、安全性、可靠性和效能效率。為了確保成功,Dow Jones 做出策略性業務決策,過度佈建容量,而非針對成本進行最佳化。然後將成本最佳化預訂為遷移後計劃的一部分。
市場資料 WAR 在發現目前 AWS 架構中需要立即關注和解決的幾個關鍵技術問題方面發揮作用。更重要的是,市場資料團隊可提出可行的計劃,並詳細説明下列最佳實務建議:
為 Aurora 全域叢集中的僅供讀取複本和編寫器節點佈建相同的資料庫執行個體類型/大小,以在發生故障時保護資料庫。
平衡主區域和備份區域之間的執行個體數量。
為應用程式設定適當的 DNS TTL (1 秒)。
水平擴展以滿足需求。
實行自動化以確保叢集永遠不會在低於定義的閾值時故障。
使用自動化/自動擴展,針對高峰進行過度佈建,並縮小數量和/或執行個體類型離峰。
在啟用日期前,對 Aurora 資料庫執行完整的「大規模」負載和彈性測試。
最終結果:Dow Jones 可成功對內部部署舊式 SQL Server 資料庫進行現代化,讓其成為可擴展且具有彈性的雲端原生資料庫架構。此雲端原生資料庫具備 Amazon Aurora 全域叢集,其中包含位於維吉尼亞州 (us-east-1) 一個編寫器節點和五個讀取器節點,以及位於俄亥俄州 (us-east-2) 的六個讀取器節點。

階段 4:將 Aurora MySQL 資料庫切換至生產
在遷移過程的這個階段,Dow Jones 針對市場資料具有兩個平行執行的資料庫環境:
1. 在 AWS 上以測試模式運作的雲端原生 Aurora MySQL 資料庫;以及
2. 為客戶提供生產資料的內部部署 MS SQL Server。
接下來,Dow Jones 致力於促進 Aurora MySQL 的切換,而不需要每個客戶對端點進行變更。為了因應此挑戰,市場資料團隊使用名為 NGINX 的代理服務,將客戶資料請求從內部部署重新引導至 AWS。這確保了為 Dow Jones 的客戶提供不間斷服務。在 8 小時內,安裝代理,更新 DNS 項目,且市場資料客戶也成功連線至 AWS 上的 Aurora MySQL 資料庫。兩週後,內部部署 MS SQL Server 資料庫正式關閉,所有生產流量都導向 AWS 上的 Aurora MySQL 資料庫。Aurora MySQL 的切換完成。
階段 5:遷移後最佳化資料庫
遷移至 AWS 後,Dow Jones 的遷移之旅仍未結束。還有遷移後階段。在此階段期間,Dow Jones 在整個 AWS 基礎設施中實現成本最佳化和調整適合規模的機會。透過使用 Amazon CloudWatch 指標和 CloudHealth 管理軟體分析資料,Dow Jones 根據市場資料工作負載的目前效能和使用情況需求,快速確定已顯著過度佈建用於 Aurora MySQL 的資料庫執行個體類型/大小。由於此分析的結果,Dow Jones 採取措施以調整適合的 Aurora MySQL 資料庫執行個體類型/大小,以更有效地滿足目前的容量需求,並消除每個區域的兩個讀取器節點以進一步節省成本。重新部署後,Dow Jones 可大幅降低支出。
結論
Dow Jones 需要確保其任務關鍵型市場資料平台保持安全、高效能、彈性和高效率。透過從內部部署 Microsoft SQL Server 遷移至 Amazon Aurora 並進行現代化,Dow Jones 不僅體現成本效益,更受益於雲端原生工具。透過 Amazon Aurora 的自動儲存佈建和複本等功能,Dow Jones 可更輕鬆地維護和複寫資料。

AWS 可協助您評估公司如何最大程度地利用雲端。與信任我們的數百萬名 AWS 客戶一起在雲端中遷移和現代化最重要的應用程式。若要進一步了解有關現代化 Windows Server 或 SQL Server 的資訊,請瀏覽 Windows on AWS。立即聯絡我們,開始您的遷移之旅。

Sheri Moran 是 Amazon Web Services 首席解決方案架構師,居住於紐約。其與主要金融服務機構合作,並使用 AWS 雲端服務對大規模應用程式進行架構和現代化。其在金融、媒體、出版和醫療保健等多個領域擁有超過 20 年的技術經驗。

Luke 已在 Dow Jones 任職 13 年。多年來,其曾在幾個不同的團隊中擔任不同的職位,而目前是市場資料團隊的工程總監。其團隊負責在所有 Dow Jones 產權中取得、正常化和分配市場資料。工作之餘,其喜歡花時間和三個孩子一起閲讀,並對明尼蘇達州的運動團隊感到失望。

Alex Zuo 是 Amazon EC2 商業軟體服務團隊產品經理。其專注於讓 AWS 成為執行 SQL Server 工作負載的最佳所在,並讓客戶在 AWS 上遷移 SQL Server 工作負載並進行現代化。