0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

無(wú)服務(wù)器計(jì)算的時(shí)間和費(fèi)用節(jié)省方法

nandaqiang ? 來(lái)源:今日頭條 ? 作者:新鈦云服 ? 2020-05-05 21:17 ? 次閱讀

獨(dú)立簡(jiǎn)單的功能使開(kāi)發(fā)更容易,事件驅(qū)動(dòng)的執(zhí)行使操作性價(jià)比更高!

開(kāi)發(fā)人員花費(fèi)無(wú)數(shù)個(gè)小時(shí)用代碼解決業(yè)務(wù)問(wèn)題。 然后輪到ops團(tuán)隊(duì)花費(fèi)無(wú)數(shù)個(gè)小時(shí),首先弄清楚如何獲得開(kāi)發(fā)人員在任何可用計(jì)算機(jī)上編寫和運(yùn)行的代碼,然后確保這些計(jì)算機(jī)順利運(yùn)行。第二部分真的是一項(xiàng)永無(wú)止境的任務(wù)。 為什么不將這部分留給別人呢?

在過(guò)去二十年中,IT的許多創(chuàng)新:虛擬化,云計(jì)算,容器 ,一直專注于確保不必過(guò)多考慮代碼運(yùn)行的底層物理機(jī)器。無(wú)服務(wù)器計(jì)算是一種越來(lái)越流行的范式,它將這種愿望用于其邏輯結(jié)論:使用無(wú)服務(wù)器計(jì)算,你無(wú)需了解代碼運(yùn)行的硬件操作系統(tǒng),因?yàn)榉?wù)提供商都會(huì)為你提供服務(wù)。

什么是無(wú)服務(wù)器計(jì)算?

無(wú)服務(wù)器計(jì)算是云的執(zhí)行模型,云提供商在其中動(dòng)態(tài)分配,然后僅為執(zhí)行特定代碼片段所需的計(jì)算資源和存儲(chǔ)向用戶收費(fèi)。當(dāng)然,仍然涉及服務(wù)器,但它們的供應(yīng)和維護(hù)完全由提供商負(fù)責(zé)。亞馬遜無(wú)服務(wù)器的倡導(dǎo)者Chris Munns在2017年的會(huì)議上表示,從團(tuán)隊(duì)編寫和部署代碼的角度來(lái)看,“根本沒(méi)有服務(wù)器可以管理或配置。這包括沒(méi)有裸機(jī),沒(méi)有虛擬,沒(méi)有容器,任何涉及你管理主機(jī),修補(bǔ)主機(jī)或在操作系統(tǒng)級(jí)別處理任何東西的東西,都不是你應(yīng)該做的事情。這就是無(wú)服務(wù)器的世界?!?/p>

正如開(kāi)發(fā)人員Mike Roberts所解釋的那樣,該術(shù)語(yǔ)曾被用于所謂的后端即服務(wù)場(chǎng)景,其中移動(dòng)應(yīng)用程序?qū)⑦B接到完全托管在云中的后端服務(wù)器。但是今天,當(dāng)人們談?wù)摕o(wú)服務(wù)器計(jì)算或無(wú)服務(wù)器架構(gòu)時(shí),它們意味著功能即服務(wù)產(chǎn)品,其中客戶編寫的代碼只解決業(yè)務(wù)邏輯并將其上傳到提供商。該提供程序負(fù)責(zé)所有硬件配置,虛擬機(jī)和容器管理,甚至是多線程等通常內(nèi)置于應(yīng)用程序代碼中的任務(wù)。

無(wú)服務(wù)器函數(shù)是事件驅(qū)動(dòng)的,這意味著只有在請(qǐng)求觸發(fā)時(shí)才會(huì)調(diào)用代碼。提供商僅對(duì)該執(zhí)行所使用的計(jì)算時(shí)間收費(fèi),而不是維護(hù)物理或虛擬服務(wù)器的固定月費(fèi)。這些功能可以連接在一起以創(chuàng)建處理管道,或者它們可以作為更大應(yīng)用程序的組件,與在容器中或在傳統(tǒng)服務(wù)器上運(yùn)行的其他代碼交互。

