AWS re:Invent, the biggest cloud-computing event of the year, ended on Friday and left behind a slew of exciting new features and products for building serverless applications. Let’s summarize what was announced and how those updates can be significant for you.
All serverless announcements
- Lambda Layers
- Lambda Runtime API
- Ruby and Python support
- AWS IDE integration
- Websocket support (coming soon)
- CloudWatch Logs Insights
- AWS Firecracker virtualization technology
- DynamoDB transactions
- DynamoDB On-Demand
- Aurora Data API
- Aurora PostgreSQL Serverless (Preview)
- Lambda ALB Support
- More Step-Function Integrations
- [Enchanched Lambda + Kinesis Data Streams] (#enchanced-lambda-kinesis)
- Amplify Console
What is it? Lambda Layers are a new type of artifact that can contain arbitrary code and data, and may be referenced by zero, one, or more functions at the same time. With layers, you can centrally manage common components across multiple functions enabling better code reuse.
Why is it important? Lambda functions in serverless applications often use the same data, SDKs and packages across functions. This allows developers to use and manage the commmon code separately from the core logic in your code. Read how to use Lambda Layers.
What is it? The Runtime API for AWS Lambda defines a standardized HTTP-based specification which codifies how Lambda and a function’s runtime communicate. It enables you to build custom runtimes that integrate with Lambda to execute functions in response to events. By leveraging the Runtime API, you can use binaries or shell scripts, and your choice of programming languages and language versions.
Why is it important? You can bring your language of choice and build serverless applications with it. The Serverless Framework has also released their Open Runtime repository on GitHub which enables developers to share common solutions for complex problems before the they even get to your business logic. Read more about it at their blog or read more about custom runtimes from AWS’ blog.
What is it? AWS toolkits to deeply integrate popular IDEs and speed up development processes.
Why is it important? Step-through debugging of Lambda functions, shortcuts and much easier deployments. Currently supports PyCharm, IntelliJ (preview) and Visual Studio Code. Read more from AWS blog.
What is it? Websockets support for your AWS Lambda.
Why is it important? Websockets enable bi-directional interaction between client and server, making it easy to implement real-time functionality.
What is it? Faster and better support for log analytics in CloudWatch.
Why is it important? You can query and search through CloudWatch logs and visualize the results which makes it easier to understand what’s going on in your serverless application. Read the announcement from AWS.
What is it? An extremly lightweight virtual machine manager able to create a microVM in 125ms (on average). It can host Lambda functions and Fargate containers.
Why is it important? This doesn’t concern most of the serverless users today as there’s little reason to go back to managing low-level infrastructure. Firecracker could be useful for using Lambda and Fargate on-premises or building a container orchestration platform that needs to be super-performant.
What is it? DynamoDB transactions provide developers atomicity, consistency, isolation, and durability (ACID) across one or more tables within a single AWS account and region.
Why is it important? You can use transactions when building applications that require coordinated inserts, deletes, or updates to multiple items as part of a single logical business operation. DynamoDB is the only non-relational database that supports transactions across multiple partitions and tables. Read the AWS’ announcement.
What is it? No capacity planning and pay per-request billing model for DynamoDB.
Why is it important? You don’t have to determine the read and write capacity ahead of time, meaning you’ll not run into throughput exceeded issues and also cut costs by avoiding over-provisioning. Read more about it from AWS blog.
What is it? HTTP endpoint for accessing Serverless Aurora
Why is it important? Instead of the MySQL protocol that requires persistent connection and language specific libraries you can now use Aurora through API endpoints with Data API. It already has an integration with AWS SDK. Read the announcement from AWS.
What is it? PostgreSQL support for Aurora Serverless
Why is it important? Something for PostgreSQL fans. Sign up for early access here.
What is it? Application load Balancer can now invoke Lambda functions to serve HTTP requests.
Why is it important? With the Application Load Balancers’ support for content-based routing rules, you can also route requests to different Lambda functions based on the request content. Prior to this launch, you could only use EC2 instances, containers, and on-premises servers, as targets for Application Load Balancers, and you needed other proxy solutions to invoke Lambda functions over HTTP(S).
What is it? AWS Step Functions support for ECS, Fargate, DynamoDB, SNS, SQS, Batch, Glue and Sagemaker.
Why is it important? Step Functions includes built-in error handling, parameter passing, recommended security settings, and state management, reducing the amount of code you have to write and maintain.
What is it? Support the Kinesis Data Streams (KDS) enhanced fan-out and HTTP/2 data retrieval features for Kinesis event sources. Each registered event source can process records with a throughput of up to 2MB per second per shard. By registering your event sources as Kinesis data stream consumers, you can run multiple high performance, low-latency serverless stream processing applications on a single Kinesis data stream.
Why is it important? Great performance increase for Kiesis Data Streams and Enchanced Fan-Out gets you around limitations of previous Kinesis consumers.
What is it? Continous deployment and hosting service for web applications with serverless backends. Think single page app frameworks like React, Angular, Vue and static-site generators like Jekyll, Hugo and Gatsby.
Why is it important? This can accelerate your application release cycle by deploying your frontend and backend code on every commit. On connecting a Git repository, Amplify automatically determines the build settings for both the frontend framework and any serverless backend resources configured with the Amplify CLI. Read more about it from the AWS’ blog.