受騰訊云Serverless團隊之邀,Tim Wagner在Techo開發(fā)者大會上為中國開發(fā)者發(fā)表了Keynote演講,演講中Tim發(fā)表了對Serverless技術(shù)的最新洞見和趨勢解讀。Tim Wagner是AWS Lambda的創(chuàng)始人,作為業(yè)界最早的Serverless實踐者,他無愧于Serverless教父之位。
本文內(nèi)容整理自Tim Wagner的演講實錄,由騰訊云Serverless團隊進行翻譯、校對和整理。下面就讓我們一起再次回顧一下,Serverless教父的這次精彩的主體演講。本文約3700字,閱讀時間約9分鐘。
大家好,我是Tim Wagner,Vendia CEO和聯(lián)合創(chuàng)始人,我的整個職業(yè)生涯都在努力讓軟件和應(yīng)用程序更容易開發(fā)。
早在2013年,我就找到AWS的高管團隊探討一個想法,是否能夠通過將確保程序運行的大部分復(fù)雜性工作從開發(fā)者轉(zhuǎn)移到云提供商,從而使得在云上創(chuàng)建應(yīng)用程序變得更加簡單。云提供商已經(jīng)擁有大量的專業(yè)知識、出色的運維工具和大量專業(yè)人員,致力于保持服務(wù)器和存儲服務(wù)全天候不間斷平穩(wěn)運行。讓開發(fā)者不必擔(dān)心擴縮容、容錯或基礎(chǔ)設(shè)施維護,這會使軟件構(gòu)建變得容易得多。
基于這個想法,AWS Lambda誕生了。盡管我們沒有使用Serverless這個詞,但它是云計算領(lǐng)域出現(xiàn)Serverless的開端——一種無需考慮服務(wù)器和容器便可大規(guī)模運行代碼的方式。今天我想分享一些洞察,關(guān)于云,尤其是Serverless的發(fā)展方向。
在此之前,我們需要先回顧一下云計算的歷史發(fā)展。我將云計算分為三次浪潮。
第一次大約從2006年到2014年,主要是特征是在企業(yè)數(shù)據(jù)中心之外托管服務(wù)器。
對于那些較早的云使用者,我們稱他們?yōu)樘剿髡?,?dāng)時顛覆性的變化是虛擬機能夠在10分鐘之內(nèi)運行起來。在這次浪潮中幾乎不涉及Serverless,這些探索者尋求的是遷移的兼容性,而不是云所帶來的新功能,而這意味著云服務(wù)與傳統(tǒng)服務(wù)器托管服務(wù)的差異盡可能小。此外,這些探索者通常都是分布式系統(tǒng)專家,在許多情況下,他們都會帶著自己的原有的流程和運維團隊來處理擴展、容錯和操作維護等問題。
第二波浪潮,建立在第一波基礎(chǔ)之上。比方說,AWS Lambda是完全基于現(xiàn)有服務(wù)(例如EC2和S3)構(gòu)建的第一個服務(wù),而不是直接使用裸金屬硬件構(gòu)建的。第二波浪潮直到我們創(chuàng)造出那些新的云計算技術(shù)和云計算能力,才算真正開始。
第二波開發(fā)者實際上和以往已經(jīng)有所不同。他們不再專注于純粹的系統(tǒng)遷移,他們愿意學(xué)習(xí)和采用新技術(shù)、新的做事方式,實現(xiàn)更快的上線速度、更高的開發(fā)效率、更高的安全性或更好的客戶體驗。包括Serverless計算、Serverless隊列、Serverless數(shù)據(jù)庫、Serverless BLOB存儲,云服務(wù)上將這一套技術(shù)提供給開發(fā)人員。這些開發(fā)者我們稱他們?yōu)椤岸ň诱摺卑桑麄冇懈唵?、更方便的工具,而不是一切都從繪制草圖開始。
這還永遠改變了云服務(wù)商和開發(fā)者之間的關(guān)系。云服務(wù)商不再只是原始的基礎(chǔ)設(shè)施租賃公司,他們現(xiàn)在會關(guān)注每個開發(fā)者應(yīng)用程序的業(yè)務(wù)細節(jié)。這是一個巨大的觀念轉(zhuǎn)變和新的職責(zé)。因為現(xiàn)在云服務(wù)的性能和功能,不僅直接影響到人們可以在云上構(gòu)建什么,還包括這些應(yīng)用程序的運行情況,以及它們滿足客戶期望的程度。
第二波浪潮里的開發(fā)者與云服務(wù)商達成了一項至關(guān)重要的默契——開發(fā)者愿意學(xué)習(xí)這些新的技術(shù),并修改代碼去適配這些新的服務(wù),以獲得更好的收益。比如,更低的成本、更簡單的模式(如事件處理、自動擴縮容),不再需要考慮配置容量或關(guān)注服務(wù)器健康程度,所有這些都是對開發(fā)者改變軟件編寫方式的驅(qū)動力和優(yōu)勢。這些優(yōu)勢推動了Serverless的成功。如今,財富500強企業(yè)幾乎都表示在使用Serverless服務(wù),而且越來越多的開發(fā)者自接觸云便從Serverless開始。
那么下一步是什么?今天我們正處于這一激動人心的新階段的開端:我稱之為第三次云技術(shù)浪潮。
這些新浪潮下的開發(fā)者再一次看起來跟之前的開發(fā)人員完全不同。第三次浪潮里的開發(fā)者,好比成長于云時代的“城市規(guī)劃師”。如今,進入這一行業(yè)的開發(fā)者,可能永遠不會真正看到服務(wù)器。他們中的許多人永遠不會看到數(shù)據(jù)中心或用到運維方法論。對他們來說,云原生這個術(shù)語甚至沒有任何意義——因為他們一開始就處在云原生的時代??偟膩碚f,這些開發(fā)者都是實用主義者,有大量的專業(yè)軟件工程師,用云提供的工具就可以完成他們的工作。
是什么在驅(qū)動云計算的第三波浪潮呢?
這一切,都是為了可以更加容易和方便的使用云服務(wù)去編程。熟悉的工具和框架消除了無差別的繁重工作。標(biāo)準(zhǔn)的部署流程,能夠使開發(fā)者在跳槽時,都能將從一家公司學(xué)習(xí)的技術(shù)應(yīng)用于其他公司。這些技術(shù)標(biāo)準(zhǔn),也使在不同環(huán)境中的技術(shù)復(fù)用成為可能。進一步,云為開發(fā)者創(chuàng)造了解決方案,而不僅僅是給他們提供新技術(shù)。
這些對于Serverless意味著什么?
首先,意味著需要非常廣泛的用例。Serverless最開始只有幾個用例,比如事件處理。最初,像冷啟動這樣的問題,限制Serverless在低延遲場景中的應(yīng)用。所以,要在第三次浪潮中取得成功,Serverless技術(shù)必須消除冷啟動等問題,并可以更快速的進行擴容。目前已經(jīng)看到云廠商解決了這些問題,最新一代的Serverless計算方案,現(xiàn)在幾乎可以滿足任何應(yīng)用需求。
其次,第三波浪潮中的Serverless需要與現(xiàn)有工具和框架無縫銜接搭配使用。比如,支持容器鏡像等標(biāo)準(zhǔn)。這并不意味著讓開發(fā)人員再次面臨運維服務(wù)器和容器的挑戰(zhàn),這只意味著應(yīng)用程序構(gòu)建和部署工具需要標(biāo)準(zhǔn)化和可移植性。
最后,第三波浪潮需要滿足開發(fā)人員的實際需求:支持現(xiàn)有的語言和框架,并為代碼和配置提供跨云的標(biāo)準(zhǔn)(好比docker映像),以幫助開發(fā)人員在不同的環(huán)境中保留和復(fù)用他們的技術(shù)和代碼。我們已經(jīng)看到該領(lǐng)域的每個云提供商都提供了驚人的、變革性的產(chǎn)品,這使得Serverless的應(yīng)用更加簡便,并能夠逐年產(chǎn)生更多的Serverless應(yīng)用案例。
Serverless的未來是什么?基于我已經(jīng)談到的兩個令人興奮的趨勢,我可以給你們兩個預(yù)測。
首先,我們都聽說一個壞消息——摩爾定律已經(jīng)失效!計算機芯片并沒有真正變得更快,內(nèi)存密度也沒有大幅提高——至少沒有以過去的速度增長。計算機性能每隔幾年翻一番的想法已經(jīng)結(jié)束了,不是嗎?
云計算取決于三大要素,不僅僅是CPU、內(nèi)存,還有網(wǎng)絡(luò)。云數(shù)據(jù)中心的聯(lián)網(wǎng)速度仍在逐年以驚人的速度變得更快,這對Serverless來說真的是個極好的消息。在聯(lián)網(wǎng)速度很慢的年代,云上的高性能計算的本質(zhì)上取決于服務(wù)器,其工作方式基本上與10到15年前相同。比如,你在云上擁有幾臺多核CPU和大內(nèi)存的大型實例,如果你現(xiàn)在正在計算密集型業(yè)務(wù):例如機器學(xué)習(xí)或者蒙特卡洛模擬計算,那么您可能會以完全相同的方式進行,即分配這些強健的服務(wù)器實例,然后在上面運行計算密集型任務(wù)。
但隨著網(wǎng)絡(luò)相對于CPU和內(nèi)存變得更快,情況突然發(fā)生了變化。突然之間,分布式存儲和分布式計算與傳統(tǒng)大型計算實例開始競爭。開發(fā)者開始考慮,在哪里可以輕松獲得大量的計算資源——答案就是Serverless云函數(shù)。
為什么是Serverless函數(shù)?在過去的50年里,分布式計算研究人員專注于基于服務(wù)器的模型,擁有無限的時間和有限的資源。Serverless計算徹底顛覆了這一切,開發(fā)人員現(xiàn)在擁有無限的資源,但時間有限,這就需要大量新的算法和新的研究。
在過去的幾年里,Serverless領(lǐng)域的研究呈爆炸式增長。關(guān)于Serverless存儲、Serverless計算、以及圖像處理和線性規(guī)劃等Serverless應(yīng)用的論文有很多,大學(xué)已經(jīng)開展了越來越多的研究來探索這一新的范式,這從根本上是由摩爾定律在網(wǎng)絡(luò)空間中依然有效所驅(qū)使的。而Serverless云產(chǎn)品也因此越來越好,這是一個令人異常興奮的時期,這將導(dǎo)致Serverless技術(shù)在第三次云計算浪潮中得到更多的采用,基于Serverless現(xiàn)在每個開發(fā)人員在云中部署代碼時,都可以獲得一臺易于使用、易于編程的“超級計算機”。
再談?wù)勎业牡诙€預(yù)測,我將從一個棘手的問題開始——如果Serverless這么棒,為什么我們?nèi)匀辉谑褂梅?wù)器?比較中肯的答案是,狀態(tài)管理和共享仍然很困難。半個世紀(jì)以來,程序員一直在努力解決,如何構(gòu)建一些跨公司、跨地區(qū)、跨賬戶、跨云、跨技術(shù)棧應(yīng)用程序的問題。Serverless計算使其中一些模式成為可能,例如同步事件處理、更簡單有效的編程方法,但是它還沒有解決所有這些挑戰(zhàn)和問題。
為什么會這樣呢?盡管Serverless有很多優(yōu)點。Serverless計算仍然存在挑戰(zhàn):這些服務(wù)通常只在一個云上運行,一般的Serverless函數(shù)都沒有內(nèi)置的數(shù)據(jù)模型和持久化存儲,這讓你的應(yīng)用程序跨不同地區(qū)、或跨云工作仍然非常棘手。目前當(dāng)這些問題出現(xiàn)時,開發(fā)人員會使用一些不同的工具和方法來去解決。
現(xiàn)在證明區(qū)塊鏈的基礎(chǔ)技術(shù)——分布式賬本,實際上可以解決其中的一些難題。分布式賬本天生就是去中心化的,它們通過使用復(fù)制和同步的數(shù)據(jù)存儲跨越云、區(qū)域和帳戶,并提供易于編程的數(shù)據(jù)模型和ACID事務(wù),就像傳統(tǒng)的SQL數(shù)據(jù)庫一樣。
第一代區(qū)塊鏈作為一個軟件平臺并不是很有效。每個節(jié)點都在單個服務(wù)器上運行,從而將其計算、內(nèi)存和網(wǎng)絡(luò)資源限制為極少的數(shù)量,并很難與其他云服務(wù)集成,也不能處理大型文件或多媒體等重要的實時數(shù)據(jù)。
我創(chuàng)辦Vendia公司的原因之一,就是利用這兩類技術(shù)之間令人興奮的交集。
通過使用Serverless服務(wù)重建分布式賬本,我們可以在每個節(jié)點中放置一臺超級計算機,從而解決困擾第一代區(qū)塊鏈技術(shù)的性能、集成和部署挑戰(zhàn)。
通過將易于編程、一致數(shù)據(jù)模型的分布式賬本附加到Serverless函數(shù)中,我們可以使客戶訪問Serverless編程模型,該模型能夠跨越公司,云,地理位置甚至技術(shù)棧。
這種技術(shù)標(biāo)準(zhǔn)之下,開發(fā)人員能夠以前所未有的靈活性、可擴展性和簡單性創(chuàng)建可移植的跨云應(yīng)用程序。這樣的創(chuàng)新正在推動新一代Serverless應(yīng)用程序的發(fā)展,這些應(yīng)用程序?qū)⒆詈玫姆?wù)與最好的傳統(tǒng)應(yīng)用程序結(jié)合在一起。
Serverless自出現(xiàn)以來經(jīng)歷了令人驚訝的增長速度,Serverless技術(shù)的未來看起來從未像現(xiàn)在這樣光明。Serverless將為每個開發(fā)者提供了超級計算機般的性能,提供有狀態(tài)、更輕便的應(yīng)用程序支持、以及鏈接萬物的能力。這將推動云計算的新浪潮即將到來,幫助我們比以往任何時候都更快、更好地為客戶提供更多價值。
拜拜!