DevOps
AWS 云
AWS 入门

无服务器计算让您可以构建并运行应用程序和服务,而无需管理服务器。借助无服务器计算,您的应用程序仍在服务器上运行,但所有服务器管理工作均由 AWS 来完成。无服务器计算的核心是 AWS Lambda,这项服务可使您无需预置或管理服务器即可运行代码。借助 Lambda,您几乎可以运行所有类型的应用程序或后端服务的代码,Lambda 可以处理运行和扩展您的代码所需的任何工作,并且可用性极高。

100x100_benefit_code-quality

AWS Lambda 可以自动运行您的代码,无需配置或管理服务器。只需编写代码并将其上传至 Lambda。

100x100_benefit_increase-upward1

AWS Lambda 可通过运行代码以响应每个触发程序来自动扩展您的应用程序。您的代码将并行运行并逐个处理触发程序,按照工作负载的大小精密扩展。

100x100_benefit_performance

使用 AWS Lambda 时,会按代码执行时间 (以每 100 毫秒为单位) 和代码触发次数收费。代码未运行时,无需支付任何费用。

无服务器计算让您能够构建可自动扩展或缩减的可扩展且经济高效的应用程序,而无需预置、扩展和管理服务器。您可以使用 AWS Lambda 运行应用程序的代码,而 Lambda 会触发您的代码来响应事件,例如 HTTP 请求或更改 Amazon S3 存储桶或 Amazon DynamoDB 表中的数据。您需要按代码的执行持续时间和被触发的次数支付费用。由于 Lambda 可根据工作负载大小精确地进行扩展,因此您无需为闲置计算资源付费。

AWS 还提供一系列完全托管的服务,您可以将它们与 Lambda 搭配使用,以构建无服务器应用程序。借助这些服务,您可以为应用程序添加数据库和存储层,也可以管理移动和物联网设备的连接和消息。您可以将这些服务与 Lambda 配合使用,以构建无需预置和维护服务器或管理数据库的应用程序。此外,您再也无需担心应用程序的容错能力和可用性了。AWS 为您提供了所有这些功能,让您能够专注于产品创新并缩短上市时间。

大规模交付无服务器应用程序需要一个具备各种功能的平台。下面介绍了 AWS 如何为使用无服务器计算构建的企业级应用程序提供支持:

云逻辑层

通过 AWS Lambda 为您的业务逻辑提供支持,AWS Lambda 可充当您的所有互联基础设施资源和 Web API 的控制层面和逻辑层。

编排和状态管理

使用 AWS Step Functions 协调和管理无服务器应用程序的每个分布式组件或微服务的状态。

响应式数据源

从众多数据源和提供商中进行选择,以便使用它们来实时处理数据或触发事件。请参阅我们的文档,查看响应式数据源列表。

应用程序建模框架

使用开源的 AWS Serverless Application Model 来为无服务器应用程序和服务建模并进行部署。使用应用程序生命周期管理工具 (AWS CodePipelineAWS CodeBuild) 持续交付无服务器应用程序。

开发人员生态系统

利用第三方工具和开源项目的生态系统来简化从开发到生产过程中的代码的构建、测试和部署。请参阅我们的生态系统页面,了解有关开发人员工具的更多信息。

集成库

借助我们的可重用模板或蓝图集,您可以轻松使用与热门第三方服务 (如 Slack、Algorithmia、Twilio、Loggly、Splunk、Sumo Logic 等) 的集成,从而快速入门。

安全性与访问控制

使用日志记录、变更追踪、访问控制和加密功能来强制执行合规性控制,并确保您的整个 IT 环境安全无虞。借助 AWS Identity and Access Management (IAM) 安全地控制对您的 AWS 资源的访问。使用 Amazon Virtual Private Cloud (VPC) 创建只有您可以访问的私有虚拟网络。

可靠性和性能

AWS 提供了高度可用、可扩展的低成本服务,可交付企业规模的性能。AWS Lambda 的内置功能 (死信队列自动重试) 可以可靠地执行您的业务逻辑。请参阅我们的客户案例,了解各公司如何使用 AWS 运行应用程序。

全球性规模和全球覆盖性

