北京2022年2月10日 /美通社/ -- 十年前,亞馬遜云科技正式推出Amazon DynamoDB,一種快速、靈活的 NoSQL 數(shù)據(jù)庫服務(wù),可在任意規(guī)模環(huán)境中提供一致的個(gè)位數(shù)毫秒響應(yīng)時(shí)間。
亞馬遜首席技術(shù)官Werner Vogels曾表示:“我們非常高興推出Amazon DynamoDB,一種快速、可靠且具有成本效益的 NoSQL 數(shù)據(jù)庫服務(wù),專為互聯(lián)網(wǎng)規(guī)模的應(yīng)用程序而設(shè)計(jì)?!?nbsp;Amazon DynamoDB代表了亞馬遜在大型非關(guān)系型數(shù)據(jù)庫和云服務(wù)技術(shù)領(lǐng)域15年持續(xù)投入的成果。
Vogels表示:“我們早在2007年就發(fā)表了有關(guān)亞馬遜Dynamo技術(shù)細(xì)節(jié)的論文,并以此奠定了首批非關(guān)系型數(shù)據(jù)庫的雛形。最初的Dynamo基于一套強(qiáng)大的分布式系統(tǒng)原則設(shè)計(jì),并生成了一個(gè)可隨意擴(kuò)展和高可靠的數(shù)據(jù)庫系統(tǒng)。Amazon DynamoDB繼續(xù)基于這些原則構(gòu)建,也是亞馬遜多年運(yùn)行大規(guī)模非關(guān)系型數(shù)據(jù)庫和云服務(wù)(如Amazon SimpleDB和Amazon S3)的經(jīng)驗(yàn)積累。很高興看到我們的探索和經(jīng)驗(yàn)轉(zhuǎn)化為易于使用的托管服務(wù),并提供給我們的客戶。”
亞馬遜云科技數(shù)據(jù)庫、數(shù)據(jù)分析、機(jī)器學(xué)習(xí)副總裁Swami Sivasubramanian和Vogels同為2007年Dynamo論文的合著作者之一。Swami是Amazon DynamoDB開發(fā)的主要貢獻(xiàn)者,那時(shí)他是一名從事分布式系統(tǒng)技術(shù)設(shè)計(jì)、實(shí)施和分析相關(guān)工作的亞馬遜研究工程師。
Amazon DynamoDB發(fā)布十年之際,Swami表示:“我們正在經(jīng)歷數(shù)據(jù)和機(jī)器學(xué)習(xí)的‘文藝復(fù)興’時(shí)代。如今企業(yè)可以將數(shù)據(jù)存儲(chǔ)在這些數(shù)據(jù)庫中,并快速開始在 Amazon S3 中構(gòu)建自己的數(shù)據(jù)湖,然后就可以立刻開展數(shù)據(jù)分析,并在幾周甚至幾天時(shí)間內(nèi)就能通過Amazon SageMaker實(shí)現(xiàn)人工智能賦能,這真的非常了不起。我非常期待現(xiàn)在能有機(jī)會(huì)幫助客戶更快地從數(shù)據(jù)中獲得洞察??蛻粽娴南M麑?shù)據(jù)‘物以致用’,實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)的決策。越來越多的CIO和企業(yè)意識到這將成為數(shù)據(jù)使用者的‘生存法則’,那些有能力將數(shù)據(jù)應(yīng)用于實(shí)際工作的人將披荊斬棘,無往不利?!?/p>
以下Swami與我們分享了Amazon DynamoDB的起源、前身以及未來。
關(guān)于Dynamo的起源
Swami:我們在2007年發(fā)表了Dynamo論文,探討這個(gè)話題之前,我們需要先追溯到2004、2005 年。那時(shí)我正在攻讀博士學(xué)位,(并隨后于2006年從阿姆斯特丹自由大學(xué)獲得計(jì)算機(jī)科學(xué)博士學(xué)位),也在考慮我將在哪里工作??吹絹嗰R遜正在快速成長,并不斷突破常規(guī),打破界限,我選擇了以亞馬遜研究工程師實(shí)習(xí)生的身份加入亞馬遜。
那時(shí)亞馬遜云科技還不存在,加入亞馬遜后,我很快意識到作為一家電子商務(wù)公司,亞馬遜實(shí)際上也是一家科技公司。為了支持自身電子商務(wù)業(yè)務(wù)相關(guān)的各類運(yùn)營場景和工作負(fù)載,亞馬遜涌現(xiàn)出了大量創(chuàng)新技術(shù)、專利和發(fā)明,這種情形在全球任何一家公司都難得一見。
在亞馬遜擔(dān)任工程師時(shí),我和團(tuán)隊(duì)曾在假期流量高峰期間經(jīng)歷過一次嚴(yán)重的擴(kuò)展失敗。這是由數(shù)據(jù)庫事務(wù)死鎖而導(dǎo)致的,其背后正是亞馬遜當(dāng)時(shí)使用的商業(yè)關(guān)系型數(shù)據(jù)庫。故障發(fā)生后,我們一群工程師們一起編寫了一份錯(cuò)誤更正文檔,對發(fā)生了什么、學(xué)到了什么、如何解決問題以及如何避免問題再次發(fā)生等進(jìn)行了詳細(xì)說明。
我當(dāng)時(shí)問了一個(gè)問題:“為什么我們要為這些工作負(fù)載使用關(guān)系型數(shù)據(jù)庫?本質(zhì)上,它們并不需要 SQL 級別的復(fù)雜性和事務(wù)保證?!?/p>
這導(dǎo)致我們開始重新思考如何設(shè)計(jì)底層數(shù)據(jù)存儲(chǔ)。當(dāng)時(shí),還沒有可伸縮的非關(guān)系型數(shù)據(jù)庫,這是我們開始著手搭建Amazon Dynamo原型并撰寫論文的原因。事實(shí)上,Amazon Dynamo 并不是工程師們當(dāng)時(shí)唯一思考和研究的架構(gòu)。我們意識到我們還需要一個(gè)可擴(kuò)展的存儲(chǔ)系統(tǒng),Amazon S3 就誕生于此。同時(shí),還需要一個(gè)更易于管理的關(guān)系型數(shù)據(jù)庫,能夠自動(dòng)進(jìn)行復(fù)制、故障切換和備份/恢復(fù),這也是 Amazon RDS 的由來。
最初撰寫Dynamo論文時(shí),我們就定了一條規(guī)則,即“在開發(fā)原始設(shè)計(jì)時(shí)不對外發(fā)布”,而是先將Dynamo運(yùn)行于支持多個(gè)Amazon.com服務(wù)的實(shí)際生產(chǎn)環(huán)境中。這樣,Dynamo論文就會(huì)是一種端到端的可用方案,并有實(shí)際應(yīng)用經(jīng)驗(yàn)。Werner和我對此感受非常強(qiáng)烈,因?yàn)槲覀儾幌M麅H僅撰寫一篇學(xué)術(shù)論文而已。10年后,我們非常榮幸的是Dynamo論文還獲得了ACM的時(shí)間考驗(yàn)獎(jiǎng),這是由ACM主辦的The SIGOPS Hall of Fame Award,從2016年開始評選過去十年科技圈最具影響力的論文名人堂。
構(gòu)建Amazon DynamoDB的初衷及其過去十年的演進(jìn)
Swami:Amazon DynamoDB背后的想法來自于與SmugMug、Flickr等客戶首席執(zhí)行官的對話和討論。他們是最早帶有互聯(lián)網(wǎng)屬性的公司,而在當(dāng)時(shí)類似這樣的互聯(lián)網(wǎng)公司正在快速走向市場。他們的典型特征包括在線用戶數(shù)量呈爆炸式增長、數(shù)據(jù)模式不固定,追求快速交付和輕運(yùn)維等。傳統(tǒng)關(guān)系型數(shù)據(jù)庫將所有數(shù)據(jù)存儲(chǔ)在一個(gè)盒子中,無法高效地?cái)U(kuò)展,這迫使用戶需要對其數(shù)據(jù)庫重新分片,然后還需要管理所有的分區(qū)和重新分區(qū)等,這讓用戶面臨巨大的運(yùn)維挑戰(zhàn)和壓力。
這對我們來說并不新鮮,構(gòu)建原始Amazon Dynamo的初衷正是應(yīng)對這些挑戰(zhàn)。當(dāng)時(shí),Amazon Dynamo還不是一項(xiàng)服務(wù),而是一個(gè)由亞馬遜工程師構(gòu)建的軟件系統(tǒng)。在一次客戶咨詢會(huì)議上,時(shí)任Flickr 首席執(zhí)行官Don MacAskill表示:“你們已經(jīng)啟用了 Amazon Dynamo,驗(yàn)證了可擴(kuò)展非關(guān)系型數(shù)據(jù)庫系統(tǒng)的可行性,為什么不能把它作為外部服務(wù)提供給我們使用?”
當(dāng)時(shí),所有亞馬遜云科技的相關(guān)管理人員都在場,實(shí)際上,這也是我們問自己的一個(gè)問題。Flickr并不是唯一需要它的客戶,越來越多的客戶想要可擴(kuò)展的數(shù)據(jù)庫,無需處理分區(qū)和重新分區(qū)等復(fù)雜的運(yùn)維工作,同時(shí)他們還需要極高的可用性。于是,我們開始認(rèn)真思考構(gòu)建一個(gè)不受SQL API限制的、可擴(kuò)展的云數(shù)據(jù)庫。
Amazon DynamoDB與原始Amazon Dynamo不盡相同,它實(shí)際上是通過幾個(gè)原始Amazon Dynamo組件搭建的一項(xiàng)易于使用的云服務(wù)。客戶不再需要配置集群,只需創(chuàng)建一個(gè)表存儲(chǔ)數(shù)據(jù),即可輕松實(shí)現(xiàn)無縫縮放。管理員不必執(zhí)行任何操作,甚至無需安裝單個(gè)庫來操作數(shù)據(jù)庫。
Amazon Dynamo到Amazon DynamoDB的演變非常重要,亞馬遜真正以前所未有的方式擁抱云,獲得它的彈性和可擴(kuò)展性。
我們在2012年1月18日正式發(fā)布Amazon DynamoDB,該服務(wù)一經(jīng)推出就大受歡迎,F(xiàn)lickr等公司率先使用該服務(wù)。Amazon DynamoDB強(qiáng)大的彈性、個(gè)位數(shù)毫秒的延遲性能等深受客戶青睞。我們進(jìn)行了大量創(chuàng)新,從協(xié)議層一直到SSD存儲(chǔ)的底層存儲(chǔ)層等各項(xiàng)功能。
這里不得不提的一個(gè)有趣的用例,也是最早將DynamoDB投入生產(chǎn)的客戶之一,他們做的是超級碗(Super Bowl:全國橄欖球聯(lián)盟決賽——全美直播的體育界春晚)廣告投放。 因?yàn)锳mazon DynamoDB具備強(qiáng)大的彈性,可以無縫地?cái)U(kuò)展到每秒100,000次寫入,并在超級碗活動(dòng)結(jié)束后縮減,這樣客戶就不會(huì)擔(dān)心產(chǎn)生額外的成本。當(dāng)年,這在技術(shù)領(lǐng)域是個(gè)大事?,F(xiàn)在大家習(xí)以為常的橫向擴(kuò)展與彈性,對當(dāng)時(shí)的數(shù)據(jù)庫而言,那是無法想象的。
那是一個(gè)大膽的設(shè)想。Amazon DynamoDB專為云而構(gòu)建的架構(gòu)讓所有橫向擴(kuò)展用例成為可能。現(xiàn)在,Amazon DynamoDB正為多個(gè)高流量Amazon站點(diǎn)和系統(tǒng)提供支持,包括 Alexa、亞馬遜全球電商網(wǎng)站和所有亞馬遜運(yùn)營中心。2021年,在亞馬遜長達(dá)66小時(shí)的Prime會(huì)員日大促期間,上述站點(diǎn)和系統(tǒng)進(jìn)行了數(shù)萬億次API調(diào)用,Amazon DynamoDB以低至個(gè)位數(shù)毫秒延遲的高性能表現(xiàn),無感支持峰值達(dá)每秒8,920萬個(gè)請求,同時(shí)確保系統(tǒng)的高可用性。
Amazon DynamoDB自2012年問世以來,我們?yōu)槠湓黾恿舜罅縿?chuàng)新功能,不僅涉及底層可用性、持久性、安全性和規(guī)模等特性,還包括易用性等。
Amazon DynamoDB不止步于鍵值存儲(chǔ),還支持基于哈希的分區(qū)和基于范圍的分區(qū),并且增加了對二級索引的支持,支持更復(fù)雜的查詢功能,同時(shí)不影響規(guī)模或可用性。
現(xiàn)在,Amazon Kinesis Data Streams也適用于Amazon DynamoDB,捕獲可擴(kuò)展的流式數(shù)據(jù)。我認(rèn)為任何數(shù)據(jù)庫都不應(yīng)該是孤島,更不能是死胡同。它應(yīng)該支持生成變化的數(shù)據(jù)流,然后將這些數(shù)據(jù)流連接到分析應(yīng)用程序或其他數(shù)據(jù)存儲(chǔ)。
同時(shí),我們也針對備份和恢復(fù)等功能全面創(chuàng)新。對于像Amazon DynamoDB 這樣具有數(shù)百萬個(gè)分區(qū)的大型數(shù)據(jù)庫系統(tǒng)而言,備份和恢復(fù)并非易事,我們致力于通過創(chuàng)新讓客戶獲得更好的體驗(yàn)。
我們還為Amazon DynamoDB添加了創(chuàng)建全局表的功能,以便客戶可在輕松實(shí)現(xiàn)數(shù)據(jù)庫負(fù)載全球覆蓋的同時(shí),獲得近乎本地運(yùn)行的讀寫性能。此外,Amazon DynamoDB還擴(kuò)展了事務(wù)處理能力。所有這些創(chuàng)新都致力于不斷提升Amazon DynamoDB的可用性和可擴(kuò)展性。
我們同時(shí)致力于為客戶提供更高的成本效益。客戶通常需要長期存儲(chǔ)數(shù)據(jù),雖然這些舊數(shù)據(jù)可能很少被訪問,但它必須保持高度可用,以便不時(shí)之需。例如,社交媒體用戶很少訪問舊的內(nèi)容和圖片,但一旦有這類訪問請求,需要確保可以立即為用戶提供這些內(nèi)容。這種不經(jīng)常訪問的數(shù)據(jù)可能會(huì)給客戶帶來高昂的存儲(chǔ)費(fèi)用,而且這類數(shù)據(jù)的數(shù)量還在不斷增長。過去,為了優(yōu)化成本,客戶會(huì)通過編寫代碼的方式,將舊的、訪問頻率較低的數(shù)據(jù)從Amazon DynamoDB 移動(dòng)到存儲(chǔ)成本較低的如Amazon S3中。
在2021 re:Invent全球大會(huì)上,我們推出了Amazon DynamoDB Standard-Infrequent Access表類,一種新的經(jīng)濟(jì)高效的表類,用于存儲(chǔ)不經(jīng)常訪問的數(shù)據(jù),同時(shí)保持Amazon DynamoDB的高可用性和性能。
不忘初心,我們始終將DynamoDB的最初愿景作為指引,持續(xù)創(chuàng)新,為客戶提供更易于查詢的用例,支持進(jìn)行復(fù)雜全局事務(wù)復(fù)制等,不斷擴(kuò)展能力范圍,同時(shí)持續(xù)優(yōu)化管理成本。
展望Amazon DynamoDB的未來十年
Swami:十年前,當(dāng)我們推出Amazon DynamoDB 時(shí),客戶才剛剛開始對云本身有了更好的理解,它的好處是什么,可以做什么。
如今,就客戶構(gòu)建IT應(yīng)用程序而言,云已經(jīng)成為的新常態(tài),規(guī)模也是新常態(tài),每個(gè)應(yīng)用程序都需要基于不確定性構(gòu)建。我們將繼續(xù)代表客戶進(jìn)行創(chuàng)新,Amazon DynamoDB本身也在這個(gè)持續(xù)變革的旅程中。我們將繼續(xù)朝著端到端的現(xiàn)代化數(shù)據(jù)戰(zhàn)略邁進(jìn)。正如之前提到的,數(shù)據(jù)庫不應(yīng)該是孤島。
客戶將不再只想在數(shù)據(jù)庫中存儲(chǔ)和查詢數(shù)據(jù),他們需要分析這些數(shù)據(jù)來創(chuàng)造價(jià)值,無論是通過創(chuàng)建更好的個(gè)性化推薦引擎,還是使用機(jī)器學(xué)習(xí)運(yùn)行預(yù)測分析的預(yù)測系統(tǒng)。將數(shù)據(jù)流點(diǎn)對點(diǎn)無縫連接,并繼續(xù)讓Amazon DynamoDB更安全、高可用,性能更強(qiáng)且易于使用,這些都將是我們永無止境的追求。