<var id="1dltj"><strike id="1dltj"></strike></var>
<var id="1dltj"></var>
<var id="1dltj"></var>
<var id="1dltj"></var>
<menuitem id="1dltj"></menuitem>
<var id="1dltj"></var> <var id="1dltj"><strike id="1dltj"></strike></var>
<var id="1dltj"><strike id="1dltj"></strike></var>
<menuitem id="1dltj"></menuitem> <var id="1dltj"></var>
<cite id="1dltj"></cite>
<cite id="1dltj"></cite>
<var id="1dltj"></var><menuitem id="1dltj"></menuitem>
<var id="1dltj"></var>

神秘的“無服務器”架構,怎么禿然火了?

2021-07-02

如果問云計算有哪些很火技術趨勢,那么“無服務器架構必屬其一。但這個詞兒很多人乍聽都會一臉“懵逼”…

神秘的“無服務器”架構,怎么禿然火了?


今天,我們把這項神秘的技術,聊深、聊透~~

神秘的“無服務器”架構,怎么禿然火了?


到底什么是“無服務器”架構?


“無服務器”架構,又稱為“Serverless”,但它并非沒有服務器,確切地說,根本離不開服務器。


只是,這種架構可以讓使用者,不必再關注“服務器”:? 用了多少服務器 ? 用了什么樣的服務器 ? 如何配置和管理這些服務器…


使用者只需要關注業務邏輯、關注代碼本身,其它的事情,統統由“云老母親”搞定!

神秘的“無服務器”架構,怎么禿然火了?


這,是“無服務器”架構的初衷,也代表了云計算“進化”的最新方向。


從集中式、本地化部署的傳統數據中心,到以服務器虛擬化為標志的IaaS服務,再到容器和K8S引領的云原生架構,云廠商們用“保姆式”的托管服務,把用戶從IT基礎設施的部署和運維中逐步“解放”出來。

神秘的“無服務器”架構,怎么禿然火了?


而“無服務器”架構,更是幾乎做到了“徹底解放”,用戶只需要關注代碼和業務流程,其它的統統不用管?。?/p>

哦,不對,還要管付費

神秘的“無服務器”架構,怎么禿然火了?


~


但典型Serverless服務的收費方式,跟我們以前可大不一樣!


從前,租個虛機或者搭個K8S容器集群,不管你用不用,不管你系統開銷是100%還是1%,只要租了,就要掏錢(關了機也得收錢

神秘的“無服務器”架構,怎么禿然火了?


)。

神秘的“無服務器”架構,怎么禿然火了?


而“無服務器”架構,則采用“事件觸發”的方式,來調用服務。你有活兒的時候,讓工頭(比如API網關)喊它過來搬磚,一堆磚搬完用了幾次,那就按次數給工錢。

神秘的“無服務器”架構,怎么禿然火了?


Serverless服務在搬磚的時候,會不會摸魚怠工呢?完全不用擔心!

Serverless一個更重要的特征,就是“快”——

神秘的“無服務器”架構,怎么禿然火了?


跟前輩們相比,Serverless玩的就是極致彈性,前所未有滴“快”:服務加載,毫秒級!運行周期,秒級!


你還沒看清怎么回事,人家已經“嗖嗖嗖”把磚都搬完了。

神秘的“無服務器”架構,怎么禿然火了?


神秘的“無服務器”架構,怎么禿然火了?


但有人會擔心,磚堆太大,一次搬不完,要是搬個成千上萬次,豈不虧大了?還不如雇個云主機“長工”劃算,畢竟能保底啊。


好像有點兒道理,但這種思維慣性明顯不符合「現代云計算」的趨勢,越是云資源用量大的客戶、越是深度實踐云計算的客戶,越強調對云資源的極致調度,絕不多用,絕不濫用。


而成熟的云服務公司,在這方面跟客戶的追求是一致的,比如像亞馬遜等云大廠,他們的銷售和云架構師,都千方百計地想著幫用戶省錢,而不是忽悠客戶多買點云資源。

神秘的“無服務器”架構,怎么禿然火了?


落實到產品設計上,也是如此,Serverless服務比容器更加“呼之則來揮之則去”,在計費上也更加科學,一分錢都不讓你多花。


比如Amazon Lambda函數計算服務的定價策略,每月前100萬次調用,免費!


同時,根據內存占用的不同,會將這種函數計算服務的搬磚能力,分為三六九等,用戶評估一下自己的“磚垛”,雇不同檔次的人來搬就行了。

神秘的“無服務器”架構,怎么禿然火了?


干完活,算工錢的時候,總共搬了多少次,是一筆錢,用了多大的內存+累計多少秒,再算一筆錢。兩筆錢相加,就是最后的賬單。