無(wú)服務(wù)器計(jì)算的優(yōu)點(diǎn)和缺點(diǎn)

從該描述中,無(wú)服務(wù)器計(jì)算的兩個(gè)最大好處應(yīng)該是明確的:開(kāi)發(fā)人員可以專注于他們編寫的代碼的業(yè)務(wù)目標(biāo),而不是基礎(chǔ)設(shè)施問(wèn)題;組織只需要以非常精細(xì)的方式支付他們實(shí)際使用的計(jì)算資源,而不是購(gòu)買物理硬件或租用大多數(shù)閑置的云實(shí)例。

正如Bernard Golden指出的那樣,后一點(diǎn)對(duì)事件驅(qū)動(dòng)的應(yīng)用程序特別有益。例如,你可能有一個(gè)大部分時(shí)間處于空閑狀態(tài)的應(yīng)用程序,但在某些條件下必須同時(shí)處理許多事件請(qǐng)求?;蛘?,你可能擁有一個(gè)應(yīng)用程序來(lái)處理從具有有限或間歇性Internet連接的IoT設(shè)備發(fā)送的數(shù)據(jù)。在這兩種情況下,傳統(tǒng)方法都需要配置一個(gè)能夠處理峰值工作能力的強(qiáng)大服務(wù)器,但是大多數(shù)時(shí)候服務(wù)器都未得到充分利用。使用無(wú)服務(wù)器架構(gòu),你只需為實(shí)際使用的服務(wù)器資源付費(fèi)。無(wú)服務(wù)器計(jì)算也適用于特定類型的批處理。無(wú)服務(wù)器架構(gòu)用例的規(guī)范示例之一是上載和處理一系列單個(gè)圖像文件并將它們發(fā)送到應(yīng)用程序的另一部分的服務(wù)。

也許無(wú)服務(wù)器功能最明顯的缺點(diǎn)是,它們是故意短暫的,正如AlexSoft所說(shuō),“不適合長(zhǎng)期任務(wù)?!贝蠖鄶?shù)無(wú)服務(wù)器提供商不會(huì)讓你的代碼執(zhí)行超過(guò)幾分鐘,當(dāng)你啟動(dòng)一個(gè)函數(shù),它不會(huì)保留以前運(yùn)行的實(shí)例中的任何有狀態(tài)數(shù)據(jù)。一個(gè)相關(guān)的問(wèn)題是,無(wú)服務(wù)器代碼可能需要幾秒鐘才能啟動(dòng),對(duì)于許多用例而言不是問(wèn)題,但是如果你的應(yīng)用程序需要低延遲,則需要發(fā)出警告。

正如Rohit Akiwatkar和Gary Arora所指出的,許多其他缺點(diǎn)都與供應(yīng)商鎖定有關(guān)。盡管有可用的開(kāi)源選項(xiàng),但無(wú)服務(wù)器市場(chǎng)由大型商業(yè)云提供商主導(dǎo),我們將在稍后討論。這意味著開(kāi)發(fā)人員通常最終會(huì)使用其供應(yīng)商提供的工具,這使得如果他們變得不滿意就很難切換。而且,根據(jù)定義,在供應(yīng)商的基礎(chǔ)架構(gòu)上進(jìn)行了大量無(wú)服務(wù)器計(jì)算,將無(wú)服務(wù)器代碼集成到內(nèi)部開(kāi)發(fā)和測(cè)試管道中可能很困難。

無(wú)服務(wù)器供應(yīng)商:AWS Lambda,Azure Functions和Google Cloud Functions

