天天看點

Serverless 工程實踐 | 從雲計算到 Serverless雲計算的誕生從雲計算到 Serverlss什麼是 ServerlessServerless 的發展曆程新書推薦

作者 | Anycodes

Serverless 架構是雲計算發展的産物,它繼承了雲計算的優點,并具備極緻彈性、按量付費、免運維等優勢。

雲計算的誕生

在 1961 年麻省理工學院百周年紀念典禮上,約翰·麥卡錫(1971 年圖靈獎獲得者)第一次提出了 “Utility Computing” 的概念,這個概念可以認為是雲計算的一個“最初的”,“超前的” 遐想模型;1984 年,SUN 公司聯合創始人 John Gage(約翰·蓋奇)提出了“網絡就是計算機(The Network is the Computer)”的重要猜想,用于描述分布式計算技術帶來的新世界;到了 1996 年,康柏(Compaq)公司的一群技術主管在讨論計算業務的發展時,首次使用了 Cloud Computing 這個詞,并認為商業計算會向 Cloud Computing 的方向轉移。這也是 “雲計算” 從雛形到正式被提出的基本過程。

自 “雲計算” 被提出之後,其可謂是如同雨後春筍般,蓬勃發展:

  • 2003 年到 2006 年間,谷歌發表了 The Google File System、MapReduce: Simplified Data Processing on Large Clusters、Bigtable: A Distributed Storage System for Structured Data 等文章,這些文章指明了 HDFS(分布式檔案系統),MapReduce(并行計算)和 Hbase(分布式資料庫)的技術基礎以及未來機會,至此奠定了雲計算的發展方向。
  • 2006 年,Google 首席執行官埃裡克·施密特(Eric Schmidt)在搜尋引擎大會(SESSanJose 2006)首次公開正式的提出 “雲計算”(Cloud Computing)的概念,同年亞馬遜第一次将其彈性計算能力作為雲服務進行售賣,這也标志着雲計算這種新的商業模式正式誕生。兩年後,即 2008年,微軟釋出雲計算戰略和平台 Windows Azure Platform,嘗試将技術和服務托管化、線上化。
  • 2009 年,UC Berkeley 發表了:Above the Clouds: A Berkeley View of Cloud Computing,在該文章中,明确指出:雲計算是一個即将實作的古老夢想,是計算作為基礎設施這一長久以來夢想的新稱謂,它在最近正快速變為商業現實。在該文章中,明确的為雲計算做了定義:雲計算包含網際網路上的應用服務及在資料中心提供這些服務的軟硬體設施。同時在該文章中,也提出了雲計算所面臨的挑戰和機遇,更對雲計算的未來發展方向進行了大膽預測。

同年,阿裡軟體在江蘇南京建立首個“電子商務雲計算中心”(即現在的阿裡雲)。至此,雲計算進入到了更加快速的發展階段。

從雲計算到 Serverlss

雲計算飛速發展的階段,雲計算的形态也在不斷的演進,從 IaaS 到 PaaS,再到 SaaS,雲計算逐漸的 “找到了正确的發展方向”。

Serverless 工程實踐 | 從雲計算到 Serverless雲計算的誕生從雲計算到 Serverlss什麼是 ServerlessServerless 的發展曆程新書推薦

2012 年由 Iron.io 的副總裁 Ken Form 所寫的一篇名為《Why The Future of Software and Apps is Serverless》 的文章中,提出了一個新的觀點:即使雲計算的已經逐漸的興起,但是大家仍然在圍繞着伺服器轉。不過,這不會持續太久, 雲應用正在朝着無伺服器方向發展,這将對應用程式的建立和分發産生重大影響。并首次将 “Serverless” 這個詞帶進了大衆的視野。

一直到 2014 年 Amazon 釋出了 AWS Lambda 讓 “Serverless” 這一範式提高到一個全新的層面,為雲中運作的應用程式提供了一種全新的系統體系結構,至此再也不需要在伺服器上持續運作程序以等待 HTTP 請求或 API 調用,而是可以通過某種事件機制觸發代碼執行,通常這隻需要在 AWS 的某台伺服器上配置一個簡單的功能。此後 Ant Stanley 在 2015 年 7 月名為 Server are Dead…的文章中更是圍繞着 AWS Lambda 及剛剛釋出的 AWS API Gateway 這兩個服務解釋了他心目中的 Serverless,并說 Servers are dead … they just don’t know it yet.

2015 年,在 AWS 的 re:Invent 大會上,Serverless 的這個概念更是反複的出現,其中包括了 The Serverless Company Using AWS Lambda 和 JAWS:The Monstrously Scalable Serverless Framework 的這些演講。

随着 Serverless 這個概念的進一步發酵,2016 年 10 月在倫敦舉辦了第一屆的 ServerlessConf,在兩天時間裡面,來自全世界 40 多位演講嘉賓為開發者分享了關于這個領域進展,并且對未來進行了展望,提出來了 Serverless 的發展機會以及所面臨的挑戰,這場大會是針對 Serverless 領域的第一場具有較大規模的會議,在 Serverless 的發展史上具有裡程碑的意義。

截止到 2017 年,各大雲廠商基本上都已經在 Serverless 進行了基礎的布局,尤其是國内的幾大雲廠商,也都先後在這一年邁入 “Serverless時代”。從 IaaS 到 PaaS 再到 SaaS 的過程中,雲計算所表現出的去伺服器化越來越明顯,那麼 Ken Form 所提出來的 Serverless 又是什麼,它在雲計算發展的過程中,又在扮演什麼角色呢?

Serverless 工程實踐 | 從雲計算到 Serverless雲計算的誕生從雲計算到 Serverlss什麼是 ServerlessServerless 的發展曆程新書推薦

