Serverless Architecture meets Continuous Delivery
Serverless Architectures rely on Function-as-a-Service offerings, such as AWS Lambda, which provides the glue that connects serverless resources. More precisely, AWS Lambda is an elegant and scalable solution to perform event-based computation in the cloud. Fitting examples are the analysis of incoming email, conversion of newly uploaded files and state machines that implement business processes. Furthermore, when fronted by serverless API Gateways, Lambda functions can be used to drive HTTP-based APIs.
From an engineer’s perspective, a Serverless Architecture should be easier to change because it does not involve maintaining infrastructure. But a point often overlooked is that serverless applications easily span numerous cloud services and even more cloud resources, and therefore manual configuration is more error-prone.The state of the art solution to this problem is Continuous Integration/Delivery (CI/CD). However, best practices and tools for CD-pipelines do not apply naturally to Serverless Architectures, but instead, unveil new challenges.
We show solutions for the new challenges that developers for serverless applications will eventually face. Moreover, we discuss methods, best practices, and tools for realizing serverless CI/CD pipelines for AWS Lambda and related services. All this is demonstrated using a single page application, which solely depends on serverless technologies.