無(wú)服務(wù)器計(jì)算的現(xiàn)代時(shí)代始于2014年基于亞馬遜云服務(wù)的AWS Lambda的推出。微軟于2016年推出了Azure Functions。自2017年以來(lái)一直處于測(cè)試階段的Google Cloud Functions終于達(dá)到了生產(chǎn)狀態(tài),這三種服務(wù)的局限性,優(yōu)勢(shì),支持的語(yǔ)言和做事方式略有不同。 Rohit Akiwatkar對(duì)這三者之間的區(qū)別進(jìn)行了詳細(xì)而詳細(xì)的描述。運(yùn)行中還有IBM Cloud Functions,它基于開(kāi)源的Apache OpenWhisk平臺(tái)。

在所有無(wú)服務(wù)器計(jì)算平臺(tái)中,AWS Lambda是最突出的,顯然已經(jīng)有最多的時(shí)間來(lái)發(fā)展和成熟。

無(wú)服務(wù)器堆棧

與許多軟件領(lǐng)域的情況一樣,無(wú)服務(wù)器世界已經(jīng)看到了軟件堆棧的發(fā)展,這些軟件堆疊了構(gòu)建無(wú)服務(wù)器應(yīng)用程序所需的不同組件。每個(gè)堆棧都包含一個(gè)你要編寫代碼的編程語(yǔ)言,一個(gè)為你的代碼提供結(jié)構(gòu)的應(yīng)用程序框架,以及一組平臺(tái)將理解并用于啟動(dòng)代碼執(zhí)行的觸發(fā)器。

雖然你可以混合使用這些類別中的不同特定產(chǎn)品,但根據(jù)你使用的供應(yīng)商存在一些限制,但存在一些重疊。例如,對(duì)于語(yǔ)言,你可以在AWS Lambda上使用Node.js,Java,Go,C#和Python,但只有JavaScript,C#和F#在Azure Functions上工作。在涉及觸發(fā)器時(shí),AWS Lambda擁有最長(zhǎng)的列表,但其中許多都是特定于AWS平臺(tái)的,如Amazon Simple Email Service和AWS CodeCommit;同時(shí),Google Cloud Functions可以由通用HTTP請(qǐng)求觸發(fā)。保羅·賈沃斯基(Paul Jaworski)深入研究了三大產(chǎn)品中的每一個(gè)產(chǎn)品的堆棧。

無(wú)服務(wù)器框架

這個(gè)方程式的框架部分有點(diǎn)遺憾,因?yàn)檫@將很好地定義了如何最終構(gòu)建應(yīng)用程序。亞馬遜有自己的原生產(chǎn)品,即開(kāi)源的無(wú)服務(wù)器應(yīng)用程序模型(SAM),但也有其他產(chǎn)品,其中大多數(shù)是跨平臺(tái)的,也是開(kāi)源的。其中最流行的是無(wú)服務(wù)器,并且強(qiáng)調(diào)它為每個(gè)支持的平臺(tái)提供相同的體驗(yàn),即AWS Lambda,Azure Functions,Google Cloud Functions和IBM OpenWhisk。另一個(gè)受歡迎的產(chǎn)品是Apex,它可以幫助某些提供商無(wú)法使用某些語(yǔ)言。

無(wú)服務(wù)器數(shù)據(jù)庫(kù)

正如我們上面提到的,使用無(wú)服務(wù)器代碼的一個(gè)怪癖是沒(méi)有持久狀態(tài),這意味著局部變量的值不會(huì)在實(shí)例化中持續(xù)存在。你的代碼需要訪問(wèn)的任何持久性數(shù)據(jù)必須存儲(chǔ)在其他位置,并且主要供應(yīng)商的堆棧中可用的觸發(fā)器都包含你的函數(shù)可以與之交互的數(shù)據(jù)庫(kù)。