IaaS、PaaS、SaaS的差別

什麼是 Serverless

雲計算的十餘年發展讓整個網際網路行業發生了翻天覆地的變化,Serverless 作為雲計算的産物,或者說是雲計算在某個時代的表現,被很多人認為是真正意義上的雲計算,伯克利團隊甚至斷言 Serverless 将會是引領雲計算下一個十年的新範式。

Serverless 翻譯成中文是無伺服器,所謂的無伺服器并非是說不需要依靠伺服器等資源,而是說開發者再也不用過多考慮伺服器的問題,可以更專注在産品代碼上,同時計算資源也開始作為服務出現,而不是作為伺服器的概念出現,Serverless 是一種建構和管理基于微服務架構的完整流程,允許使用者在服務部署級别而不是伺服器部署級别來管理使用者的應用部署。

與傳統架構的不同之處在于,它完全由第三方管理,由事件觸發,存在于無狀态(Stateless),暫存(可能隻存在于一次調用的過程中)在計算容器内,Serverless 部署應用無須涉及更多的基礎設施建設,就可以基本實作自動建構、部署和啟動服務。

近些年來,微服務(Micro Service)是軟體架構領域另一個熱門的話題,如果說微服務是以專注于單一責任與功能的小型功能塊為基礎,利用模組化的方式組合出複雜的大型應用程式,那麼可以進一步認為 Serverless 架構可以提供一種更加 “代碼碎片化” 的軟體架構範式,而這一部分稱之為 Function as a Services(FaaS)。而所謂的“函數”提供的是相比微服務更加細小的程式單元。

例如,可以通過微服務代表為某個客戶執行所有 CRUD 操作所需的代碼,而 FaaS 中的函數可以代表客戶所要執行的每個操作:建立、讀取、更新以及删除。當觸發 “建立賬戶” 事件後,将通過函數的方式執行相應的“函數”。單就這一層意思來說,可以簡單地将 Serverless 架構與 FaaS 概念等同起來。但是就具體的概念深刻探索的話,Serverless 和 FaaS 還是不同的,Serverless 和 FaaS 被廣為接受的關系是:

Serverless = FaaS + BaaS (+ .....)

在這個關系中,可以看到 Serverless 的組成除了 FaaS 和 BaaS 之外,還有一系列的省略号,其實這是 Serverless 給予給大家的遐想空間,給予這個時代的一些期待。

Serverless 的發展曆程

從 2012 年,Serverless 概念被正式提出之後,2014 年 AWS 帶領 Lambda 開啟了 Serverless 的商業化,再到 2017 年各大廠商紛紛布局 Serverless 領域,再到 2019 年,Serverless 成為熱點議題在 KubeCon 中被衆多人參與探讨,Serverless 随着時間的不斷推進,各種技術部的不斷進步,正在逐漸的朝着更完整,更清晰的方向發展,随着 5G 時代的到來,Serverless 将會在更多領域發揮至關重要的作用。

Serverless 工程實踐 | 從雲計算到 Serverless雲計算的誕生從雲計算到 Serverlss什麼是 ServerlessServerless 的發展曆程新書推薦

從 IaaS 到 FaaS 再到 SaaS,再到如今的 Serverless;從虛拟空間到雲主機,從自建資料庫等業務,到雲資料庫等服務,雲計算的發展是迅速的,未來的方向和形态卻是模糊的,沒人知道雲計算的終态是什麼。

誠然,現在有人說 Serverless 實作了當初了雲計算目标,Serverless 才是真正的雲計算,但是沒人可以肯定的說, Serverless 就是雲計算的終态表現,或許,Serverless 也可能隻是一個過渡的産物,但對此我們保持着開放的态度,不如将答案交給時間去驗證。

關于作者:

Serverless 工程實踐 | 從雲計算到 Serverless雲計算的誕生從雲計算到 Serverlss什麼是 ServerlessServerless 的發展曆程新書推薦

劉宇(江昱)國防科技大學電子資訊專業在讀博士,阿裡雲 Serverless 産品經理,阿裡雲 Serverless 雲布道師,CIO 學院特聘講師。

負責阿裡雲函數計算(FC)、Serverless 工作流(FNF)等産品體驗側工作。阿裡雲戰略級開源項目 Serverless Devs 發起人和負責人,Serverless Framework、Kubevela 等開源項目 Contributor,兼社群項目 Anycodes 線上程式設計負責人。

著有暢銷書《Serverless架構:從原理、設計到項目實戰》《Serverless工程實踐:從入門到進階》等;電子書《架構師特刊:人人都能學會的 Serverless 實踐》(InfoQ出品)作者。

新書推薦

Serverless 工程實踐 | 從雲計算到 Serverless雲計算的誕生從雲計算到 Serverlss什麼是 ServerlessServerless 的發展曆程新書推薦

Serverless 架構最近幾年越來越火,并在許多領域發揮越來越重要的作用,但是由于 Serverless 架構比較年輕,相對學習資源較少,本書則是一本關于 Serverless 架構從原理、入門到實戰的技術類書籍。讀者通過對本書的閱讀,可以對 Serverless 架構有一個更加全面、直覺地了解。

本書會通過多個開源項目、多個雲廠商的多款雲産品,以及多種途徑向讀者介紹什麼是 Serverless 架構、如何上手 Serverless 架構、不同領域中 Serverless 架構的應用以及如何從零開發一個 Serverless 應用等。本書可以幫助讀者将 Serverless 架構融入到自己所在的領域,把 Serverless 項目真實落地,獲得 Serverless 架構帶來的技術紅利。

立即購買:

https://item.m.jd.com/product/10034197339619.html