前面我們說過,Amazon Lambda每月前100萬次調用免費,同時,每月40萬GB*秒的時長,也免費。


這就意味著,對于很多低頻業務來說,你可以完全“白嫖”了!

神秘的“無服務器”架構,怎么禿然火了?


當然,你有巨量搬磚需求也不用怕,舉個例子,你“雇傭”了一個128M內存的Lambda函數,每月運行3000萬次,每次運行200毫秒,一個月下來要花多少錢呢?11塊6毛3(美金)


而且,這些錢是為你真正使用的資源在買單,一分冤枉錢都沒花!


神秘的“無服務器”架構,怎么禿然火了?


無服務器架構,都包含什么產品形態?


由于Serverless的概念還比較新,所以具體涵蓋的范疇,還有很多爭議。很多人認為,Serverless等同于FaaS——Function as a Service,也就是函數計算。


Amazon Lambda、Azure Functions、Google Functions 都是典型的函數計算服務,有點像我們以前學編程時用的函數,我們把代碼寫到里面,平常放在那里備著,調用的時候,傳遞個參數進去,就給你返回計算結果。

神秘的“無服務器”架構,怎么禿然火了?


本質上講,函數計算(FaaS)其實只是計算資源的“無服務器化”交付,并不能代表Serverless架構的全部。


如果你看公有云市場老大“亞馬遜”的產品架構,就會發現,它家的Serverless產品非常豐富,除函數計算Lambda外,還包括消息服務、身份認證、數據庫…,甚至還包括了著名的對象存儲S3。

神秘的“無服務器”架構,怎么禿然火了?


所以,我們可以這樣理解Serverless的范疇:它應該包含FaaS+BaaS,其中負責計算的FaaS是核心。


圍繞FaaS函數計算,還需要一系列配套的后端服務(消息推送、數據存儲與分析、身份管理、監控與同步…等等),也就是BaaS——Backend as a Service。

神秘的“無服務器”架構,怎么禿然火了?


再引申總結下,云上所有全托管的、無縫擴展的、基于事件觸發和API調用的服務,都可以算作是“無服務器”架構 。按照這個定義,你會發現,Amazon S3對象存儲完美符合

神秘的“無服務器”架構,怎么禿然火了?


。


再比如云數據庫,我們通常都把云數據庫,歸入到PaaS的范疇,但Amazon DynamoDB是個另類——

神秘的“無服務器”架構,怎么禿然火了?


Amazon DynamoDB 完全托管、無縫擴展。容量有多大?根本摸不到底

神秘的“無服務器”架構,怎么禿然火了?


,吞吐量支持使用者任意設定,數據的查詢和寫入全部通過API來完成。所以,它劃入了Serverless的行列

神秘的“無服務器”架構,怎么禿然火了?


。


看到這里,有些同學可能冒出個想法來:這Serverless怎么看著有點像PaaS呢?

神秘的“無服務器”架構,怎么禿然火了?


關于這個問題,我想引用亞馬遜云架構戰略副總裁Adrian Cockcroft的一句話:“如果你的PaaS能夠有效地在20毫秒內啟動實例并只運行半秒,那么就可以稱之為Serverless”。


說白了,Serverless還是強調極致的“彈性”,細如發絲的顆粒度和摸不到天花板的擴展上限!

神秘的“無服務器”架構,怎么禿然火了?


因此,在“無服務器”架構的大趨勢下,我們再搞web建站,就不應該是“租臺云主機、搭個LAMP架構”的常規思路了,而是要與時俱進,嘗試一下“現代應用開發”新套路。

神秘的“無服務器”架構,怎么禿然火了?


嘗完你會發現,搭建了一個龐大的網站,后臺竟然不再需要一臺web服務器…,驚不驚喜,意不意外?

神秘的“無服務器”架構,怎么禿然火了?


下面呢,我們就用Amazon Web Services來舉例,看看各種Serverless組件是如何配合,來支撐一個“現代應用”。

神秘的“無服務器”架構,怎么禿然火了?


圖片來源:www.guru99.com


①首先,把程序代碼上傳到Lambda里,Lambda幾乎支持所有的主流開發語言,Java、Python、Go、C#什么的。代碼囤在里面,但此時不需要付費。

②下面這些五花八門的服務(應用網關、存儲/分析、消息服務等),會響應你的各種需求,并“喚醒Lambda干活”,比如API Gateway會響應APP客戶端的訪問要求,進而去觸發Lambda。

③Lambda收好代碼,整裝待發。

④收到“喚醒”(trigger)需求后,Lambda開始“搬磚”,此時它也會通過API跟下面其他服務互動,比如從S3讀寫數據,從DynamoDB查詢數據……

⑤“搬完磚”才找你收錢,不搬不要錢。


咋樣?這種“靜如處子動如脫兔”的體驗,是不是很棒