其中一些數(shù)據(jù)庫(kù)本身是無(wú)服務(wù)器。這意味著它們的行為與我們?cè)诒疚闹杏懻摰钠渌麩o(wú)服務(wù)器函數(shù)非常相似,但顯而易見(jiàn)的例外是數(shù)據(jù)無(wú)限期存儲(chǔ)。但是,配置和維護(hù)數(shù)據(jù)庫(kù)所涉及的大部分管理開(kāi)銷都被拋棄了。正如開(kāi)發(fā)人員Jeremy Daly所說(shuō),“你需要做的就是配置一個(gè)集群,然后為你自動(dòng)處理所有維護(hù),修補(bǔ),備份,復(fù)制和擴(kuò)展?!迸c功能即服務(wù)產(chǎn)品一樣,你只需支付實(shí)際使用的計(jì)算時(shí)間,并根據(jù)需要調(diào)高和調(diào)低資源以滿足需求。

三大無(wú)服務(wù)器提供商各自提供自己的無(wú)服務(wù)器數(shù)據(jù)庫(kù):亞馬遜擁有Aurora無(wú)服務(wù)器和DynamoDB,微軟擁有Azure Cosmos數(shù)據(jù)庫(kù),Google擁有Cloud Firestore。

無(wú)服務(wù)器計(jì)算和Kubernetes

容器有助于為無(wú)服務(wù)器技術(shù)提供動(dòng)力,管理它們的開(kāi)銷由供應(yīng)商負(fù)責(zé),因此對(duì)用戶不可見(jiàn)。許多人認(rèn)為無(wú)服務(wù)器計(jì)算是一種在不必處理其復(fù)雜性的情況下,獲得容器化微服務(wù)的許多優(yōu)點(diǎn)的方法,甚至開(kāi)始談?wù)摵笕萜魇澜纭?/p>

實(shí)際上,容器和無(wú)服務(wù)器計(jì)算幾乎肯定會(huì)在未來(lái)許多年內(nèi)共存,無(wú)服務(wù)器功能可以與容器化微服務(wù)存在于同一應(yīng)用程序中。Kubernetes是最受歡迎的容器編排平臺(tái),也可以管理無(wú)服務(wù)器基礎(chǔ)架構(gòu)。使用Kubernetes,可以在單個(gè)集群上集成不同類型的服務(wù)。

無(wú)服務(wù)器的離線

