13 个用于创建无服务器应用程序的框架

探索无服务器框架的奇妙世界

您是否对无服务器技术充满好奇?是否正渴望启动一个新项目,却不知从何入手?

不用担心,本文将为您概述一些最受欢迎的无服务器框架,助您快速入门!

无服务器计算因其能够减少管理开销,同时让开发者专注于创造而日益流行。尽管这项技术还相对较新,许多开发人员和工程师正积极探索,致力于构建令人兴奋的无服务器解决方案,引领未来趋势。

相信您已经了解,所谓的“无服务器”并非真的没有服务器,它只是意味着更少的服务器管理和更多功能开发。如果您正在为您的下一个项目寻找一个可靠的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组件来加速应用程序开发。它提供了诸如身份验证、交互、函数、数据存储、用户管理、API(REST、GraphQL)、分析、AI/ML预测、存储、PubSub、推送通知等众多特性和工具,方便您的开发工作。此外,还提供托管主机、PR预览、CI/CD、自定义域名和部署监控等功能。

Midway

Midway是一个基于Node.js的无服务器框架,适用于创建传统的服务器端应用程序、小程序、微服务以及构建无服务器服务。它使用TypeScript编写,并通过IoC注入机制分离应用程序逻辑,使得大型Node.js应用程序的开发更加容易和自然。

Midway可以使用Express、EggJS或Koa作为基础框架。它还提供GRPC、Dubbo.js、RabbitMQ、Socket.io等基础解决方案供独立使用。此外,Midway还可以作为全栈或前端开发人员的Node.js无服务器Web框架。

Midway支持构建在容器、虚拟机、阿里云、AWS和腾讯云上运行的下一代应用程序,并可轻松与Vue和React集成。它还具备以下诸多特性:

  • 分组和可扩展插件
  • 高级组中间件兼容性和架构
  • 解耦能力和应用分层
  • 下一代开发体验
  • 支持Koa中间件和Egg插件

Webiny

Webiny无服务器应用程序框架提供了架构、部署和构建无服务器应用程序所需的一切。它针对不同的用例而设计,您可以根据组织和项目的需求修改架构、技术堆栈,并灵活调整。

您可以基于SEO、路由、预渲染、安全、部署和捆绑等功能构建业务网站和应用程序。通过提取GraphQL解析器来创建内部或外部API。它不局限于单个应用程序,您可以构建使用各种数据库的应用程序。通过Node.js数据库驱动程序,可以与外部数据库进行交互。

Webiny提供了代码捆绑、IaC(基础设施即代码)、部署机制和项目组织功能。您可以在此框架之上构建SaaS,并将其提供给全世界。借助内置的AWS Cognito和安全框架,可以使用ACL保护部分或整个应用程序。

此外,它还支持Auth0、OKTA等。您将获得无头CMS、页面构建器、表单构建器、文件管理器等。通过CLI插件,可以生成从lambda函数到新的GraphQL API的样板代码。

Webiny的Admin UI包含三十多个不同的React组件。它还提供DDoS保护、CDN和11个9的数据持久性。使用Webiny可以节省您在试错和研究上的时间。

AWS Chalice

如果您正在寻找一个用Python编写无服务器应用程序的框架,可以尝试AWS Chalice。它允许您通过AWS Lambda构建和部署应用程序。

Chalice提供了一个命令行工具来创建、部署和管理应用程序,以及一个基于装饰器的API,用于与Amazon S3、Amazon API Gateway、Amazon SQS、Amazon SNS等AWS服务集成。

通过Chalice,您可以创建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应用程序的工作。使用Zappa,您可以以最小的部署成本享受零维护、零停机和无限扩展。

在安装和配置Zappa之前,请确保您拥有Python 3.x和AWS账户,并正确安装了AWS凭证文件。您还可以使用pip轻松安装Zappa。

Zappa会自动设置部署配置。正确配置设置后,可以通过单个命令行将应用程序部署到生产环境。如果您需要API Gateway CloudFormation模板,可以使用模板命令。使用SSL证书、AWS Certificate Manager证书和Let’s Encrypt证书,将Zappa部署到自定义子域名和域名。

您还可以在API Gateway上启用安全终端节点,例如API密钥、IAM策略、API Gateway Lambda授权方、Cognito用户池授权方和API Gateway资源策略。此外,还可以通过S3文件设置本地环境、远程AWS环境和远程环境等环境变量。

Architect

Architect框架用于创建、部署和维护基于AWS云功能的下一代无服务器基础设施,并提供了完整的本地离线工作流程。

这是一个较为复杂的项目,您需要仔细阅读项目理念文档页面,以全面了解该框架。

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框架在GitHub上拥有超过3万个star,使其成为您可以找到的最受欢迎的无服务器框架之一。

那么,您可以使用这个框架做什么呢?首先,您可以创建将微服务作为响应事件等手段的应用程序。例如,您的应用程序仅在有明确的调用时响应,并根据需求进行扩展和缩减。这样,您可以节省大量资金,否则这些资金将用于维持闲置服务。

该框架使用新的事件驱动计算服务,例如AWS Lambda、Google Cloud Functions等。它是一个命令行工具,为开发和部署无服务器架构提供脚手架、工作流程自动化和最佳实践。它还可以通过插件进行完全扩展。

Sigma

Sigma是一个围绕无服务器开发理念构建的新的基于云的IDE。它不仅仅是一个具有一些花哨功能的基本文本编辑器,而是一个功能齐全的IDE,可以帮助您编写代码并实时发布代码作为实际运行的应用程序。

Sigma IDE可以与您选择的无服务器(FaaS)平台来回通信,并且只需要配置文件即可。这样,您可以节省大量乏味的配置工作。

与其他试图达到类似结果的工具相比,Sigma本身也是无服务器的。该IDE完全在浏览器中运行,无需后端服务即可运行所有功能,只需要少数功能。具体来说,后端只需要对用户进行身份验证并收集分析数据。

Sigma非常值得关注和尝试。

Auth0

如果您对无服务器概念充满热情,那么您可能听说过Serverless框架,即我们在本文前面提到的框架。

Auth0已经齐心协力构建了Auth0 Web任务,这是一个适用于所有无服务器框架用户的有效插件。该项目名为Webtask,您可以在此处找到主页。

本质上,Webtask可以用来创建应用程序而无需担心基础架构兼容性。使用Webtask提供的CLI编写服务器端逻辑并部署所有功能,然后可以使用HTTP协议导航后端。

更新:Webtask网站已被关闭。

无服务器示例

我们在文章前面讨论了Serverless框架,基本上,这是一个后续资源,展示了许多不同的无服务器框架的用例

尽管这些示例被锁定在一个特定的框架中,您仍然可以享受学习新的无服务器概念的过程。

这些示例适用于AWS、Azure、Kubeless、Google Cloud和OpenWhisk等平台。此外,还支持六种不同的语言:nodeJS、Python、Go、Java、PHP和Swift。

您可以查看一些受欢迎的示例,例如Twitter笑话机器人OAuth Dropbox API

如果您正在寻找实践学习的机会,可以查看此在线课程