As always, the AWS re: Invent 2020 was an amalgamation of excitement and innovation. This year’s conference was a virtual event spanning over three weeks. During the myriad of keynotes and sessions, many new AWS features, along with improvements and cloud services were announced. The extended timeframe of the conference made it easier for the participants to keep track of all the updates and the speakers were able to shed more light on the innovative products and features. In this article, we are going to focus on the most striking updates announced in the realm of Serverless during re:Invent 2020.
AWS Proton
The launch of AWS Proton was announced during the conference. It is a brand-new service that facilitates the automation and management of infrastructure provisioning and code deployments for container-based and serverless applications. AWS Proton was introduced as a viable solution for maintaining hundreds and thousands of microservices with rapidly shifting infrastructures, resources, and configurations. Even the most adept teams can find it painstaking to manage the plethora of microservices involved in a Serverless platform. AWS Proton provides the ability to create standard centralized templates to share with the developers so infrastructure updates can be made without affecting the productivity of the development teams. To read more on this update, please visit: https://aws.amazon.com/blogs/aws/preview-aws-proton-automated-management-for-container-and-serverless-deployments/
Memory Updates to Lambda Functions
Organizations running Lambda workloads that utilize high memory will benefit greatly from the new memory updates to Lambda functions. Now there is an option to allocate up to ten GB of memory to a Lambda function without compromising with the speed of other resources. This is an increment of three times over the previous limits and offers the potential to access up to six vCPUs in each execution environment. As a result, the multithreaded and multiprocessor applications run faster, and the additional costs incurred for the extra memory will most likely be offset by the shorter duration of running the process. This will make Lambda a lot more viable for certain FFMPEG processes that I have blogged about in the past but using Fargate. To learn more, please go to https://aws.amazon.com/blogs/aws/new-for-aws-lambda-functions-with-up-to-10-gb-of-memory-and-6-vcpus/" target="_blank">
Lambda’s Billing Change
The biggest advantage of using AWS Lambda is the sheer ability to run code without provisioning or managing servers and paying only for what is used. Since the launch of Lambda in 2014, customers were charged for the number of times the code was executed and for the time the code is executed, rounded up to the nearest 100ms of duration. AWS will be billing Lambda time rounded up to the nearest millisecond going forward with no minimum execution time. This new price structure will enable customers to pay less most of the time, especially for low latency APIs or functions with an execution time lower than 100ms. Please visit this link to read more: https://aws.amazon.com/blogs/aws/new-for-aws-lambda-1ms-billing-granularity-adds-cost-savings/
Lambda Functions Can be Deployed as Container Images
The option of packaging and deploying Lambda functions as container images of up to ten GB in size is now available. This will come in handy for building and deploying larger data-intensive and machine learning workloads that rely on sizable dependencies. Functions deployed as container images are comparable to functions like ZIP archives and enjoy the same operational benefits as high availability, automatic scaling, and native integrations with many services to name a few. This new implementation of container images will also provide base images for all the supported Lambda runtimes allowing customers the ease of adding their code and dependencies. Base images for custom runtimes based on Amazon Linux are also available that can be extended to include into your runtime by implementing the Lambda Runtime API. I’m eager to do some latency and cold/hot start benchmarking with different container setups. I’m also wondering if we could potentially run PHP on Lambda using a customised container. To learn more, visit: https://aws.amazon.com/blogs/aws/new-for-aws-lambda-container-image-support/
Amazon Monitron
The big announcement of Amazon Monitron, a condition monitoring service was made during re:Invent 2020. This is not really Serverless but IoT and its pretty cool. This service is designed to monitor equipment failures and relays the fault signals to the responsible teams so predictive maintenance can be performed resulting in shortened downtime. You purchase packs of sensors and a gateway device to transport data to AWS where it can be stored and further processed and analysed with Sagemaker or other services. You also pay a monthly service fee per sensor. To read more on this update, please visit: https://aws.amazon.com/blogs/aws/amazon-monitron-a-simple-cost-effective-service-enabling-predictive-maintenance/
Amazon Lookout for Equipment
Amazon Lookout for Equipment, an API-based machine learning (ML) service that detects behavioural anomalies in equipment was also introduced during the conference. I have not tried it, but it seems this would work well with data collected with the new Monitron service. Lookout is targeted towards industrial companies that are keen to improve operational efficiencies, this service can present historical time series data and past maintenance events. Amazon Lookout automatically tries out the possible combinations and creates an optimal machine learning model to understand the normal behaviour of the equipment. Even engineers with little to no expertise in machine learning can easily deploy a model for real-time cloud processing. To read more, please visit: https://aws.amazon.com/blogs/aws/new-amazon-lookout-for-equipment-analyzes-sensor-data-to-help-detect-equipment-failure/
Amazon Lookout for Vision
Amazon Lookout for Vision is a new machine learning (ML) service that facilitates customers in industrial environments to detect visual flaws on production units and equipment in a cost-effective manner. By utilizing deep learning models, Lookout for Vision replaces hard-coded rules and handles differences in camera angle, lighting, and other challenges that operational environments can foster. In a nutshell, Lookout for Vision reduces the need for carefully controlled environments. To learn more, visit: https://aws.amazon.com/blogs/aws/amazon-lookout-for-vision-new-machine-learning-service-that-simplifies-defect-detection-for-manufacturing/
Route Requests to AWS Step Functions Synchronous Express Workflows
Introduced during re:Invent 2020, customers can now create HTTP APIs that can route requests to the new AWS Step Functions Synchronous Express Workflows. These workflows are ideal for managing high-volume, short duration, and synchronous workflows such as the orchestration of microservices behind Amazon API Gateway. The great news is that the Express Workflows can now be synchronously invoked from Amazon API Gateway HTTP APIs. For more information, go to https://aws.amazon.com/about-aws/whats-new/2020/12/amazon-api-gateway-supports-integration-step-functions-startsyncexecution-http-apis/
Invoke Lambda Functions Directly from Aurora
According to the latest update, Lambda functions can now be invoked directly from within an Aurora database by using stored procedures or user-defined functions. This allows the external application to act upon data changes, thus extending the capabilities of the database. As an example, a Lambda function can be created to send emails to customers every time their address is updated in the database. To learn more, please visit: https://aws.amazon.com/about-aws/whats-new/2020/12/amazon-aurora-postgresql-integrates-with-aws-lambda/
CodeGuru Reviewer
CodeGuru Reviewer can now be used to identify hard to detect coding issues in your Python code in addition to Java. By using pull requests and full repository analysis you can onboard your CodeGuru Reviewer to start analyzing your Python code. The reviewers and detectors are fully trained by Amazon. They go through an intensive process of analyzing large code corpora and Python documentation to provide best practice endorsements to customers. Some Serverless pipelines commonly use Python so this is certainly a win but I’m still hoping NodeJS or TypeScript will be added to this service in the near future. To get more information, please visit: https://aws.amazon.com/about-aws/whats-new/2020/12/python-support-for-amazon-codeguru-is-available-in-preview/
Amazon Macie as Part of Data Ingestion
Data is an integral part of any business or organization. Many AWS customers are building automated pipelines to extract value from their data instantly. Amazon Macie can now be integrated as part of the data ingestion step in your data pipeline. It provides an extra shield of reliability for sensitive data to ensure it has been properly redacted before ingestion. Amazon Macie plays an integral role in data ingestion services as it is a fully managed data security and privacy service that leverages machine learning and pattern matching to discover sensitive data in AWS. To learn more, please visit: https://aws.amazon.com/blogs/security/use-macie-to-discover-sensitive-data-as-part-of-automated-data-pipelines/
AWS IoT Greengrass 2.0
Ok, this is edge and not Serverless, but I find IoT a very interesting area! The much-anticipated AWS IoT Greengrass 2.0 – with an opensource edge runtime and new developer capabilities was introduced during re:Invent 2020. This version makes it easy for device builders to build, deploy, and manage intelligent device software. Along with providing an open-source edge runtime, it also provides a rich set of pre-built software components, tools for local software development, and various new features for software management on large fleets of devices. To learn more, please access: http://feedproxy.google.com/~r/AmazonWebServicesBlog/~3/SaLLwVcmyIA/
AWS SDK for JavaScript Version 3
This one I am particularly excited about! The AWS SDK for JavaScript, version 3 (aws-sdk v3) is now generally available and includes many frequently requested features, such as a new middleware stack and first-class TypeScript support. This version introduces a modular architecture providing a separate package for each service meaning we only need to load the services that we want to use, reducing the overall load and latency when used in Lambda. To learn more, please visit: https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/welcome.html
Easier to Build Analytics for Kinesis and Amazon Streams
AWS Lambda can now be used to build analytics workloads for Amazon Kinesis and DynamoDB Streams. Without any additional costs, customers can now build sum, average, count, and other easy analytics functions over a contiguous, non-over-lapping time window of up to 15 minutes per logical partition. For more information, please go to https://aws.amazon.com/about-aws/whats-new/2020/12/aws-lambda-easier-build-analytics-amazon-kinesis-amazon-dynamodb-streams/
Amazon Location Service
Amazon Location Service was also introduced during the conference. It is a fully managed service that aids developers in inserting data into their applications while avoiding data mishandling and ensuring user privacy. Currently, this service is available in preview mode. This service lets you build a wide range of location-enabled applications from maps, asset tracking, and geomarketing to delivery management. To learn more about this service, please visit: https://aws.amazon.com/about-aws/whats-new/2020/12/aws-announces-amazon-location-service-preview/
Amazon EventBridge Replay
Amazon EventBridge now supports Event Replay making event-driven applications more durable and extensible by providing an easy option to replay past events. Event replay enables developers using Amazon EventBridge to build applications with the knowledge that they can quickly recover from code errors and gives them the ability to easily extend their existing applications to add new functionality. For more information, please visit: https://aws.amazon.com/about-aws/whats-new/2020/11/amazon-eventbridge-introduces-support-for-event-replay/
AWS SAM CLI
The AWS Serverless Application Model (AWS SAM) is an extension of AWS CloudFormation that makes it easier to build, manage, and maintains serverless applications. On November 10, the AWS SAM CLI tool released version 1.9.0 that will support cached and parallel builds. For more information, please visit:
Amazon SNS
The First-In-First-Out (FIFO) topics support was announced for Amazon SNS. Applications that need strict message ordering with exactly-once processing and message deduplication require these to be used with SQS FIFO queues. This is ideal for bank transactions or logging and inventory management related workloads. Selective updates can also be published using message filtering in FIFO topics. To read more, please visit: https://aws.amazon.com/blogs/compute/icymi-serverless-preinvent-2020/
AWS X-RAY
With the recent updates, Amazon X-Ray can now be integrated with Amazon S3 for tracing upstream requests. For any function that uses the X-RAY SDK, S3 will send tracing headers to downstream event subscribers. This allows customers to use the X-Ray service map to visually see connections between S3 and other services that are used to process an application request. For more information, please visit: https://aws.amazon.com/about-aws/whats-new/2020/11/aws-x-ray-supports-trace-context-propagation-amazon-simple-storage-service-s3/
AWS CloudFormation
The newest support for nested stacks in changesets was announced for AWS CloudFormation during the conference. It makes it easier to preview any changes across the entire nested stack hierarchy of your infrastructure. This also allows the customers to review these changes before confirming a deployment. Best of all, any Regions supporting CloudFormation will use this functionality free of charge. To read more, go to https://aws.amazon.com/about-aws/whats-new/2020/11/aws-cloudformation-change-sets-now-support-nested-stacks/
Amazon DynamoDB
Querying with DynamoDB using a familiar query language is easier than ever for developers - thanks to an SQL-compatible query language that can be used now to perform operations on DynamoDB. Kinesis Data Streams can also be used to capture item-level changes to your tables which helps in building advanced streaming capabilities from NoSQL data. For further information, please visit: https://aws.amazon.com/about-aws/whats-new/2020/11/now-you-can-use-amazon-kinesis-data-streams-to-capture-item-level-changes-in-your-amazon-dynamodb-table/