立下“去 O”Flag 的 AWS,悄悄修煉了哪些內功?
AWS re:Invent 2018 大會上,AWS 首席執行執行官 Andy Jassy 表示到 2019 年底,亞馬遜將全面放棄使用 Oracle 資料庫,97%的“關鍵任務資料庫”將執行在亞馬遜自己的資料庫服務上。
如今,2019 年已經過去了四分之一,AWS 的去 Oracle 程序如何了?近日,筆者有幸採訪到了 AWS 資料庫服務總經理和 AWS Amazon Redshift 總經理,並向他們進行了求證:亞馬遜整個去“O”進展順利,可以如期完成。
據悉,亞馬遜所有的這些資料庫都將遷移到 Aurora、Redshift 和 DynamoDB 這三種類型的資料庫上,其中 OLTP(交易型)遷移到 Aurora,資料倉庫型遷移到 Redshift。
亞馬遜去 Oracle 的想法可以追溯到 5 年前,當時亞馬遜的部分核心購物業務還依賴 Oracle 技術,其自身的資料庫技術暫時還無法規模化地滿足亞馬遜的效能需求。那麼,時至今日,為了“去 O”,AWS 悄悄修煉了哪些內功呢?
AWS 的資料庫服務
2015 年 AWS 資料服務的相關功能只有 100 個,2018 年攀升到 325 個。
據悉,從 2015 年開始算起,AWS 已經總計釋出了 785 個新的資料相關服務,包括資料移動、資料分析等資料服務,關係型、鍵值型、檔案型、記憶體型、圖譜型、時間序列、總帳型別等資料庫服務,以及類似於商業洞察、智慧洞察等一系列服務。
以 Amazon Aurora 為例,Aurora 是 AWS 公司歷史上增長速度最快的一款服務,是相容 MySQL 和 PostgreSQL 的關係型資料庫,其速度和可用性可與 Oracle 等商業資料庫產品相媲美,而成本只有商業資料庫的 1/10。
而 Redshift 是 AWS 2012 年推出的、業界第一款雲端資料倉庫的雲服務,2018 年一年,AWS 圍繞 Redshift 推出了 220 個新功能,其中 90% 都是基於客戶需求開發的。
為什麼會推出這麼多資料服務呢?AWS 表示是為了滿足客戶需求。那麼客戶使用資料服務到底想要達到什麼目的?
- 第一,希望能夠從資料中獲得洞見;
- 第二,希望能夠快速打造雲端的全新應用;
- 第三,希望能夠把既有的應用直接搬運到雲端。
AWS 的遷移服務
對於客戶來說,資料庫遷移服務也是很重要的功能。目前 AWS 的資料庫遷移服務主要有兩類:一是將本地資料庫遷移到雲端,二是實現將一種型別的資料庫遷移到另一種資料庫。無論是哪種遷移,整個過程中都可以達到零宕機時間。
據 AWS 方面介紹,目前通過資料庫遷移服務 DMS 已經完成了超十萬個數據庫的遷移。
AWS 的通常做法是將關係型資料庫遷移到 Auraro 和 RDS,而非關係型的資料庫遷移到 DynamoDB,資料倉庫遷移到 Redshift,Hadoop 和 Spark 叢集可以遷移到 Amazon EMR,運營、分析的可以遷移到 Amazon Elasticsearch Service,BI 型的應用可以遷移到 Amazon QuickSight。
為什麼我們要從本地資料庫遷移到雲資料庫呢?一言以蔽之,傳統資料庫無法滿足我們的需求了。
舉個例子,之前企業如果要進行資料分析,通常做法是從傳統的資料倉庫廠商中購買大型的資料倉庫,這類產品能夠處理的數量級通常是 GB 級和 TB 級,PB 級資料無法處理,而 TB 級單位的分析成本要達到一萬到五萬美元。即使是付出了這樣的成本投入,也不能支援所有資料的分析,可能只有 10% 的資料才能得到分析。而 AWS 的做法是先將資料匯入到資料湖中,然後在資料湖之上提供各式各樣的資料庫服務來進行資料分析。
除此之外,在傳統的企業 IT 架構中無法弄明白企業內部的有用資料佔比,而在雲端可以很輕鬆的啟動多項資料分析作業。另外,傳統企業中要做資料分析,需要專門的資料庫技術人才去做資料處理,而在雲上,非資料庫技術專業人員也可以使用資料庫服務。
- 根據不同的使用場景提供定製化解決方案;
- 針對資料服務成本進行經濟性的分析,實現成本優化;
- 實現所有資料服務的可伸縮性。
AWS 的雲資料庫關注點
無論是哪一種技術,在生產環境和落地應用中,其關注點都應該與客戶的關注點保持一致。AWS 稱,他們得到的使用者反饋是,他們最關心雲資料庫的安全性、靈活性和可擴充套件性。
而 AWS 圍繞使用者需求在資料庫方面做的創新主要有兩點:
- 幫助客戶以更容易的方式遷移到雲端;
- 幫助客戶以更好的方式開發現代化應用;
例如,彙總打包資料庫支撐管理的服務,來完成資料庫的自我調優和自我運維管理,以實現可擴充套件性和可伸縮性;當資料從資料庫匯聚到資料湖時,治理、合規以及安全方面也需要作出一些創新。
去 Oracle 的難度到底在哪裡?
很多人都將亞馬遜去 Oracle 資料庫冠以“商業博弈”的頭銜,這裡我們暫且不討論商業方面的內容,只關注於去 Oracle 的技術。
從技術實施層面來講,Amazon 去 Oracle 對 AWS 自身來說只是一個數據規模比較大的客戶而已,與納斯達克等客戶無異,同樣需要聽取 CEO 和 CTO 的意見,在真正實施去 O 之前,已經決定 Oracle 上的哪些應用應該如何解決。
AWS 資料庫遷移的複雜程度在於不止需要做資料和資料庫本身的遷移,同時還要做資料庫上執行的應用遷移,而這些應用既有企業內部開發的也有 ISV 提供的,甚至有些應用的年代已經非常久遠了,如何很好的支援它們,是 AWS 面臨的大挑戰。
以資料分析為例,該專案最大的難點在於 Amazon 的要求不是簡單的將原來 Oracle 上的資料分析功能搬到雲上,他們要求更好的分析服務,且這種服務要能夠順應未來十年的技術發展變化。