現有資料架構難以支撐現代化應用的實現。
隨著雲端計算產業的快速崛起,帶動著各行各業開始自己的基於雲的業務創新和資訊架構現代化,雲端計算的可靠性、靈活性、按需計費的高價效比等優勢已經讓很多企業把“雲”業務列入到未來發展戰略規劃中。現代化應用是現有應用程式的再升級,也是基於新技術新模式開發的新應用。現代化應用可以幫助企業面對更加複雜的業務競爭,並在這樣的競爭中憑藉模型的先進、資料的洞察、應用的創新實現領先。因此,許多企業希望通過採用現代應用程式開發的模式,轉變應用程式的設計、構建和管理方式,從而提高敏捷性,並加快自身的創新程式。以雲原生、容器、微服務、Serverless 等為基礎的現代化應用開發興起之際,各行業都把關注的目光瞄準到了資料架構上。畢竟微服務、Serverless 構建的應用就像是引擎,而資料才是真正的動力。
現代化應用開發之難亦是資料架構創新之難
現代化應用對規模、可用性和效能都提出了更高的要求。
對於現代化應用來說,不僅要應對劇增的使用者數量,還要支撐不斷增長的應用負載種類和數量。這是現代化應用開發面對的第一個難題——更強的可擴充套件性。
以遊戲的場景為例,目前排名靠前的國民級遊戲日活使用者已經超過 1 億多人,未來百萬以上使用者量將成為應用程式的常態,我們暢想一下最近大火的元宇宙場景,如果是一個全球級別的元宇宙應用,其使用者數量會是這個資料的數倍,甚至數十倍,媲美亞馬遜黑色星期五大促銷的高併發情況將成為日常。所有人都在一個元宇宙進行互動的場景,對應的後端系統響應併發的要求是極高的。這不是在揣測,而是基於事實和現狀,對未來的合理預測。因此首先需要解決的,就是更大規模併發問題。
現代化應用開發面對的第二個問題,是如何儲存海量資料,以及儲存海量資料之後,如何對這些資料進行實時化和智慧化處理。
當前資料已呈現出“二八定律”:結構化資料佔 20%,非結構化資料佔 80%。《微軟飛行模擬器》模擬真實的山脈、道路、雲朵,產生了超過 2.5PB(2.5 x 10^6 GB)的結構化資料,終極元宇宙所需資料量至少比此高出多個數量級。
根據 IDC 的最新報告,現有資料中非結構化資料佔比已超過 90%。隨著新型軟體的增多,非結構化資料佔比將越來越高。不同格式、不同標準的非結構化資料在技術上比結構化資料更難儲存和分析。傳統資料架構應對這樣的海量資料將會很吃力。
另外,現代化應用還需要考慮效能和延遲的問題。未來,新的現代化應用都會以遍佈全球的使用者為目標,這就對延遲有極高的要求。在遊戲中,10ms 的延遲都是不可接受的,有些遊戲甚至需要記憶體級別的延遲。超強的頻寬、超快的傳輸速度等的實現,需要遍佈全球的通訊基礎設施建設。
需要注意的是,在考慮高併發和低延遲的同時,還需要兼顧考慮總體質量和成本。建立、執行和維護這麼大規模的應用需要耗費的人力和物力,一般企業可能難以承受。所以除了質量,成本也是需要考慮的問題。
總結來看,現代化應用至少要處理 TB 級、PB 級的結構化資料和數倍於此的非結構化資料,支援分佈在全球的數百萬使用者,並以極低的延遲每秒處理數百萬個請求。
對於非結構化資料,如今很多企業開始基於 Amazon S3 這類具備 EB 級擴充套件能力的雲端儲存構建雲上資料湖,並通過雲原生資料分析處理工具對這些資料進行處理分析。而對於結構化資料,還需要彌補以下缺陷:
- 企業被傳統商業資料庫束縛,而難以開展創新。傳統商業資料庫不僅價格昂貴,還有專有技術及許可條款,需要經常進行審計。雖然越來越多的企業轉向了 MySQL 和 PostgreSQL 等開源資料庫,但他們仍需要商用資料庫的效能。
- 無法滿足特定場景需求。隨著應用場景的不斷增加,不同應用程式有了自己特定的需求。現在,開發人員越來越多地使用微服務架構來構建應用程式,並且選擇新一代的關係型和非關係型資料庫。但關係型資料庫的結構資料耦合性大,不利於擴充套件分散式部署。非關係型資料庫沒有事務處理,複雜查詢方面略微欠缺。
- 傳統資料庫運維模式仍舊需要耗費精力和成本。運維耗時但價值輸出較低,但企業又不得不在這方面耗費精力和成本。
現代化應用需要什麼樣的資料架構作為支撐?
既然現有資料架構難以支撐現代化應用的實現,一場資料架構變革勢在必行。這個新型資料架構要能夠解決上述提到的問題,即需要擁有更高的擴充套件性、能夠適應多樣化的資料形態、有更高的資料處理能力和更低的延遲,當然還要有實現的路徑和工具。
相關技術方案與創新
當下,IT 界的最佳技術組合可能就是“雲端計算 + 人工智慧”。雲端計算解決了擴充套件性、資料儲存、效能等問題,而人工智慧技術則大大提高了資料分析和處理效率。
雲端計算可以為現代化應用的峰值需求“無限續杯”與平穩執行時的“最佳能耗”。作為雲端計算模型之一的 Serverless,在理論上可以自動適配應用從零到無窮大的需求峰值,更加擅長解決擴充套件性的問題。
Serverless 架構的好處在於可以按需載入,這樣應用便不會持續佔用資源,只有在請求到達或有事件發生時才會被部署和啟動,避免了成本浪費。同時,Serverless 應用原生支援高可用,可以更好地應對突發的高訪問量。當資料庫也 Serverless 化,就可以實現高度擴充套件性及容量自動伸縮,做到按量付費、降低支出成本,進一步解放資料庫的管理和運維。2012 年亞馬遜公司推出的 Amazon DynamoDB 就是 Serverless 資料庫。
2007 年,亞馬遜公司發表的關於 Key-value 儲存的劃時代論文《Dynamo: Amazon's Highly Available Key-value Store》解決的核心訴求就是滿足“永遠線上”的使用者體驗,提升其資料庫的可用性、擴充套件性和效能,被認為是 NoSQL 的開山之作,之後催生了一系列 NoSQL 分散式資料庫。而 Amazon DynamoDB 就是 Dynamo 理念的正統實現,它正在驅動那些傳統資料庫難以承載的新一代高效能、網際網路規模應用。
以 Serverless 資料庫為代表,雲資料庫正在迅速發展成熟,並帶來更好的可訪問性和高可用性,還有高擴充套件性與可遷移性。此外,雲資料庫也降低了部署的難度和成本,不會給企業造成特別大的負擔。
面對大規模資料,傳統資料庫元件還存在業務型別不敏感、自動運維能力弱等問題,機器學習演算法可以分析大量資料記錄,標記異常值和異常模式,還可以在系統執行時自動、連續、無人工干預地執行修補、調優、備份和升級操作,儘可能減少人為錯誤或惡意行為,確保資料庫安全、高效執行。而亞馬遜雲科技在 re:Invent 上最新發布的 Amazon DevOps Guru for RDS 就可以幫助檢測資料庫問題、執行根本原因分析和推薦更改建議,甚至能夠自動修復資料庫問題。
現代化應用最終是面向全球的,現在很多企業也在做全球化佈局。在這個過程中,全球分散式應用系統成為企業首選。分散式系統中各個節點通過一個通訊網路互聯在一起,不僅方便通訊還可以實現資源共享,也加快了計算速度。不過,這也讓企業的運維壓力變大,同時存在一定的資料傳輸安全問題。所以,自動化的、安全的部署非常重要。
技術的選擇永遠伴隨著一定效能的犧牲,很難有一個產品能夠在效能、功能和可用性等方方面面都做到極致。傳統資料庫廠商“一個資料庫打天下”的做法已經無法滿足需要。按照不同的目的、使用場景構建不同型別的資料庫產品,做到“專庫專用”則是新資料架構的核心。專庫專用可以適配各種不同規模的應用程式,優先提供應用程式最需要的效能,可用性大大提高。
如何實現架構現代化?
架構的通俗理解就是,企業可以使用現代的資料架構來擺脫傳統資料庫的束縛,並有專用工具來完成基礎設施的現代化。當然這並不容易,很大程度上取決於廠商的能力。
根據 Gartner 2020 全球雲資料庫魔力象限報告,亞馬遜雲科技持續保持創新與領先。因此,我們以亞馬遜雲科技為例,看看其是如何為企業數字驅動轉型助力的。
三大重要特性,兩大重要支援
首先,亞馬遜雲科技開創了 Serverless 資料庫,來實現資料庫的彈性伸縮,進一步簡化企業建立、維護和擴充套件資料庫的操作。
亞馬遜雲科技旗下有五大 Serverless 資料庫:Amazon Aurora、Amazon DynamoDB、Amazon Timestream(一種時間序列資料庫服務)、Amazon Keyspaces(相容 Apache Cassandra 的託管資料庫服務)和 Amazon QLDB(一種全託管的分類賬資料庫)。其中,Amazon Aurora 已經進化到 v2 版本,可以在一秒內將資料庫工作負載從數百個事務擴充套件到數十萬個事務,與為峰值負載配置容量的成本相比,最多可節省 90%。
那麼,Serverless 資料庫的表現如何呢?華米科技健康雲可以算得上是一個典型案例。截至 2021 年 2 月 2 日,華米科技智慧可穿戴裝置記錄的累計步數為 151 萬億步,累計睡眠記錄 128 億晚,心率記錄總時長 1,208 億小時。華米科技健康雲每天需要完成 TB 級資料的收集和儲存,不僅需要儲存的資料量巨大,同時還必須保證極高的資料安全性、穩定性和低延遲響應。為了解決這些難題,華米科技健康雲使用 Amazon DynamoDB 作為核心資料庫,儲存使用者的健康及與運動相關的資料。而 Amazon DynamoDB 在任何規模下都能提供延遲不超過 10 毫秒的一致響應時間,支援構建具有無限吞吐量和儲存空間的應用程式,滿足了華米健康雲的資料儲存需求。此外,Amazon DynamoDB 的無伺服器架構使使用者無需預置、修補和管理任何伺服器,也無需安裝、維護或執行任何軟體。
目前,華米科技已經全面引入了亞馬遜雲科技。華米科技大資料及雲平臺副總裁張稷表示,“華米科技健康雲在資料儲存和處理方面的特點是冷熱資料分層明顯,資料訪問的波峰波谷也很明顯,亞馬遜雲科技豐富的功能使我們可以選用不同的服務來應對不同的需求以平衡效能與成本。”現在,華米科技使用 Amazon DynamoDB 儲存核心資料;用 Amazon Simple Storage Service (Amazon S3) 儲存冷資料、日誌以及備份資料;用 Amazon Simple Queue Service (SQS) 、Amazon Simple Notification Service (Amazon SNS) 和 Amazon Managed Streaming for Apache Kafka (Amazon MSK) 進行資料同步;用 Amazon Lambda 進行資料遷移和轉存;用 Amazon Kinesis 和 Amazon EMR 進行大資料分析。與切換到亞馬遜雲科技之前相比,如今華米科技健康雲的 P0 和 P1 級別故障數量大約減少了 20%,故障恢復時長減少了約 30%,總體服務可用性提升了 0.25%,系統的可用性指標達到 99.99%。
此外,九州通也使用 Amazon Aurora 替換了傳統 MySQL 資料庫,整體資料庫效能提升了 5 倍,TCO 降低了 50%。
其次,為實現專庫專用,亞馬遜雲科技現在已有十多種專門構建的資料庫服務,囊括了關係、鍵值、文件、記憶體、圖、時間序列、寬列和分類賬八大資料型別。這些資料庫產品各有優勢,分別適用於不同的應用場景。
其中,Amazon MemoryDB for Redis 是一個與 Redis 相容的、持久的記憶體資料庫服務。它是為具有微服務體系結構的現代應用程式專門構建的, 可以用作微服務應用程式的高效能主資料庫,企業不需要再分別管理快取和持久資料庫。
Amazon DocumentDB 則是一項快速、可擴充套件、高度可用且完全託管式文件資料庫服務,支援 MongoDB 工作負載。作為一個文件資料庫,Amazon DocumentDB 可以簡化儲存、查詢和索引 JSON 資料。開發人員可以使用與今天相同的 MongoDB 應用程式程式碼、驅動程式和工具,來執行、管理和擴充套件 Amazon DocumentDB 上的工作負載,享受改進後的效能、可擴充套件性和可用性,而無需擔心底層基礎設施的管理。
Amazon DynamoDB 是為海量資料、大型混合工作負載而生的鍵值資料庫服務,根據官方介紹,Amazon DynamoDB 可以構建吞吐量和儲存空間幾乎無限的應用程式,在任意規模環境中提供一致的個位數毫秒響應時間,極其適合遊戲、廣告技術、移動互聯以及其它需要任何規模的低延遲資料訪問的應用程式。虎牙已經通過 Amazon DynamoDB 自動擴容來應對 10 倍以上的流量突增。
眾所周知,NoSQL 很多時候是在做“大力出奇跡”的事情,即通過大量的冗餘儲存 + 索引實現快速訪問,但是這也有可能造成儲存空間的浪費。而在亞馬遜雲科技 re:Invent 大會上正式釋出的 Amazon DynamoDB Standard-Infrequent Access (DynamoDB Standard-IA),在保持同樣效能、耐用性和伸縮性的同時,最高還可以為使用者節省 60% 的儲存空間。
再者,亞馬遜雲科技的資料庫服務與人工智慧技術深度整合。亞馬遜雲科技的 Amazon Aurora ML、Amazon Neptune ML 等服務,支援資料庫開發者在不具備機器學習專業知識情況下,只需使用熟悉的資料庫查詢語言(比如 SQL)即可進行機器學習操作。
我們不得不談的是雲資料庫在提供資料儲存服務於應用之後的價值, 實現統一分析和利用機器學習進行業務創新,助力企業資料驅動的業務轉型。像亞馬遜雲科技提出的“智慧湖倉架構”實現的是通過一系列的服務,允許資料庫,資料倉儲以及各種分析工具之間的資料無縫流動,同時在資料庫內提供直接開始機器學習的能力, 讓 DBA、資料庫工程師也能很快利用機器學習來進行業務創新而不是關注技術學習, 這都是雲資料庫的優勢。人工智慧平臺公司啟元世界使用了“智慧湖倉”進行雲上創新,實現了資料的融合和統一治理,加快了其全生命週期產品矩陣理念的落地和規模發展。同時,對流資料處理系統實現了分鐘級部署,並能夠輕鬆承載百萬 QPS(每秒查詢率)流資料,還將批處理執行時間減少 80%,運營總成本下降 50%。
另外,為支援企業的全球分散式應用系統,亞馬遜雲科技推出了 Amazon Aurora Global Database(全球資料庫)、Amazon DynamoDB Global Tables(全域性表)、Amazon ElastiCache for Redis Global Datastore(全域性資料儲存)、Amazon DocumentDB Global Clusters(全域性叢集)等功能,企業可以一鍵配置現有叢集,本地寫入資料全球可讀,並享有亞毫秒級延遲能力。
根據 CAIDA 統計,亞馬遜雲科技也是全球大的網際網路頻寬擁有者之一。亞馬遜雲科技全球所有的區域、可用區和邊緣節點之間,均通過跨越大洲和大洋的高頻寬冗餘光纜連線,並 100% 加密。據悉,亞馬遜雲科技的基礎設施遍及全球 25 個地理區域的 81 個可用區(AZ)。
最後,制定遷移計劃對企業來說可能是一項挑戰。為此,亞馬遜雲科技研發了多種遷移工具,如 Amazon Schema Conversion Tool 可用於轉換資料庫模式、Amazon Database Migration Service (Amazon DMS)用於遷移資料,還有今年新發布的 Amazon DMS Fleet Advisor,可以用來收集分析資料庫模式和物件,包括關於功能後設資料、模式物件和使用情況指標的資訊,並且允許企業通過確定將源資料庫遷移到亞馬遜雲科技中目標服務的複雜性來構建定製的遷移計劃。此外,剛剛在全球上線的 Babelfish for Amazon Aurora PostgreSQL 還可以幫助企業遷移到 SQL Server 應用程式。據悉,目前全球已有超過 45 萬個資料庫遷移至亞馬遜雲科技。
值得注意的是,亞馬遜雲科技已經成為元宇宙公司 Meta 的戰略雲服務提供商。Meta 將使用更多亞馬遜雲科技的計算、儲存、資料庫和安全服務,並將在亞馬遜雲科技上執行第三方合作應用,同時 Meta 將使用亞馬遜雲科技的計算服務來進行包括人工智慧專案在內的相關研發工作。
此外,當下十分流行、在全球已經擁有超過 3.5 億使用者的元宇宙遊戲“堡壘之夜”,其工作負載,如 3D 影像建模、實時渲染等也幾乎全部都執行在亞馬遜雲科技的產品之上。英雄聯盟的開發商 Riot 也將遊戲的基礎設施部署在亞馬遜雲科技之上。全球化運營的三七互娛也已經將一部分資料遷移到亞馬遜雲科技服務上,基礎設施方面的壓力得以大大減輕,此外,三七互娛還在亞馬遜雲科技的幫助下快速構建出了全球同服的雲架構,使全球各地玩家都能獲得幾乎一致的順暢體驗。
對於這些正在構建現代化應用的企業來說,亞馬遜雲科技已經成為不可或缺的支撐平臺。
結束語
Serverless、AI 賦能、專門構建、全球部署和平滑遷移這五大理念,正是亞馬遜雲科技“現代端到端資料戰略 - 架構現代化”的內涵。
亞馬遜雲科技的現代端到端資料戰略是一種面向未來應用的戰略思考,也是一種可交付的架構,旨在為企業發展提供源源不斷的動能。現代端到端資料戰略主要包括三個要素:
- 首先是我們前文所述的資料架構現代化。架構現代化是一切創新的基石,其最重要的理念是“The right tool for the job”,即在不同的場景使用專門構建的工具,而專門的工具需要專業的現代化託管平臺,這些都可以大量節省企業的時間、金錢和精力。
另外還有兩大部分內容我們在本文沒有擴充套件:
- 統一分析資料。統一分析資料則是通過雲上專門工具實現資料有機整合與統一,將所有資料連線到一個安全且管理良好的連貫系統中,使企業擁有靈活擴充套件與極致效能。企業在獲得實時反饋和資料後,可以很快地擴大服務規模。
- 基於資料進行業務創新。“蓬勃發展的公司與艱難求生的公司之間的關鍵區別在於是否將建立一個資料驅動型組織視為當務之急。”Amazon 機器學習副總裁 Swami Sivasubramanian 在亞馬遜雲科技 re:Invent 全球大會上說道。企業植根於自身業務的創新訴求是創新的原動力,其中訓練與調優、模型部署與管理都涉及到了基礎設施層面的創新。
當前企業主要面臨著嚴重的基礎設施老舊、自動化程度低和專用工具缺乏的問題,同時繁重的資本支出也阻礙了企業前進。因此,企業要做出改變的決心是很大的。Gartner 預測,到 2024 年,企業為成為資料驅動和數字化企業,將在資料和分析上增加 40% 的投入。
未來,亞馬遜雲科技的產品佈局將進一步擴大。在現有產品基礎上,亞馬遜雲科技將根據客戶需要研發各種新產品,包括面向金融、電信、醫療和汽車等特定行業。這些都將成為企業數字驅動轉型的重要利器,也會是現代化應用建設的重要基礎設施。
對於技術圈而言,這一年中,各種技術與領域的發展,既站高峰,也歷跌宕。在2021年最後時刻,我們也想聆聽來自雲端計算領域開發者的聲音,為此,雲端計算開發者有獎調研正式開啟,誠邀各位夥伴參與,多重好禮等你來領!