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