无服务器计算和应用程序
在不考虑服务器的情况下构建并运行应用程序
什么是无服务器计算?
无服务器计算让您可以在不考虑服务器的情况下构建并运行应用程序和服务。无服务器应用程序不需要您预置、扩展和管理任何服务器。您能够为几乎任何类型的应用程序或后端服务构建无服务器应用程序,并且运行和扩展具有高可用性的应用程序所需的所有操作都可由您负责。
为什么使用无服务器计算?
构建无服务器应用程序意味着,您的开发人员能够专注于他们的核心产品,而无需担心在云中或本地管理和运行服务器或运行时。这减少了开销,并使开发人员能够将更多时间和精力放在开发可扩展且可靠的出色产品上。
无服务器计算具有哪些优势?
无服务器应用具有三项优势。
无服务器管理
无需预置或维护任何服务器。无需安装、维护或管理任何软件或运行时。
灵活扩展
您的应用程序可自动扩展,因为它能够通过切换占用资源 (如吞吐量、内存) 的单位数来调整容量,而不是切换单独服务器的单位数。
自动化的高可用性
无服务器应用程序具备内置可用性和容错能力。您无需构建这些功能,因为运行这种应用程序的服务在默认情况下会提供这些功能。
案例研究
AWS 无服务器平台的功能
提供可以大规模运行的无服务器生产应用程序,这需要一个具备各种功能的平台。下面介绍了 AWS 如何为企业级无服务器应用程序提供支持:
云逻辑层
通过 AWS Lambda 为您的业务逻辑提供支持,AWS Lambda 可充当您的所有互联基础设施资源和 Web API 的控制层面和逻辑层。
编排和状态管理
使用 AWS Step Functions 协调和管理无服务器应用程序的每个分布式组件或微服务的状态。
响应式数据源
从众多数据源和提供商中进行选择,以便使用它们来实时处理数据或触发事件。请参阅我们的文档,查看响应式数据源列表。
应用程序建模框架
使用开源的 AWS Serverless Application Model 来为无服务器应用程序和服务建模并进行部署。使用应用程序生命周期管理工具(例如 AWS CodePipeline 和 AWS CodeBuild)持续交付无服务器应用程序。
应用程序和集成库
使用 AWS Serverless Application Repository 以快速发现和部署适用于各种用例的无服务器应用程序和应用程序组件,这包括 Web 和移动后端、聊天机器人、IoT、Alexa Skills、数据处理、流处理等。您还可以查找与广受欢迎的第三方服务(例如 Slack、Algorithmia、Twilio、Loggly、Splunk、Sumo Logic、Box 等)的集成。
安全和访问控制
使用日志记录、变更追踪、访问控制和加密功能来强制执行合规性控制,并确保您的整个 IT 环境安全无虞。借助 AWS Identity and Access Management (IAM) 安全地控制对您的 AWS 资源的访问。使用 Amazon Cognito 管理您的无服务器应用程序的最终用户并对其进行身份验证。使用 Amazon Virtual Private Cloud (VPC) 创建只有您可以访问的私有虚拟网络。
可靠性和性能
全球规模和覆盖性
借助我们的全球覆盖性在数分钟内将您的应用程序和服务推向全球。AWS Lambda 在多个 AWS 区域提供,并且通过 Lambda@Edge,它在所有 AWS 边缘站点均可用。您还可以使用 AWS Greengrass 在本地互联设备上运行 Lambda 函数。
AWS 无服务器平台
AWS 可提供一系列完全托管的服务,您可以使用它们构建和运行无服务器应用程序。无服务器应用程序无需为后端组件(如计算、数据库、存储、流处理、消息排队等)预置、维护和管理服务器。此外,您再也无需担心应用程序的容错能力和可用性了。相反,AWS 会为您处理所有这些功能。这使您可以专注于产品创新,同时实现更快的上市时间。
计算
通过 AWS Lambda,无需预置或管理服务器即可运行代码。您只需按使用的计算时间付费 – 代码未运行时不产生费用。只需上传您的代码,Lambda 会处理运行和扩展高可用性代码所需的一切工作。
Lambda@Edge 让您能够在 AWS 边缘站点运行 Lambda 函数以响应 Amazon CloudFront 事件。
API 代理
Amazon API Gateway 是一种完全托管的服务,可以帮助开发者轻松创建、发布、维护、监控和保护任意规模的 API。借助 Amazon API Gateway,您可以处理成千上万个并发 API 调用和流量管理、授权、访问控制、监控以及 API 管理。
存储
Amazon Simple Storage Service (Amazon S3) 为开发人员和 IT 团队提供安全、持久且扩展性高的对象存储。Amazon S3 易于使用,具有简单的 Web 服务接口,用于在 Web 上的任何位置存储和检索任意数量的数据。
数据存储
Amazon DynamoDB 是一项快速灵活的 NoSQL 数据库服务,适合所有需要一致性且延迟低于 10 毫秒的任意规模的应用程序。它是完全托管的云数据库,支持文档和键值存储模型。
AWS AppSync 可以自动实时更新 Web 和移动应用程序中的数据,并在离线用户重新连接时及时更新数据。AppSync 使用 GraphQL 这一数据语言,让客户端应用程序可以从服务器提取、更改和订阅数据。
进程间消息收发
Amazon SNS 是一种完全托管的发布/订阅消息收发服务,可轻松分离和扩展微服务、分布式系统和无服务器应用程序。
Amazon SQS 是一种完全托管的消息队列服务,可轻松分离和扩展微服务、分布式系统和无服务器应用程序。
编排
AWS Step Functions 让您能够使用可视工作流轻松协调分布式应用程序和微服务的组件。通过使用每个都能执行离散函数的单独组件构建应用程序,您可以快速扩展和更改应用程序。Step Functions 是协调组件和逐步设置应用程序函数的可靠方法。
分析
Amazon Kinesis 是一种在 AWS 上流式处理数据的平台,提供了多种强大的服务,让您可以轻松地加载和分析流数据,另外还让您能根据具体需求来构建自定义流数据应用程序。
Amazon Athena 是一种交互式查询服务,让您能够轻松使用标准 SQL 分析 Amazon S3 中的数据。Athena 没有服务器,因此您无需管理任何基础设施,且只需为您运行的查询付费。
无服务器应用程序使用案例
使用无服务器架构构建几乎任何类型的应用程序或后端服务。下面提供了几个使用案例:
Web 应用程序和后端
您可以使用 AWS Lambda、Amazon API Gateway、Amazon S3 和 Amazon DynamoDB 来构建无服务器 Web 应用程序和后端,以处理 Web、移动、物联网 (IoT) 和聊天机器人请求。
Bustle 使用 AWS Lambda 和 Amazon API Gateway 为其 Bustle iOS 应用程序和网站运行了一个无服务器后端。借助无服务器架构,Bustle 无需管理基础设施,因此每位工程师都能够集中精力构建新功能并进行创新。阅读案例研究 »
数据处理
您可以使用 AWS Lambda、Amazon Kinesis、Amazon S3 和 Amazon DynamoDB 构建各种实时数据处理系统。
Square Enix 使用 AWS Lambda 为其大型多人联机游戏运行图像处理。借助 Lambda,该公司最多能够可靠地处理 30 倍的正常流量。它还将图像处理所需的时间从几个小时减少到短短 10 秒多,并且降低了基础设施和运营成本。阅读案例研究 »
借助无服务器架构,Thomson Reuters 每秒可为其使用情况分析服务处理多达 4000 个事件。该服务最多能够可靠地处理两倍的正常流量,且具有较高的持久性。该公司使用 AWS 在短短五个月内就将该服务部署到了生产中。阅读案例研究 »
无服务器计算入门
详细了解如何构建无服务器应用程序