神秘的“無服務器”架構,怎么禿然火了?


神秘的“無服務器”架構,怎么禿然火了?


“無服務器”架構無所不能嗎?


就像我們前面“安利”的那樣,Serverless架構“成本低、彈性高、0運維”,是云原生時代的“大殺器”。


但Serverless架構也并非無所不能,我們不妨先來看看它最適合干什么?


負載波動大、平均利用率低、業務邏輯和工作流程復雜的場景,都非常適合用Serverless架構。

神秘的“無服務器”架構,怎么禿然火了?


神秘的“無服務器”架構,怎么禿然火了?


神秘的“無服務器”架構,怎么禿然火了?


比如說,IoT業務,大部分時刻,都是“低頻請求”,如果全天候“支棱”著一臺服務器,守在那里,實在是暴殄天物。

神秘的“無服務器”架構,怎么禿然火了?


此時如果使用“無服務器”架構,平常不占任何算力資源,有業務請求的時候,立刻觸發一個“函數計算”任務,干完活,瞬間釋放掉。


當“低頻”突然變“高頻”,也完全沒問題,毫秒級拉起一堆兄弟來干活,即便海量的IoT終端一起來“擠兌”,那都不是事兒,比虛機、容器的AutoScaling更快。


同理,對于一些流量突發型的互聯網業務,比如電商秒殺,用Serverless架構來實現,是最科學的。

神秘的“無服務器”架構,怎么禿然火了?


但是,有一類場景,就不太適合使用函數計算:那就是在線直播類的業務,需要保持一個長連接,持續時間可能長達幾個小時。


以Amazon Lambda函數計算為例,每個“計算”任務的最長生存期是15分鐘,(15分鐘都還沒干完,您可以考慮用容器或VM了),所以,就不適合承載這樣的業務。

神秘的“無服務器”架構,怎么禿然火了?


當然,函數計算不合適,并不代表其它Serverless都不合適,這種場景,可以使用AWS Batch或者Fargate創建Serverless容器來運行,時間就沒有限制了。


總結一句話,Serverless雖好,但也不要中毒太深、非Serverless不用。在實際生產環境,可以多種架構混搭,各取所長。彈性、突發的任務,交給“無服務器”架構,恒定的重體力勞動,交給“有服務器“架構。


神秘的“無服務器”架構,怎么禿然火了?


“無服務器架構”哪家強?


Serverless哪家強?那當然是亞馬遜“燈塔云”呀

神秘的“無服務器”架構,怎么禿然火了?


首先,Serverless不止是一種計算服務,更是一種架構,除Lambda函數計算外,“燈塔云”提供了全棧式的Serverless服務,幫助上云企業快速構建動態水平更高的應用。

計算:Lambda、Fargate…

數據庫:DynamoDB、Aurora Serverless…

存儲與數據處理:S3、Athena、Kinesis、Glue…

消息:SQS、SNS…

應用集成:API Gateway、AppSync…

管理與工具:IAM、SSO、CloudTrail…


亞馬遜自身就是“無服務器架構”的深度實踐者,早在2014年就隨著Amazon Lambda的推出,提出了“無服務器”的概念,目前他們正在朝著“全面普及無服務器模式”努力。


如今,無服務器架構的招牌式產品“Lambda”,已經走過了7個年頭,來看一個統計數據,就知道它有多火。

神秘的“無服務器”架構,怎么禿然火了?


增長的背后,是大量企業開始將核心業務“無服務器化”改造,很多客戶日均各函數運行總時長達到900個小時。(而且,沒有1分鐘、沒有1丁點兒資源是在摸魚哦


至于深度使用亞馬遜“無服務器”架構的客戶,就更多了,無法一一列舉,索性我就曬個Logo墻吧

神秘的“無服務器”架構,怎么禿然火了?


神秘的“無服務器”架構,怎么禿然火了?


“燈塔云”在無服務器架構上的統治力,不止體現在服務全、實踐深、客戶多等層面,在打消開發者顧慮、幫助用戶填坑方面,也操碎了心。


比如,有開發者擔心學習成本高,而Lambda就索性一股腦支持了幾乎所有的流行語言;有客戶擔心Serverless不好移植,會被鎖定,亞馬遜就打通了一大票可移植的開源工具。


神秘的“無服務器”架構,怎么禿然火了?


文章來源于特大號 ,作者小黑羊



電話

24小時熱線:

4006-371-379

咨詢電話:

0371-55056677

0371-55056699


舉報

“掃黃打非”舉報專區:


您可以通過郵箱舉報的方式向我們舉報不良信息,將舉報類型、舉報網址、舉報IP、舉報描述、違法截圖以及您的聯系方式等信息發送至我們的郵箱:

support@htuidc.com

又大又粗欧美黑人A片