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