0
本文作者: 王起端 | 2021-09-27 18:55 |
無(wú)服務(wù)器作為一種云原生開(kāi)發(fā)模型,可使開(kāi)發(fā)人員專(zhuān)注構(gòu)建和運(yùn)行應(yīng)用,而無(wú)需管理服務(wù)器。
無(wú)服務(wù)器方案是將服務(wù)器從應(yīng)用開(kāi)發(fā)中剝離出來(lái),由云提供商負(fù)責(zé)置備、維護(hù)和擴(kuò)展服務(wù)器基礎(chǔ)架構(gòu)等例行工作,開(kāi)發(fā)人員只需要簡(jiǎn)單地將代碼打包到容器中進(jìn)行部署。
部署之后,無(wú)服務(wù)器應(yīng)用即可響應(yīng)需求,并根據(jù)需要自動(dòng)擴(kuò)容。因?yàn)闊o(wú)服務(wù)器產(chǎn)品是通過(guò)事件驅(qū)動(dòng)執(zhí)行模型來(lái)按需計(jì)量,所以當(dāng)無(wú)服務(wù)器功能閑置時(shí),不會(huì)產(chǎn)生費(fèi)用。
如今,雖然有很多無(wú)服務(wù)器產(chǎn)品可供我們選擇,但要選出最合適的卻并不容易。這是因?yàn)椴煌臒o(wú)服務(wù)器在實(shí)際操作上會(huì)有差異,例如,無(wú)服務(wù)器功能的調(diào)用方式和計(jì)費(fèi)方式。
這篇文章會(huì)對(duì)比三大云服務(wù)提供商的無(wú)服務(wù)器產(chǎn)品:亞馬遜網(wǎng)絡(luò)服務(wù)、谷歌云和微軟Azure。我們會(huì)根據(jù)成本、集成的難易程度、可集成服務(wù)的數(shù)量和行業(yè)采用指標(biāo)這四項(xiàng)數(shù)據(jù)確定最牛的產(chǎn)品。
AWS Lambda發(fā)布于2014年,是第一個(gè)可用的無(wú)服務(wù)器產(chǎn)品,它負(fù)責(zé)集成AWS產(chǎn)品的觸發(fā)器,能執(zhí)行簡(jiǎn)單的HTTP驅(qū)動(dòng)任務(wù)。許多公司認(rèn)為,選擇AWS意味著基礎(chǔ)設(shè)施的位置保持不變,因?yàn)檫@些公司的選擇,AWS運(yùn)行著高達(dá)40%的云市場(chǎng)。
Google Cloud Functions在 Google Cloud 平臺(tái)上經(jīng)過(guò)漫長(zhǎng)的測(cè)試期,終于在2018年7月24日全面上市。它與AWS一樣,有許多觸發(fā)器可以使用。 Google Cloud Functions,可以完成從簡(jiǎn)單的 HTTP 觸發(fā)器到由 Cloud Scheduler 和 Cloud Tasks 驅(qū)動(dòng)的工作流分配的任務(wù)。
2017年,Microsoft Azure Functions發(fā)布。在測(cè)試期間,它逐漸加強(qiáng)與 Azure Functions 與 Microsoft Azure 平臺(tái)的聯(lián)系。微軟的產(chǎn)品借助廣泛的注釋和文檔,會(huì)為我們正在運(yùn)行的版本提供觸發(fā)器、輸入源或輸出源等服務(wù)。
微軟battle谷歌
從功能來(lái)看,Microsoft Azure Functions 與 Google Cloud Functions都能提供可擴(kuò)展的函數(shù)基礎(chǔ)架構(gòu)和滿足無(wú)服務(wù)器應(yīng)用程序的大容量。
細(xì)節(jié)上孰優(yōu)孰劣,我們可以從函數(shù)執(zhí)行時(shí)間、設(shè)置/集成的難易程度和定價(jià)來(lái)看。
首先,大多數(shù)公共云服務(wù)基礎(chǔ)架構(gòu)的執(zhí)行時(shí)間是相近的。Microsoft Azure Functions 和 Google Cloud Functions 本就有相近的冷啟動(dòng)時(shí)間和成本,而自2017年以后,兩者的差距越來(lái)越小。
其次,Google Cloud Functions 與 Microsoft Azure Functions 的優(yōu)勢(shì)在于方便設(shè)置。雖然微軟Azure功能在配置新項(xiàng)目時(shí)具有很大的靈活性,但谷歌的用戶界面展示了更直觀的用戶界面,并提供了更容易理解的選項(xiàng)。
最后看定價(jià),微軟和谷歌根據(jù)所使用的資源收取的費(fèi)用相近,微軟和谷歌每GB/秒和GHz-sec的費(fèi)用都在0.000016美元左右。當(dāng)然他們也慷慨保留著免費(fèi)層,這足以滿足業(yè)余開(kāi)發(fā)人員的需求。
平臺(tái)的選擇取決于消費(fèi)獲得的服務(wù)。除非我們采用多云方式,否則面對(duì)大同小異的服務(wù)集成,我們做出恰當(dāng)?shù)倪x擇十分簡(jiǎn)單。
比較微軟和AWS
Microsoft Azure Functions 與 AWS Lambda的主要功能是為用戶提供不同的機(jī)器配置,以此管理用戶應(yīng)用程序的全部資源。
這兩種服務(wù)的成本相近都是每 GB 秒 0.000016 美元到 0.000017 美元),在操作基礎(chǔ)上也沒(méi)有太大的區(qū)別。
在用戶界面方面,微軟的優(yōu)勢(shì)是靈活的配置文件格式,讓用戶可以更好地控制運(yùn)行函數(shù)的容器,使用效果超過(guò) AWS 中的 Lambda 函數(shù)。
值得一提的是,AWS Lambda 作為游戲中年齡最大的玩家,具有許多 Microsoft Azure 無(wú)法比擬的優(yōu)勢(shì)。
雖然函數(shù)執(zhí)行的時(shí)間和冷啟動(dòng)延遲相差不大,但平臺(tái)工具中年齡大的比年齡小的成熟很多。預(yù)置并發(fā)和AWS SAM等工具提供了一層配置和復(fù)雜性管理,可大大減輕使用無(wú)服務(wù)器應(yīng)用程序的挑戰(zhàn),無(wú)需額外成本。
總體來(lái)說(shuō),兩者沒(méi)有太大差距。
比較谷歌和AWS
通過(guò)上面的比較我們得出一個(gè)結(jié)論:三個(gè)平臺(tái)在執(zhí)行環(huán)境、三級(jí)服務(wù)集成和成本三項(xiàng)標(biāo)準(zhǔn)勢(shì)均力敵。于是我們決定從生態(tài)系統(tǒng)的次要特征上找出差距。
這次是 Google Cloud Functions 與 AWS Lambda 的較量。雖然 Google 的配置流程比 AWS 的好,但是這也讓用戶只停留在了用戶界面上。
而 AWS Lambda 利用 CloudFormation 等工具為開(kāi)發(fā)人員提供了采用基礎(chǔ)設(shè)施的選項(xiàng),大大提高了應(yīng)用程序架構(gòu)的所有權(quán)和可維護(hù)性。
我們?cè)購(gòu)牡谌街С謥?lái)看,AWS 擁有龐大的用戶群,其生態(tài)系統(tǒng)中的第三方工具的類(lèi)型和種類(lèi)比 Google Cloud 多得多。
如果沒(méi)有足夠的第三方工具,用戶的儀表板和監(jiān)控工作將僅限于提供商堆棧中可用的工具,其中一些將難以破譯。
像Thundra這樣的第三方(目前僅在 AWS 上工作)在這些提供商的接口之上添加了附加層,填補(bǔ)了信息流中的漏洞,解決了用戶需要自己修復(fù)接口的麻煩。
推薦: AWS
根據(jù)以上數(shù)據(jù),我們發(fā)現(xiàn)大多數(shù)無(wú)服務(wù)器云提供商都沒(méi)有太大差距。如果用戶的應(yīng)用程序已經(jīng)在 Microsoft Azure 上運(yùn)行,那么在構(gòu)建無(wú)服務(wù)器功能時(shí),將 Azure 功能視為替換的首選將是有意義的。
用戶如果可以靈活選擇無(wú)服務(wù)器功能的的應(yīng)用程序,我們建議優(yōu)先選擇 AWS Lambda 。因?yàn)樵诳捎眯苑矫?,與微軟和谷歌相比,AWS Lambda 的成熟度和周邊生態(tài)系統(tǒng)具有明顯優(yōu)勢(shì),第三方生態(tài)系統(tǒng)將其置于其他生態(tài)系統(tǒng)之上。
用戶使用 AWS 可以利用 Thundra 等工具全面了解無(wú)服務(wù)器應(yīng)用程序,使應(yīng)用程序提供超出本機(jī)儀表板的洞察力。
AWS憑借領(lǐng)先的市場(chǎng)份額,以及與 Route 53、API Gateway 和 S3 等服務(wù)的輕松集成,成為了第三方生態(tài)系統(tǒng)部門(mén)的大贏家。未來(lái)它還會(huì)繼續(xù)幫助用戶的應(yīng)用程序可用性更上一層樓。
雷鋒網(wǎng)編譯自:https://thenewstack.io/serverless-on-public-cloud-the-ultimate-showdown/
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。