12个用于创建无服务器应用的框架
你对无服务器技术感到兴奋吗?你渴望着开始一个新项目,但不确定从何处开始?
这里是一些最受欢迎的无服务器框架,你可以尽情使用!
无服务器计算是所有热衷于在拥有更多时间创造更多东西的人中的流行话题。尽管这项技术仍然很新,但许多开发人员和工程师正在尽力构建令人兴奋的无服务器操作的解决方案。
正如你肯定已经知道的那样,无服务器并不完全意味着没有服务器。它只是意味着更少的服务器和更多的函数。如果你正在寻找一个可靠的FaaS(函数即服务)平台用于你的下一个项目,请查看我们之前的有关的文章。
话虽如此,让我们看一下现有的框架。我们将通过一些在无服务器领域正在开发的令人兴奋的项目来总结,所以请确保你留下来看看!
AWS Amplify
使用AWS Amplify框架快速构建可扩展的无服务器应用程序,为Web和移动设备提供无限灵活性。通过使用智能工作流配置你的无服务器后端,包括数据、存储、身份验证等。
使用更少的代码将移动和Web应用程序连接到现有或新的AWS资源。你可以轻松地托管和部署单页面Web应用程序、服务器端渲染应用程序和状态网站。它还可以让你轻松管理内容和应用程序用户。
AWS Amplify可以帮助前端移动和Web开发人员更快地在AWS上创建全栈应用程序,并在需要时自定义应用程序。Amplify支持许多Web框架,如React、Angular、JavaScript、Vue.js、Next.js等,以及iOS、Ionic、Flutter、Android和React Native等移动平台。
你可以与Amplify的许多UI组件集成,加速应用程序开发。为开发提供许多功能和工具,如身份验证、交互、函数、DataStore、用户管理、API(REST、GraphQL)、分析、AI/ML预测、存储、PubSub、推送通知等。此外,你还有托管、PR预览、CI/CD、自定义域和部署监控等功能。
Midway
使用Midway获取用于创建传统服务器端应用程序、小程序、微服务以及使用的Node.js无服务器服务的框架。它是用TypeScript编写的,使用IoC注入机制来分离应用程序的逻辑,使开发大型Node.js应用程序更加简单。
Midway可以使用express、EggJS或koa作为基本框架。它提供基本解决方案,如MySQL、Dubbo.js、RabbitMQ和Socket.io,可以独立使用。此外,Midway还可以作为Node.js无服务器Web框架供全栈或前端开发人员使用。
Midway让你构建在容器、VM、阿里云、AWS和腾讯云上运行的下一代应用程序。你还可以轻松集成它与Vue和React。你将发现许多功能,如:
- 分组和可扩展的插件
- 高级组中间件兼容性和架构
- 解耦能力和应用层次分离
- 下一代开发体验
- 支持koa中间件和Egg插件。
Webiny
使用Webiny Serverless应用程序框架,获取构建、部署和构建无服务器应用程序所需的一切。它设计用于不同的使用场景。你可以修改架构、技术堆栈,并根据组织和项目的需求进行适应。
基于SEO、路由、预渲染、安全性、部署、捆绑等创建业务网站和应用。通过提取GraphQL解析器来创建内部或外部API。不受单个应用的限制;构建使用各种数据库的应用程序。您可以使用NodeJS数据库驱动程序与外部数据库进行交互。
Webiny提供了代码捆绑、IaC、部署机制和项目组织。将产品添加到列表顶部,并向全世界提供SaaS。借助内置的AWS Cognito和安全框架,使用ACL保护应用程序的部分或整个部分。
添加对Auth0、OKTA等的支持。您将获得headless CMS、页面构建器、表单构建器、文件管理器等许多功能。通过使用来自lambda函数到新的GraphQL API的CLI插件生成样板代码。
Webiny的管理员界面包含超过30个不同的React组件。您还将获得DDoS protection、CDN和11个9的数据持久性。Webiny节省了您的试验和研究时间。
AWS Chalice
您是否正在寻找一种在Python中编写无服务器应用程序的框架?
尝试使用AWS Chalice,通过AWS Lambda构建和部署应用程序。
Chalice提供了一个命令行工具来创建、部署和管理应用程序,一个基于装饰器的API来与Amazon S3、Amazon API Gateway、Amazon SQS、Amazon SNS和更多AWS服务集成。
它允许您创建REST API、定期运行任务、将lambda函数与S3事件和SQS队列连接以及更多AWS资源。在编写代码后,Chalice将使您快速运行和部署应用程序。Chalice支持AWS Lambda支持的每个Python版本,包括Python 2.7、3.6、3.7和3.8。
在部署应用程序之前配置所有凭据。但是,如果您已经配置了AWS CLI或boto3来运行,可以跳过此步骤。部署后,您可以在需要的任何位置进行修改,并重新部署更改。参考教程、主题和API文档以获得更好的知识版本。
Zappa
Zappa是一个用于创建Python应用程序的无服务器框架。它使得在API Gateway和AWS Lambda上构建和部署无服务器和事件驱动的Python应用程序更加容易。使用它可以以最小的当前部署成本享受零维护、零停机和无限扩展。
在进行安装和配置之前,请确保您拥有Python 3.x和AWS帐户以及正确安装的AWS凭据文件。您还可以使用pip轻松安装Zappa。
Zappa会自动设置部署设置。一旦设置正确,可以使用单个命令行将应用程序部署到生产阶段。使用template命令如果您需要API Gateway CloudFormation模板。使用SSL证书、AWS证书管理器证书和Let's Encrypt证书将Zappa部署到自定义子域和域名。
在API Gateway上启用安全端点,如API密钥、IAM策略、API Gateway Lambda授权者、Cognito用户池授权者和API Gateway资源策略。此外,您可以通过本地环境、远程AWS环境和通过S3文件的远程环境设置环境变量。
Architect
使用完整的本地、离线工作流程等创建、部署和维护基于下一代AWS云函数的无服务器基础设施。
这是一个相当复杂的项目,需要您全面阅读the project philosophy和the documentation page。
Up
Up是一个帮助您部署具有无限可扩展潜力的无服务器应用程序的框架。此外,您可以使用Up部署静态网站、API等。所有这些都使您能够专注于真正重要的工作。
幸运的是,Up部署传统的HTTP服务器实例,因此您不需要学习一些新的协议。相反,使用您喜欢的框架,如Django或Express,开始使用。
Claudia.js
Claudia.js提供了一种将基于Node.js的项目推送到Lambda系统和API的方法。Claudia将自动化部署任务、配置并自动设置您的JavaScript环境,以进行现代开发。
那么,这对您意味着什么?通过使用Claudia,您可以在几分钟内启动您的微服务之旅。结果是,您有更少的事情需要考虑,更多的时间可以专注于解决实际问题。
使用Claudia的主要原因包括:
- 使用单个命令部署、更新和管理您的实例
- 与NPM包完美配合
- 集成的样板结构,让您有更多的空间专注于手头的任务
- 版本管理,因此您可以同时处理多个版本
- 学习曲线小
Jets
您喜欢Ruby吗?
那么您可能会喜欢Jets-一款用于创建和部署微服务的无服务器Ruby框架。该框架包括所有必要的工具,帮助您生成API结构并将其部署到Lambda。
Jets还适用于编写您可以用来串联AWS提供的不同服务和资源的独立函数。
Jets的工作方式是将您现有的代码转换为Lambda和其他AWS服务的函数。因此,您可以跳过部署和配置等步骤,花更多的时间编写功能代码。
Pulumi
Pulumi提供了一个无缝的SDK,帮助您在任何基于云的平台上创建和部署软件。SDK支持容器、托管服务、核心基础设施和容器。
您可以使用任何您喜欢的编程语言编写代码;Pulumi将在GCP、AWS、Kubernetes和Azure等服务提供商上提供和管理您的资源。
Serverless
我知道您在想什么,“有人运气好到获得了Serverless.com这个域名,并且只是在利用他们的运气!”,我必须告诉您这不是这样的。
Serverless Framework有一些30,000ish stars on GitHub,这使其成为您可以找到的最受欢迎的serverless framework。
那么,您可以用这个框架做什么呢?首先,您可以创建使用微服务作为响应事件等的手段的应用程序。例如,只有在明确调用时,您的应用程序才会响应,并根据需求进行扩展和缩小。结果是,您可以节省大量金钱,否则将花费在维护空闲服务上。
该框架使用新的事件驱动计算服务,如AWS Lambda、Google Cloud Functions等。它是一个命令行工具,提供脚手架、工作流自动化和开发和部署无服务器架构的最佳实践。它也可以通过插件进行扩展。
Auth0
如果您对无服务器的概念有激情,那么您可能已经听说过我们早些时候在文章中提到的Serverless Framework。
Auth0已经将其努力投入到构建Auth0 Web tasks中,这是一个对所有Serverless Framework用户来说非常有效的附加功能。该项目称为Webtask,您可以在此处找到主页。
实质上,Webtask可用于编写服务器端逻辑,并使用Webtask提供的CLI部署所有函数。然后,您可以使用HTTP协议导航到后端。
更新:Webtask网站已关闭。
无服务器示例
在帖子中我们之前已经谈到了Serverless Framework,基本上这是一个后续资源,展示了许多不同的use cases for the Serverless Framework。
尽管这些示例被限制在一个特定的框架中,但您仍然可以享受学习新的无服务器概念的过程。
这些示例适用于AWS、Azure、Kubeless、Google Cloud和OpenWhisk等平台。此外,还支持六种不同的语言:nodeJS、Python、Go、Java、PHP和Swift。
请查看一些喜欢的链接,如Twitter Joke Bot和OAuth Dropbox API。
如果您正在寻找实践学习,那么请查看此链接:online course。