受騰訊雲 Serverless 團隊之邀,Tim Wagner 在 Techo 開發者大會上爲中國開發者發表了Keynote演講,演講中 Tim 發表了對 Serverless 技術的最新洞見和趨勢解讀。Tim Wagner 是 AWS Lambda的創始人,做爲業界最先的 Serverless 實踐者,他無愧於 Serverless 教父之位。程序員
本文內容整理自 Tim Wagner的演講實錄,由騰訊雲 Serverless 團隊進行翻譯、校對和整理。下面就讓咱們一塊兒再次回顧一下,Serverless教父的此次精彩的主體演講。本文約3700字,閱讀時間約 9 分鐘。算法
原做者:Tim Wagner,翻譯&校對:王俊傑、劉傳docker
你們好,我是Tim Wagner,Vendia CEO和聯合創始人,個人整個職業生涯都在努力讓軟件和應用程序更容易開發。數據庫
早在2013年,我就找到AWS的高管團隊探討一個想法,是否可以經過將確保程序運行的大部分複雜性工做從開發者轉移到雲提供商,從而使得在雲上建立應用程序變得更加簡單。雲提供商已經擁有大量的專業知識、出色的運維工具和大量專業人員,致力於保持服務器和存儲服務全天候不間斷平穩運行。讓開發者沒必要擔憂擴縮容、容錯或基礎設施維護,這會使軟件構建變得容易得多。編程
基於這個想法,AWS Lambda誕生了。儘管咱們沒有使用Serverless這個詞,但它是雲計算領域出現Serverless的開端 —— 一種無需考慮服務器和容器即可大規模運行代碼的方式。今天我想分享一些洞察,關於雲,尤爲是Serverless的發展方向。安全
在此以前,咱們須要先回顧一下雲計算的歷史發展。我將雲計算分爲三次浪潮。服務器
第一次大約從2006年到2014年,主要是特徵是在企業數據中心以外託管服務器。網絡
對於那些較早的雲使用者,咱們稱他們爲探索者,當時顛覆性的變化是虛擬機可以在10分鐘以內運行起來。在此次浪潮中幾乎不涉及Serverless,這些探索者尋求的是遷移的兼容性,而不是雲所帶來的新功能,而這意味着雲服務與傳統服務器託管服務的差別儘量小。此外,這些探索者一般都是分佈式系統專家,在許多狀況下,他們都會帶着本身的原有的流程和運維團隊來處理擴展、容錯和操做維護等問題。框架
第二波浪潮,創建在第一波基礎之上。比方說,AWS Lambda是徹底基於現有服務(例如EC2和S3)構建的第一個服務,而不是直接使用裸金屬硬件構建的。第二波浪潮直到咱們創造出那些新的雲計算技術和雲計算能力,纔算真正開始。less
第二波開發者實際上和以往已經有所不一樣。他們再也不專一於純粹的系統遷移,他們願意學習和採用新技術、新的作事方式,實現更快的上線速度、更高的開發效率、更高的安全性或更好的客戶體驗。包括 Serverless計算、Serverless隊列、Serverless數據庫、Serverless BLOB存儲,雲服務上將這一套技術提供給開發人員。這些開發者咱們稱他們爲「定居者」吧,他們有更簡單、更方便的工具,而不是一切都從繪製草圖開始。
這還永遠改變了雲服務商和開發者之間的關係。雲服務商再也不只是原始的基礎設施租賃公司,他們如今會關注每一個開發者應用程序的業務細節。這是一個巨大的觀念轉變和新的職責。由於如今雲服務的性能和功能,不只直接影響到人們能夠在雲上構建什麼,還包括這些應用程序的運行狀況,以及它們知足客戶指望的程度。
第二波浪潮裏的開發者與雲服務商達成了一項相當重要的默契 —— 開發者願意學習這些新的技術,並修改代碼去適配這些新的服務,以得到更好的收益。好比,更低的成本、更簡單的模式(如事件處理、自動擴縮容),再也不須要考慮配置容量或關注服務器健康程度,全部這些都是對開發者改變軟件編寫方式的驅動力和優點。這些優點推進了Serverless的成功。現在,財富500強企業幾乎都表示在使用Serverless服務,並且愈來愈多的開發者自接觸雲便從Serverless開始。
那麼下一步是什麼?今天咱們正處於這一激動人心的新階段的開端:我稱之爲第三次雲技術浪潮。
這些新浪潮下的開發者再一次看起來跟以前的開發人員徹底不一樣。第三次浪潮裏的開發者,比如成長於雲時代的 「城市規劃師」 。現在,進入這一行業的開發者,可能永遠不會真正看到服務器。他們中的許多人永遠不會看到數據中心或用到運維方法論。對他們來講,雲原生這個術語甚至沒有任何意義 —— 由於他們一開始就處在雲原生的時代。總的來講,這些開發者都是實用主義者,有大量的專業軟件工程師,用雲提供的工具就能夠完成他們的工做。
是什麼在驅動雲計算的第三波浪潮呢?
這一切,都是爲了能夠更加容易和方便的使用雲服務去編程。熟悉的工具和框架消除了無差異的繁重工做。標準的部署流程,可以使開發者在跳槽時,都能將從一家公司學習的技術應用於其餘公司。這些技術標準,也使在不一樣環境中的技術複用成爲可能。進一步,云爲開發者創造瞭解決方案,而不只僅是給他們提供新技術。
這些對於 Serverless 意味着什麼?
首先,意味着須要很是普遍的用例。Serverless 最開始只有幾個用例,好比事件處理。最初,像冷啓動這樣的問題,限制Serverless在低延遲場景中的應用。因此,要在第三次浪潮中取得成功,Serverless技術必須消除冷啓動等問題,並能夠更快速的進行擴容。目前已經看到雲廠商解決了這些問題,最新一代的Serverless計算方案,如今幾乎能夠知足任何應用需求。
其次,第三波浪潮中的Serverless須要與現有工具和框架無縫銜接搭配使用。好比,支持容器鏡像等標準。這並不意味着讓開發人員再次面臨運維服務器和容器的挑戰,這隻意味着應用程序構建和部署工具須要標準化和可移植性。
最後,第三波浪潮須要知足開發人員的實際需求:支持現有的語言和框架,併爲代碼和配置提供跨雲的標準(比如 docker 映像),以幫助開發人員在不一樣的環境中保留和複用他們的技術和代碼。咱們已經看到該領域的每一個雲提供商都提供了驚人的、變革性的產品,這使得Serverless 的應用更加簡便,並可以逐年產生更多的 Serverless 應用案例。
Serverless的將來是什麼?基於我已經談到的兩個使人興奮的趨勢,我能夠給大家兩個預測。
首先,咱們都據說一個壞消息 —— 摩爾定律已經失效!計算機芯片並無真正變得更快,內存密度也沒有大幅提升 —— 至少沒有以過去的速度增加。計算機性能每隔幾年翻一番的想法已經結束了,不是嗎?
雲計算取決於三大要素,不只僅是CPU、內存,還有網絡。雲數據中心的聯網速度仍在逐年以驚人的速度變得更快,這對Serverless來講真的是個極好的消息。在聯網速度很慢的年代,雲上的高性能計算的本質上取決於服務器,其工做方式基本上與10到15年前相同。好比,你在雲上擁有幾臺多核CPU和大內存的大型實例,若是你如今正在計算密集型業務:例如機器學習或者蒙特卡洛模擬計算,那麼您可能會以徹底相同的方式進行,即分配這些強健的服務器實例,而後在上面運行計算密集型任務。
但隨着網絡相對於CPU和內存變得更快,狀況忽然發生了變化。忽然之間,分佈式存儲和分佈式計算與傳統大型計算實例開始競爭。開發者開始考慮,在哪裏能夠輕鬆得到大量的計算資源—— 答案就是 Serverless 雲函數。
爲何是 Serverless 函數? 在過去的50年裏,分佈式計算研究人員專一於基於服務器的模型,擁有無限的時間和有限的資源。 Serverless計算完全顛覆了這一切,開發人員如今擁有無限的資源,但時間有限。,這就須要大量新的算法和新的研究。
在過去的幾年裏,Serverless 領域的研究呈爆炸式增加。關於Serverless存儲、Serverless計算、以及圖像處理和線性規劃等 Serverless 應用的論文有不少,大學已經開展了愈來愈多的研究來探索這一新的範式,這從根本上是由摩爾定律在網絡空間中依然有效所驅使的。而Serverless 雲產品也所以愈來愈好,這是一個使人異常興奮的時期,這將致使 Serverless 技術在第三次雲計算浪潮中獲得更多的採用,基於 Serverless 如今每一個開發人員在雲中部署代碼時,均可以得到一臺易於使用、易於編程的「超級計算機」。
再談談個人第二個預測,我將從一個棘手的問題開始——若是 Serverless 這麼棒,爲何咱們仍然在使用服務器?比較中肯的答案是,狀態管理和共享仍然很困難。半個世紀以來,程序員一直在努力解決,如何構建一些跨公司、跨地區、跨帳戶、跨雲、跨技術棧應用程序的問題。Serverless 計算使其中一些模式成爲可能,例如同步事件處理、更簡單有效的編程方法,可是它尚未解決全部這些挑戰和問題。
爲何會這樣呢?儘管 Serverless 有不少優勢。Serverless計算仍然存在挑戰:這些服務一般只在一個雲上運行,通常的 Serverless 函數都沒有內置的數據模型和持久化存儲,這讓你的應用程序跨不一樣地區、或跨雲工做仍然很是棘手。目前當這些問題出現時,開發人員會使用一些不一樣的工具和方法來去解決。
如今證實區塊鏈的基礎技術——分佈式帳本,實際上能夠解決其中的一些難題。分佈式帳本天生就是去中心化的,它們經過使用複製和同步的數據存儲跨越雲、區域和賬戶,並提供易於編程的數據模型和ACID事務,就像傳統的SQL數據庫同樣。
第一代區塊鏈做爲一個軟件平臺並非頗有效。每一個節點都在單個服務器上運行,從而將其計算、內存和網絡資源限制爲極少的數量,並很難與其餘雲服務集成,也不能處理大型文件或多媒體等重要的實時數據。
我創辦Vendia公司的緣由之一,就是利用這兩類技術之間使人興奮的交集。
經過使用Serverless 服務重建分佈式帳本,咱們能夠在每一個節點中放置一臺超級計算機,從而解決困擾第一代區塊鏈技術的性能、集成和部署挑戰。
經過將易於編程、一致數據模型的分佈式帳本附加到Serverless函數中,咱們可使客戶訪問Serverless 編程模型,該模型可以跨越公司,雲,地理位置甚至技術棧。
這種技術標準之下,開發人員可以之前所未有的靈活性、可擴展性和簡單性建立可移植的跨雲應用程序。這樣的創新正在推進新一代Serverless應用程序的發展,這些應用程序將最好的服務與最好的傳統應用程序結合在一塊兒。
Serverless 自出現以來經歷了使人驚訝的增加速度,Serverless技術的將來看起來從未像如今這樣光明。Serverless 將爲每一個開發者提供了超級計算機般的性能,提供有狀態、更輕便的應用程序支持、以及連接萬物的能力。這將推進雲計算的新浪潮即將到來,幫助咱們比以往任什麼時候候都更快、更好地爲客戶提供更多價值。
當即體驗騰訊雲 Serverless Demo,領取 Serverless 新用戶禮包 👉 serverless/start
歡迎訪問:Serverless 中文網!