借助我们的全球覆盖性在数分钟内将您的应用程序和服务推向全球。AWS Lambda 在多个 AWS 地区提供,并且通过 Lambda@Edge,它在所有 AWS 边缘站点均可用。您还可以使用 AWS Greengrass 在本地互联设备上运行 Lambda 函数。

AWS 为您提供了一系列完全托管的服务,您可以使用这些服务构建高度可扩展的无服务器应用程序和服务。您可以使用无服务器计算服务构建任何内容,从移动后端到流数据处理器。

计算

AWS Lambda 让您无需预置或管理服务器即可运行代码。您只需按消耗的计算时间付费 – 代码未运行时不产生费用。只需上传您的代码,Lambda 会处理运行和扩展高可用性代码所需的一切工作。

存储

Amazon Simple Storage Service (Amazon S3) 为开发人员和 IT 团队提供安全、持久且扩展性高的对象存储。Amazon S3 易于使用,具有简单的 Web 服务接口,用于在 Web 上的任何位置存储和检索任意数量的数据。

数据库

Amazon DynamoDB 是一项快速灵活的 NoSQL 数据库服务,适合所有需要一致性且延迟低于 10 毫秒的任意规模的应用程序。它是一种完全托管的云数据库,支持文档和键值两种存储模式。

API 代理

Amazon API Gateway 是一种完全托管的服务,可以帮助开发者轻松创建、发布、维护、监控和保护任意规模的 API。借助 Amazon API Gateway,您可以处理成千上万个并发 API 调用和流量管理、授权、访问控制、监控以及 API 管理。

分析

Amazon Kinesis 是一种在 AWS 上流式处理数据的平台,提供了多种强大的服务,让您可以轻松地加载和分析流数据,另外还让您能根据具体需求来构建自定义流数据应用程序。

消息收发和队列

Amazon SNS 是一项快速、灵活且完全托管的发布–订阅消息收发服务。将它用作基于云的移动应用程序通知服务来发送推送通知、电子邮件和 SMS 消息;或用作企业消息收发基础设施。Amazon (SQS) 是一项快速可靠、可扩展且完全托管的消息队列服务。SQS 使得云应用程序的组件解藕大大简化,并且具有较高的成本效益。

编排和状态管理

AWS Step Functions 让您能够使用可视工作流轻松协调分布式应用程序和微服务的组件。通过使用每个都能执行离散函数的单独组件构建应用程序,您可以够快速扩展和更改应用程序。Step Functions 是协调组件和逐步设置应用程序函数的可靠方法。

诊断

AWS X-Ray 可以帮助开发人员分析与调试分布式生产应用程序,例如使用微服务架构构建的应用程序。借助 X-Ray,您可以了解应用程序及其底层服务的执行方式,从而识别导致性能问题和错误的根本原因并将其排除。

使用无服务器架构构建几乎任何类型的应用程序或后端服务。
下面提供了几个使用案例:
 

您可以使用 AWS Lambda、Amazon API Gateway、Amazon S3 和 Amazon DynamoDB 来构建无服务器 Web 应用程序和后端,以处理 Web、移动、物联网 (IoT) 和聊天机器人请求。

示例:Web 应用程序参考架构:示意图|示例代码

Lambda_WebApplications

示例:移动后端参考架构:示意图|示例代码

Lambda_MobileBackends
Lambda_Bustle

Bustle 使用 AWS Lambda 和 Amazon API Gateway 为其 Bustle iOS 应用程序和网站运行了一个无服务器后端。借助无服务器架构,Bustle 无需管理基础设施,因此每位工程师都能够集中精力构建新功能并进行创新。阅读案例研究 »

您可以使用 AWS Lambda、Amazon Kinesis、Amazon S3 和 Amazon DynamoDB 构建各种实时数据处理系统。

示例:数据处理参考架构:示意图|示例代码

Lambda_FileProcessing
Lambda_SeattleTimes

Seattle Times 利用 AWS Lambda 来调整图像大小以便在不同的设备 (如台式机、平板电脑、智能手机等) 上查看。阅读案例研究 »


示例:实时流数据参考架构:示意图|示例代码 

Lambda_StreamProcessing
serverless-benchling

Benchling 使用无服务器结构大规模处理基因组学数据,将处理时间减少了 90%。这样一来,使用其平台的科学家能够将时间更多地放在研究上。阅读案例研究 »