Serverless announcements at re:Invent 2018

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 (AMIs for Lambda)

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.

Lambda Runtime API

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.

Ruby and Python 3.7 support

What is it? AWS Lambda now supports Ruby and Python 3.7. With the Python update you get the latest Python features like dataclasses. Check out the AWS announcement for Ruby support for AWS Lambda.

AWS IDE integration

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.

Websocket support (coming soon)

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.

CloudWatch Log Insights

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.

AWS Firecracker virtualisation technology

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.

DynamoDB transactions

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.

DynamoDB On-Demand

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.

Aurora Data API

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.

Aurora PostgreSQL Serverless (Preview)

What is it? PostgreSQL support for Aurora Serverless

Why is it important? Something for PostgreSQL fans. Sign up for early access here.

Lambda ALB support

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).

More Step Functions integrations

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.

Enchanched Lambda + Kinesis Data Streams

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.

Amplify Console

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.

A collection of lessons learned at Dashbird after working with 4,000+ customers and 300,000+ Lambda functions

Write for us!

We're looking for developers to share their experience with serverless.

Emails and pull requests welcome!

Start using Dashbird for free!

Failure detection, analytics and visibility for serverless applications in under 5 minutes.

Request Demo