What started as an internal project over a year ago has evolved into a full-fledged open source project that aims to make AWS Lambda function deployment simple for development teams all over the world. Over the course of its lifetime it has received a TON of feedback and refinement from several of our teams and friends, and thanks to their efforts we’ve managed to create an incredibly powerful tool.
A (very) brief history of cloud computing
In the world of backend web applications, cloud-virtualized infrastructure has been the biggest driver in technological evolution since the birth of the internet. When it first appeared, companies started moving their “big box servers” to virtualized infrastructure as it proved to be simpler, more secure, and conveniently scalable with few button clicks. Although microservices, containerised services, and deployment orchestration tools were already an architectural and system management trend, they gained major popularity and traction within the Cloud environment.
A few years ago an incredible new service was released on Amazon Web Services based on these new cloud computing capabilities and the concept of “Functions as a Service.” Amazon dubbed its implementation of FaaS “Lambda” and the term became fairly popular in technology circles. It wasn’t long before these new “functions” were adapted to build complete backend web applications like APIs that were near-infinitely scalable, had no physical servers, and required very little (if any) hands-on human support.
API technology based on this new architectural “serverless” paradigm, however, is still highly experimental and lacks standardized tooling to make it available, reusable and easy to replicate. With that in mind, the Carpe Data team decided to build our own AWS Lambda tooling that would allow us to create and deploy a completely new production ready and highly available backend API in mere minutes.
After a year of internal scrutiny, we’ve decided to share Scalambda tooling with the world to stimulate the use of serverless applications and help freelancers, startups and well established companies alike develop and deploy their ideas to production with only a few steps. With Scalambda, users can easily build and deploy their own Lambda Functions (and/or ApiGateway instances) with little to no effort or knowledge of AWS required.
Scalambda itself is composed of three separate libraries. Each of them can be used independently depending on your project’s use case and your team’s toolchain.
- sbt-scalambda: An SBT plugin that should help you to deploy your lambdas, managing libraries, logging and much more.
- scalambda-core: A traditional library that provides utilities for writing Scala-based Lambda Functions
- scalambda-testing: A set of test helpers for testing Lambda Functions
How to use Scalambda
Assuming you already have an AWS account and have installed sbt and Terraform, you can have a function deployed in less than 5 minutes (for real, we did it live during a few internal presentations to prove it).
The Giter8 template is by far the quickest way to get started with Scalambda, but adding Scalambda to existing projects is easy enough. Just add Scalambda to your plugins.sbt file, give the guide for configuring functions a quick read, and you’ll be deploying functions in no time.
Contributing to the Scalambda community
As an open-source project, we welcome all contributors to join our Scalambda GitHub community. Whether you have a knack for technical documentation or you’re a cloud architecture wizard, help us make Lambda functions simple and accessible for all!