你可能會(huì)發(fā)現(xiàn)無(wú)服務(wù)器計(jì)算開(kāi)始的前景有點(diǎn)令人生畏,因?yàn)槟闼坪跣枰c供應(yīng)商簽約才能玩,并了解它是如何工作的。但不要擔(dān)心:有些方法可以在你自己的本地硬件上脫機(jī)運(yùn)行無(wú)服務(wù)器代碼。例如,AWS SAM提供了一個(gè)本地功能,允許你脫機(jī)測(cè)試Lambda代碼。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AWS
    AWS
    +關(guān)注

    關(guān)注

    0

    文章

    423

    瀏覽量

    24254
  • 無(wú)服務(wù)器
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    4054
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    時(shí)間服務(wù)器有哪些類型

    時(shí)間服務(wù)器是一種計(jì)算機(jī)網(wǎng)絡(luò)儀器,它主要負(fù)責(zé)從參考時(shí)鐘獲取實(shí)際時(shí)間,并通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)將這些時(shí)間信息
    的頭像 發(fā)表于 09-29 17:00 ?167次閱讀

    美國(guó)云服務(wù)器租賃費(fèi)用怎么算

    美國(guó),作為云計(jì)算技術(shù)的先驅(qū)和全球數(shù)據(jù)中心的重要聚集地,其云服務(wù)器租賃服務(wù)不僅種類繁多,而且價(jià)格體系也相對(duì)復(fù)雜。下面,rak小編幫您深入了解美國(guó)云服務(wù)器租賃
    的頭像 發(fā)表于 09-27 09:31 ?109次閱讀

    費(fèi)用外國(guó)云服務(wù)器靠譜嗎?

    費(fèi)用外國(guó)云服務(wù)器在特定條件下可以考慮為靠譜,但需要用戶綜合考慮多個(gè)因素,以確保選擇的服務(wù)器既能滿足需求又能保證性價(jià)比。低費(fèi)用外國(guó)云服務(wù)器
    的頭像 發(fā)表于 08-30 11:19 ?131次閱讀

    美國(guó)硅谷raksmart站群裸機(jī)服務(wù)器租用費(fèi)用分析

    RAKsmart是一家提供數(shù)據(jù)中心服務(wù)的公司,其在美國(guó)硅谷擁有數(shù)據(jù)中心,并提供包括站群裸機(jī)服務(wù)器在內(nèi)的多種服務(wù)器租賃服務(wù)。站群服務(wù)器通常用于
    的頭像 發(fā)表于 08-29 10:05 ?133次閱讀

    影響服務(wù)器托管費(fèi)用的主要因素

    服務(wù)器托管是指將服務(wù)器放置在專業(yè)的數(shù)據(jù)中心(IDC)內(nèi),由數(shù)據(jù)中心提供必要的物理環(huán)境(如電力、冷卻、安全等)以及網(wǎng)絡(luò)連接服務(wù)。對(duì)于企業(yè)和組織來(lái)說(shuō),服務(wù)器托管是一種經(jīng)濟(jì)高效的方式來(lái)保證其
    的頭像 發(fā)表于 07-29 09:48 ?183次閱讀

    IaaS云服務(wù)器的優(yōu)勢(shì)是什么?

    計(jì)算的基本定義是,使用部署在遠(yuǎn)程機(jī)器/系統(tǒng)上的計(jì)算資源(硬件/軟件),并通過(guò)網(wǎng)絡(luò)(私人/公共)作為服務(wù)交付給最終用戶。 IaaS云計(jì)算(云服務(wù)器
    的頭像 發(fā)表于 07-18 11:53 ?389次閱讀

    華為云函數(shù)工作流:引領(lǐng)未來(lái)無(wú)服務(wù)器計(jì)算時(shí)代

    在當(dāng)今數(shù)字化飛速發(fā)展的時(shí)代,企業(yè)和個(gè)人對(duì)于計(jì)算資源的需求越來(lái)越高,但傳統(tǒng)的服務(wù)器架構(gòu)帶來(lái)的管理成本和資源浪費(fèi)問(wèn)題也愈發(fā)凸顯。為解決這一難題,華為云引領(lǐng)著無(wú)服務(wù)器
    的頭像 發(fā)表于 05-27 10:50 ?292次閱讀
    華為云函數(shù)工作流:引領(lǐng)未來(lái)<b class='flag-5'>無(wú)</b><b class='flag-5'>服務(wù)器</b><b class='flag-5'>計(jì)算</b>時(shí)代

    智慧時(shí)間同步解決方案——NTP網(wǎng)絡(luò)時(shí)間服務(wù)器

    需要同步時(shí)間的設(shè)備,如個(gè)人計(jì)算機(jī)、服務(wù)器、控制等設(shè)備就可以與國(guó)際標(biāo)準(zhǔn)的時(shí)間進(jìn)行同步。 用在在大型的網(wǎng)絡(luò)環(huán)境中,可以實(shí)現(xiàn)
    的頭像 發(fā)表于 05-15 14:29 ?422次閱讀
    智慧<b class='flag-5'>時(shí)間</b>同步解決方案——NTP網(wǎng)絡(luò)<b class='flag-5'>時(shí)間</b><b class='flag-5'>服務(wù)器</b>

    NTP網(wǎng)絡(luò)時(shí)鐘同步服務(wù)器(授時(shí)服務(wù)器)的幾種設(shè)置方法

    NTP網(wǎng)絡(luò)時(shí)鐘同步服務(wù)器(授時(shí)服務(wù)器)的幾種設(shè)置方法
    的頭像 發(fā)表于 04-29 11:28 ?7021次閱讀
    NTP網(wǎng)絡(luò)時(shí)鐘同步<b class='flag-5'>服務(wù)器</b>(授時(shí)<b class='flag-5'>服務(wù)器</b>)的幾種設(shè)置<b class='flag-5'>方法</b>

    NTP網(wǎng)絡(luò)時(shí)間服務(wù)器,保障您的計(jì)算機(jī)系統(tǒng)時(shí)間精準(zhǔn)!

    而顯示不同的時(shí)間,因?yàn)樗鼈冇?jì)時(shí)的速率會(huì)略有差異。時(shí)鐘計(jì)時(shí)速率的差異會(huì)造成多種問(wèn)題,但已有多種解決方案,最佳的解決方案須由實(shí)際情況決定。 NTP服務(wù)器的概念 NTP時(shí)間服務(wù)器是針對(duì)自動(dòng)化
    的頭像 發(fā)表于 04-29 10:33 ?345次閱讀
    NTP網(wǎng)絡(luò)<b class='flag-5'>時(shí)間</b><b class='flag-5'>服務(wù)器</b>,保障您的<b class='flag-5'>計(jì)算</b>機(jī)系統(tǒng)<b class='flag-5'>時(shí)間</b>精準(zhǔn)!

    gpu服務(wù)器是干什么的 gpu服務(wù)器與cpu服務(wù)器的區(qū)別有哪些

    gpu服務(wù)器是干什么的 gpu服務(wù)器與cpu服務(wù)器的區(qū)別 GPU服務(wù)器是一種專門用于處理圖形運(yùn)算的服務(wù)器,而CPU
    的頭像 發(fā)表于 01-30 15:31 ?761次閱讀

    何為網(wǎng)絡(luò)時(shí)間服務(wù)器?網(wǎng)絡(luò)時(shí)間服務(wù)器如何同步虛擬時(shí)間?

    何為網(wǎng)絡(luò)時(shí)間服務(wù)器?網(wǎng)絡(luò)時(shí)間服務(wù)器如何同步虛擬時(shí)間? 網(wǎng)絡(luò)時(shí)間
    的頭像 發(fā)表于 01-16 15:10 ?561次閱讀

    北斗時(shí)間服務(wù)器的優(yōu)點(diǎn)有哪些?

    北斗時(shí)間服務(wù)器是一種基于北斗衛(wèi)星導(dǎo)航系統(tǒng)的時(shí)間同步服務(wù)器。與GPS時(shí)鐘同步服務(wù)器類似,北斗時(shí)間
    的頭像 發(fā)表于 01-16 13:26 ?314次閱讀

    海外網(wǎng)站租用服務(wù)器費(fèi)用是多少?如何降低服務(wù)器租用成本?

    對(duì)于想要在海外運(yùn)營(yíng)網(wǎng)站的企業(yè),在選擇服務(wù)器時(shí),除了需要關(guān)注服務(wù)器性能和穩(wěn)定性外,也需要對(duì)服務(wù)器租用費(fèi)用進(jìn)行預(yù)估和評(píng)估。那么,海外網(wǎng)站租用服務(wù)器
    的頭像 發(fā)表于 11-01 15:27 ?1370次閱讀

    NTP網(wǎng)絡(luò)時(shí)間服務(wù)器,保障您的計(jì)算機(jī)系統(tǒng)時(shí)間精準(zhǔn)!

    而顯示不同的時(shí)間,因?yàn)樗鼈冇?jì)時(shí)的速率會(huì)略有差異。時(shí)鐘計(jì)時(shí)速率的差異會(huì)造成多種問(wèn)題,但已有多種解決方案,最佳的解決方案須由實(shí)際情況決定。 NTP服務(wù)器的概念 NTP時(shí)間服務(wù)器是針對(duì)自動(dòng)化
    的頭像 發(fā)表于 10-25 16:06 ?391次閱讀
    NTP網(wǎng)絡(luò)<b class='flag-5'>時(shí)間</b><b class='flag-5'>服務(wù)器</b>,保障您的<b class='flag-5'>計(jì)算</b>機(jī)系統(tǒng)<b class='flag-5'>時(shí)間</b>精準(zhǔn)!