Serverless Computing and Applications
What is serverless computing?
Serverless computing allows you to build and run applications and services without thinking about servers. Serverless applications don't require you to provision, scale, and manage any servers. You can build them for nearly any type of application or backend service, and everything required to run and scale your application with high availability is handled for you.
Why use serverless computing?
Building serverless applications means that your developers can focus on their core product instead of worrying about managing and operating servers or runtimes, either in the cloud or on-premises. This reduced overhead lets developers reclaim time and energy that can be spent on developing great products which scale and that are reliable.
What are the benefits of serverless computing?
Serverless applications have three main benefits.
NO SERVER MANAGEMENT
There is no need to provision or maintain any servers. There is no software or runtime to install, maintain, or administer.
Your application can be scaled automatically or by adjusting its capacity through toggling the units of consumption (e.g. throughput, memory) rather than units of individual servers.
AUTOMATED HIGH AVAILABILITY
Serverless applications have built-in availability and fault tolerance. You don't need to architect for these capabilities since the services running the application provide them by default.
The Coca-Cola Company, an American multinational beverage corporation, used AWS Lambda and AWS Step Functions to build a cost-effective serverless solution.
FINRA oversees securities broker-dealers in the United States, including analyzing up to 75 billion market events daily to identify fraud and insider trading.
iRobot, a leading global consumer robot company, uses AWS Lambda and AWS IoT to run web applications that connect to new WiFi-connected Roomba vacuums.
Localytics, a web and mobile app analytics and engagement company, built parallel data streams and microservices using AWS Lambda.
Capabilities of the AWS Serverless Platform
Delivering a production serverless application that can run at scale demands a platform with a broad set of capabilities. Here’s how AWS supports enterprise-grade serverless applications:
CLOUD LOGIC LAYER
Power your business logic with AWS Lambda, which can act as the control plane and logic layer for all your interconnected infrastructure resources and web APIs.
ORCHESTRATION & STATE MANAGEMENT
Coordinate and manage the state of each distributed component or microservice of your serverless application using AWS Step Functions.
RESPONSIVE DATA SOURCES
Choose from a broad set of data sources and providers that you can use to process data or trigger events in real-time. See our documentation for a list of responsive data sources.
APPLICATION MODELING FRAMEWORK
APPLICATION & INTEGRATIONS LIBRARY
Use the AWS Serverless Application Repository to quickly discover and deploy serverless applications and application components for a variety of use cases, including web and mobile back-ends, chatbots, IoT, Alexa Skills, data processing, stream processing, and more. You can also find integrations with popular third-party services (e.g., Slack, Algorithmia, Twilio, Loggly, Splunk, Sumo Logic, Box, etc).
SECURITY & ACCESS CONTROL
Enforce compliance and secure your entire IT environment with logging, change tracking, access controls, and encryption. Securely control access to your AWS resources with AWS Identity and Access Management (IAM). Manage and authenticate end users of your serverless applications with Amazon Cognito. Use Amazon Virtual Private Cloud (VPC) to create private virtual networks which only you can access.
RELIABILITY & PERFORMANCE
AWS provides highly available, scalable, low-cost services that deliver performance for enterprise scale. AWS Lambda reliably executes your business logic with built-in features such as dead letter queues and automatic retries. See our customer stories to learn how companies are using AWS to run their applications.
The AWS Serverless Platform
AWS provides a set of fully managed services that you can use to build and run serverless applications. Serverless applications don’t require provisioning, maintaining, and administering servers for backend components such as compute, databases, storage, stream processing, message queueing, and more. You also no longer need to worry about ensuring application fault tolerance and availability. Instead, AWS handles all of these capabilities for you. This allows you to focus on product innovation while enjoying faster time-to-market.
AWS Lambda lets you run code without provisioning or managing servers. You pay only for the compute time you consume - there is no charge when your code is not running. Just upload your code and Lambda takes care of everything required to run and scale your code with high availability.
Lambda@Edge allows you to run Lambda functions at AWS Edge locations in response to Amazon CloudFront events.
Amazon API Gateway is a fully managed service that makes it easy for developers to create, publish, maintain, monitor, and secure APIs at any scale. Amazon API Gateway allows you to process hundreds of thousands of concurrent API calls and handles traffic management, authorization and access control, monitoring, and API version management.
Amazon Simple Storage Service (Amazon S3), provides developers and IT teams with secure, durable, highly-scalable object storage. Amazon S3 is easy to use, with a simple web service interface to store and retrieve any amount of data from anywhere on the web.
Amazon DynamoDB is a fast and flexible NoSQL database service for all applications that need consistent, single-digit millisecond latency at any scale. It is a fully managed cloud database and supports both document and key-value store models.
AWS AppSync automatically updates the data in web and mobile applications in real time, and updates data for offline users as soon as they reconnect. AppSync uses GraphQL, a data language that enables client apps to fetch, change and subscribe to data from servers.
Amazon SNS is a fully managed pub/sub messaging service that makes it easy to decouple and scale microservices, distributed systems, and serverless applications.
Amazon SQS is a fully managed message queuing service that makes it easy to decouple and scale microservices, distributed systems, and serverless applications.
AWS Step Functions makes it easy to coordinate the components of distributed applications and microservices using visual workflows. Building applications from individual components that each perform a discrete function lets you scale and change applications quickly. Step Functions is a reliable way to coordinate components and step through the functions of your application.
Amazon Kinesis is a platform for streaming data on AWS, offering powerful services to make it easy to load and analyze streaming data, and also providing the ability for you to build custom streaming data applications for specialized needs.
Amazon Athena is an interactive query service that makes it easy to analyze data in Amazon S3 using standard SQL. Athena is serverless, so there is no infrastructure to manage, and you pay only for the queries that you run.
AWS provides tools and services that aid developers in the serverless application development process. AWS and its partner ecosystem offer tools for continuous integration and delivery, testing, deployments, monitoring and diagnostics, SDKs, frameworks, and integrated development environment (IDE) plugins.
Serverless Application Use Cases
Build virtually any type of application or backend service using a serverless architecture. Below are a couple of use cases:
Web applications and backends
You can build serverless web applications and backends using AWS Lambda, Amazon API Gateway, Amazon S3, and Amazon DynamoDB to handle web, mobile, Internet of Things (IoT), and chatbot requests.
Bustle runs a serverless backend for its Bustle iOS app and websites using AWS Lambda and Amazon API Gateway. Serverless architectures allow Bustle to never have to deal with infrastructure management, so every engineer can focus on building out new features and innovating. Read the case study »
You can build a variety of real-time data processing systems using AWS Lambda, Amazon Kinesis, Amazon S3, and Amazon DynamoDB.
Square Enix uses AWS Lambda to run image processing for its massively multiplayer online game. With Lambda, it was able to reliably handle spikes of up to 30 times normal traffic. It also lowered the time required for image processing from several hours to just over 10 seconds, and it reduced infrastructure and operational costs. Read the case study »
Thomson Reuters uses a serverless architecture to process up to 4,000 events per second for its usage analytics service. The service reliably handles spikes of twice its normal traffic and has high durability. The company deployed the service into production in only five months using AWS. Read the case study »