2021 年值得關注的十個無服務器框架
有大量無服務器框架致力於輕鬆無縫地部署到 AWS Lambda 和其他無服務器雲功能。根據您的應用程序需求和首選編程語言,有一兩個框架可以滿足您的應用程序要求,允許您構建、部署、配置和管理無服務器應用程序的生命週期。您應該閱讀有關每個框架的更多信息,並選擇最適合您的需求和用例的框架。
在本文中,我將重點介紹 2021 年需要關注的十大無服務器框架。
2021 年值得關注的無服務器框架
無服務器計算是一種快速增長的雲技術,由於它提供的靈活性和其他有趣的功能,許多開發人員開始利用它。
無服務器幫助開發人員減輕手動部署和管理應用程序的痛苦,騰出更多時間來創建令人興奮的技術解決方案。
但是 “無服務器” 這個名字往往會產生誤導或有時會被誤解,那麼,無服務器到底是什麼?
什麼是無服務器?
無服務器計算是一種在雲基礎設施上部署和運行應用程序的方式,按使用付費,無需維護雲基礎設施。
與其名稱相反,無服務器只是消除了公司、組織或開發人員實際租用、購買或維護服務器的需要。
什麼是無服務器框架?
無服務器框架是一種以編程語言打包的工具,用於將雲功能和無服務器應用程序部署到雲服務提供商。
無服務器框架和無服務器平臺之間存在差異。
這些是您在 2021 年應該注意的新無服務器框架:
Serverless
Serverless 是迄今爲止使用最廣泛的多雲 Node.js 無服務器框架,可幫助您使用無服務器架構構建不同的應用程序並部署到 AWS Lambda、Azure Functions、Google CloudFunctions 和其他無服務器服務提供商。
無服務器提供了廣泛的功能,包括:
-
多雲部署:無服務器允許您將應用程序打包並部署到多個無服務器服務,包括 AWS、Azure、Google Cloud 等。
-
開源:Serverless 是最受歡迎的開源無服務器框架,在 GitHub 上擁有超過 3.89 萬顆星、4.6 萬個 Forks 和 857 名貢獻者。
-
支持多種語言:Serverless 支持 Node.js、Python、Java、Go、C#、Ruby、Swift、Kotlin、PHP、Scala 和 F#
-
可通過插件擴展:無服務器框架可以通過插件進行修改或擴展。
Zappa(Python、AWS)
Zappa 是一個功能齊全的 Python 框架,可讓您輕鬆構建無服務器、事件驅動的應用程序並將其部署到 AWS Lambda。它讓您可以在 AWS Lambda 和 API Gateway 上無縫部署 Django、Flask 和其他 Python 應用程序。
Zappa 框架的一些特性包括:
-
開源:它是一個開源命令行工具,在 GitHub 上擁有超過 11,700 顆星和 1,200 個 Forks。
-
自動部署:Zappa 具有自動打包和部署 Flask 或 Django 應用程序到 AWS 無服務器應用程序的能力。您可以使用單個命令部署、更新或控制應用程序。
-
持續交付:您可以使用 Zappa 爲 CI/CD 部署生成 CloudFormation 模板和壓縮代碼包,而不是直接部署您的應用程序。
-
默認 IAM 安全角色:Zappa 創建默認身份和訪問管理 (IAM) 策略,爲立即使用提供足夠的權限。但是,您可以指定自定義 IAM 策略以滿足您的應用程序要求。
Chalice(Python、AWS)
AWS Chalice 是一個易於使用的受 Flask 影響的框架,允許開發人員配置無服務器 Python 應用程序並將其部署到 AWS。
AWS Chalice 提供多種功能,包括:
-
與各種 AWS 服務集成:Chalice 提供與其他 Amazon 服務集成的功能,包括 Amazon API Gateway、Amazon Amazon Simple Storage Service (S3)、Amazon SNS、Simple Ques Service (SQS) 等。
-
生成默認 IAM 策略:默認情況下,Chalice 會創建 IAM 身份以方便使用框架。
-
開源:擁有超過 7.6k 分,780 個 Github 上 Forks,及約 128 貢獻者,Chalice 是一個開源無服務器架構,確保其安全性和可靠性。
在 Serverless 之後,上面的 Zappa 和 Chalice 是使用最廣泛的 Serverless 框架,並且基於 Python 構建。
在本文的其餘部分,我們將介紹其他一些新興的新興框架,以在 2021 年構建基於 JavaScript、Java 和其他主要編程語言的無服務器應用程序。
Architect(Node,AWS)
Architect 是一個複雜的無服務器框架,它利用 Node.js 和 npm 來創建、部署和管理 AWS 無服務器基礎設施。
Architect 提供了有趣的功能,包括:
-
基礎設施即代碼:Architect 獲取 app.arc 文件並將您的指令編譯爲已配置和預置的 AWS 基礎設施。
-
本地開發工作流程:Architect 允許開發人員通過簡單的運行在本地編寫、調試和測試代碼。
在您的終端上創建應用程序環境,然後 “arc sandbox” 啓動本地服務器。
-
開源:它是一個開源的無服務器框架,在 GitHub 上擁有超過 1.5k 星和 30 個貢獻者,使其安全可靠。
-
內置安全性:使用 Architect,您無需配置服務、設置 API 網關或在安全性上無需驚訝,因爲它默認通過在使用 CloudFormation 部署之前將您的應用程序編譯爲 AWS 無服務器應用程序模型 (SAM) 應用程序來處理所有事情。
Claudia.js(Node,AWS)
Claudia.js 是一個無服務器框架,它使開發人員只需幾行代碼即可輕鬆地將 Node.js 項目部署到 AWS Lambda 和 API Gateway。
Claudia.js 提供的功能包括:
-
開源:Claudia.js 是一個開源 JavaScript 無服務器框架,在 GitHub 上擁有 3.6k 顆星、251 個分支和大約 33 個貢獻者。
-
簡短而簡單的命令:Claudia.js 允許您使用單個命令部署、更新和管理您的實例。
-
自動配置和部署:Claudia.js 自動部署和配置您的 Node.js,並且還可以與 NPM 包完美配合。
-
擴展庫:Claudia 提供了擴展庫,讓用戶可以快速構建聊天機器人和 Web API 端點。
-
版本管理:Claudia.js 提供了一個簡單的版本管理工具,因此您可以同時處理多個版本。
-
學習曲線小:Claudia.js 是一個易於使用的框架。它只需要使用 JavaScript 框架和學習基本命令的經驗。
Flogo (Go, AWS)
Flogo 是一個用 Golang 編寫的 Ultralight 邊緣微服務框架。它允許僅使用 Docker 將應用程序輕鬆部署到 AWS Lambda。
以下是 Flogo 提供的一些關鍵功能:
-
可視化環境:除了在 Golang 中編碼外,Flogo 還提供了在可視化 Web UI 界面中設計應用程序的功能。
-
事件驅動:Flogo 可幫助您創建僅在有明確呼叫、觸發器或操作時才響應的應用程序,從而讓您節省更多。
-
開源:Flogo 是開源的,可以在保持安全可靠的同時進行定製。
-
靈活部署:在 Golang 中編程,Flogo 允許您將應用程序部署爲輕量級無服務器功能、容器或物聯網邊緣設備上的靜態二進制文件。
DEEP(Node,AWS)
DEEP 是一個全棧 JavaScript 無服務器 Web 框架,它使開發人員能夠以無服務器方法使用微服務架構構建雲原生應用程序。DEEP 是 Mitoc 的 DEEP Marketplace 的一部分,這是一項軟件服務,可讓客戶從微服務列表中進行選擇和部署。
DEEP 提供的技術和功能包括:
-
開源:DEEP 框架是一個新興的 JavaScript 開源工具,在 GitHub 上擁有 531 顆星、71 個分支和 12 位貢獻者。
-
IAM 和 Cognito 安全性:DEEP 同時使用 AWS IAM 和 Cognito 來保護
-
與各種 AWS 服務集成:DEEP 與前端的 Amazon S3 和 CloudFront、DynamoDB 數據庫和後端的 AWS Lambda、API 網關和 SNS 很好地集成。
-
類似生產的開發環境。
DEEP 使開發人員可以輕鬆地更快地構建、測試和部署無服務器應用程序。
Lambada 框架(Java、AWS)
Lambda 是一個用 Java 構建的 REST 框架,它使用 JAX-RS API,讓您可以輕鬆地將無服務器應用程序部署到 AWS Lambda 和 API Gateway。
Lambada 框架提供以下主要功能:
-
開源:Lambada 是一個開源工具,在 Github 上擁有超過 240 顆星和 46 個分支。
-
支持常用 JAX-RS 註解:支持 Path、PathParam、GET、POST、PUT、DELETE、HEAD 等常用 JAX-RS 註解。
-
Lambda 函數的基於 XML 的配置,包括 VPC、自定義執行角色
Sparta(Go, AWS)
與 Flogo 一樣,Sparta 是一個用 Go 編寫的無服務器框架,用於構建、測試 Golang Web 應用程序並將其部署到 AWS Lambda。
-
與各種 AWS 服務集成:Sparta 支持與所有 AWS lambda 事件源(包括 DynamoDB、Amazon S3、Amazon SNS 和 Amazon SES)無縫集成。
-
默認安全:Sparta 定義了默認 IAM 安全角色,其訪問權限有限,以最大限度地減少服務攻擊。
-
開源:Sparta 是一個開源框架,在 GitHub 上擁有 681 顆星和 52 個分支。
-
API 網關:它允許您通過在配置期間將其綁定到 API 網關 REST API 來使您的服務 HTTPS 可訪問。或者,公開 WebSocket API 以獲得更具交互性的體驗
Spring Cloud 函數(Java、AWS/Azure/OpenWhisk)
Spring Cloud Function 是一個複雜的無服務器框架,用於編寫 Java 應用程序並將其部署到多個無服務器解決方案,包括 AWS Lambda、Microsoft Azure、Apache OpenWhisk 和 Google Cloud Platform。
-
多雲適配器:適用於 AWS、Azure、OpenWhisk 等雲平臺的適配器
-
支持多版本部署:將函數作爲 JAR 文件部署的包,具有獨立的類加載器,以支持在單個 JVM 中的部署。
-
各種編程風格:反應式、命令式或混合式
-
開源:一個開源項目,擁有 690 個 Github 星和 361 個 Github 分支。
參考鏈接:https://faun.pub/ten-serverless-frameworks-to-watch-in-2021-9cc02ece0f95
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/8n34ZPlKacGerZ55RNZu2g