公共雲上的無服務器對決

無服務器作為一種雲原生開發模型,可使開發人員專註構建和運行應用,而無需管理服務器。

無服務器方案是將服務器從應用開發中剝離出來,由雲提供商負責置備、維護和擴展服務器基礎架構等例行工作,開發人員只需要簡單地將代碼打包到容器中進行部署。

部署之後,無服務器應用即可響應需求,並根據需要自動擴容。因為無服務器產品是通過事件驅動執行模型來按需計量,所以當無服務器功能閑置時,不會產生費用。

如今,雖然有很多無服務器產品可供我們選擇,但要選出最合適的卻並不容易。這是因為不同的無服務器在實際操作上會有差異,例如,無服務器功能的調用方式和計費方式。

這篇文章會對比三大雲服務提供商的無服務器產品:亞馬遜網絡服務、谷歌雲和微軟Azure。我們會根據成本、集成的難易程度、可集成服務的數量和行業採用指標這四項數據確定最牛的產品。

AWS Lambda發佈於2014年,是第一個可用的無服務器產品,它負責集成AWS產品的觸發器,能執行簡單的HTTP驅動任務。許多公司認為,選擇AWS意味着基礎設施的位置保持不變,因為這些公司的選擇,AWS運行着高達40%的雲市場。

Google Cloud Functions在 Google Cloud 平台上經過漫長的測試期,終於在2018年7月24日全面上市。它與AWS一樣,有許多觸發器可以使用。 Google Cloud Functions,可以完成從簡單的 HTTP 觸發器到由 Cloud Scheduler 和 Cloud Tasks 驅動的工作流分配的任務。

2017年,Microsoft Azure Functions發佈。在測試期間,它逐漸加強與 Azure Functions 與 Microsoft Azure 平台的聯繫。微軟的產品藉助廣泛的注釋和文檔,會為我們正在運行的版本提供觸發器、輸入源或輸出源等服務。

微軟battle谷歌

從功能來看,Microsoft Azure Functions 與 Google Cloud Functions都能提供可擴展的函數基礎架構和滿足無服務器應用程序的大容量。

細節上孰優孰劣,我們可以從函數執行時間、設置/集成的難易程度和定價來看。

首先,大多數公共雲服務基礎架構的執行時間是相近的。Microsoft Azure Functions 和 Google Cloud Functions 本就有相近的冷啟動時間和成本,而自2017年以後,兩者的差距越來越小。

其次,Google Cloud Functions 與 Microsoft Azure Functions 的優勢在於方便設置。雖然微軟Azure功能在配置新項目時具有很大的靈活性,但谷歌的用戶界面展示了更直觀的用戶界面,並提供了更容易理解的選項。

最後看定價,微軟和谷歌根據所使用的資源收取的費用相近,微軟和谷歌每GB/秒和GHz-sec的費用都在0.000016美元左右。當然他們也慷慨保留着免費層,這足以滿足業餘開發人員的需求。

平台的選擇取決於消費獲得的服務。除非我們採用多雲方式,否則面對大同小異的服務集成,我們做出恰當的選擇十分簡單。

比較微軟和AWS

Microsoft Azure Functions 與 AWS Lambda的主要功能是為用戶提供不同的機器配置,以此管理用戶應用程序的全部資源。

這兩種服務的成本相近都是每 GB 秒 0.000016 美元到 0.000017 美元),在操作基礎上也沒有太大的區別。

在用戶界面方面,微軟的優勢是靈活的配置文件格式,讓用戶可以更好地控制運行函數的容器,使用效果超過 AWS 中的 Lambda 函數。

值得一提的是,AWS Lambda 作為遊戲中年齡最大的玩家,具有許多 Microsoft Azure 無法比擬的優勢。

雖然函數執行的時間和冷啟動延遲相差不大,但平台工具中年齡大的比年齡小的成熟很多。預置併發和AWS SAM等工具提供了一層配置和複雜性管理,可大大減輕使用無服務器應用程序的挑戰,無需額外成本。

總體來說,兩者沒有太大差距。

比較谷歌和AWS

通過上面的比較我們得出一個結論:三個平台在執行環境、三級服務集成和成本三項標準勢均力敵。於是我們決定從生態系統的次要特徵上找出差距。

這次是 Google Cloud Functions 與 AWS Lambda 的較量。雖然 Google 的配置流程比 AWS 的好,但是這也讓用戶只停留在了用戶界面上。

而 AWS Lambda 利用 CloudFormation 等工具為開發人員提供了採用基礎設施的選項,大大提高了應用程序架構的所有權和可維護性。

我們再從第三方支持來看,AWS 擁有龐大的用戶群,其生態系統中的第三方工具的類型和種類比 Google Cloud 多得多。

如果沒有足夠的第三方工具,用戶的儀錶板和監控工作將僅限於提供商堆棧中可用的工具,其中一些將難以破譯。

像Thundra這樣的第三方(目前僅在 AWS 上工作)在這些提供商的接口之上添加了附加層,填補了信息流中的漏洞,解決了用戶需要自己修復接口的麻煩。

推薦: AWS

根據以上數據,我們發現大多數無服務器雲提供商都沒有太大差距。如果用戶的應用程序已經在 Microsoft Azure 上運行,那麼在構建無服務器功能時,將 Azure 功能視為替換的首選將是有意義的。

用戶如果可以靈活選擇無服務器功能的的應用程序,我們建議優先選擇 AWS Lambda 。因為在可用性方面,與微軟和谷歌相比,AWS Lambda 的成熟度和周邊生態系統具有明顯優勢,第三方生態系統將其置於其他生態系統之上。

用戶使用 AWS 可以利用 Thundra 等工具全面了解無服務器應用程序,使應用程序提供超出本機儀錶板的洞察力。

AWS憑藉領先的市場份額,以及與 Route 53、API Gateway 和 S3 等服務的輕鬆集成,成為了第三方生態系統部門的大贏家。未來它還會繼續幫助用戶的應用程序可用性更上一層樓。

雷鋒網編譯自:https://thenewstack.io/serverless-on-public-cloud-the-ultimate-showdown/


想在手機閱讀更多Google資訊?下載【香港矽谷】Android應用
分享到Facebook
技術平台: Nasthon Systems