Serverless deployment is a key consideration when starting to write software using Function-as-a-Service services such as AWS Lambda. In the beginning, the default cloud vendor’s console is the starting point. However, once the application gains some complexity, a proper serverless deployment tool is necessary. This post covers the most popular deployment tools for serverless.

The Cloud Provider’s Way

Each of the cloud vendors provides an easy way to deploy functions:

Serverless Deployment Platforms

Serverless deployment platforms enable more than just deploying your code. Their features vary from modeling the serverless application, code management, visualization, and multi-cloud support.

AWS SAM – the AWS Way to Deploy Serverless

SAM — Serverless Application Model — is a way to describe and deploy serverless applications in a simple way. It extends the AWS CloudFormation to provide a simplified method of defining AWS Lambda functions, API Gateway, and DynamoDB tables. In addition, it supports the runtime of the Lambda functions. AWS SAM only supports applications deployed on AWS.

The SAM format is used to describe AWS SAM applications. The format is either JSON or YAML and deployed using the AWS SAM CLI. If you want to get started with AWS SAM, you should check out this guide. The active Slack channel is also a great resource to check.

Pulumi – Holistic Serverless Deployment

Pulumi is the “Cloud Native Infrastructure as Code” framework. It aims to provide a cloud development model for serverless functions, container apps, and data infrastructure for any cloud. Using the Pulumi CLI tool, Pulumi enables its users to deploy to different providers: AWS, Azure, GCP, OpenStack, and even Kubernetes.

In addition, Pulumi also created the Pulumi Cloud Framework. It lets you program infrastructure and application logic, particularly suitable for serverless applications, and being cloud-agnostic. Finally, Pulumi has an active Slack community, and it is also available on GitHub.

Serverless Framework – The Command Line Approach

The Serverless Framework is an open-source tool for managing and deploying serverless functions. It supports multiple programming languages and cloud providers.

Moreover, earlier this year, it introduced two additional tools. The first is Event Gateway, which provides an abstraction layer to design complex serverless applications quickly. The second is the Serverless Dashboard, for better management of the application, as well as collaboration.

To describe a Serverless Framework application, you need to use as YAML files (known as serverless.yml) which define the functions, triggers, permissions, resources, and various plugins of the serverless application.

A comparison of Serverless Framework vs. other tools provides some insights into the differentiation of the framework. Serverless Framework has an active GitHub community and its GitHub page contains many examples.

Check out our Slack bot AWS Lambda function and the Lambda+SQS examples to get a sense of a simple deployment of AWS Lambda. The Epsagon plugin is a popular way to use Epsagon together with Serverless Framework. There also useful open-source tools, such as this one for packaging external code in AWS Lambda using Serverless Framework.

Stackery – The Visual Way

Stackery promises to be the best toolkit for serverless development for teams. Unlike AWS SAM and Serverless Framework, from day one Stackery introduced a dashboard for visually designing and building serverless applications. Besides, it does provide a standard CLI as well, and also announced that it is now built on AWS SAM.

In addition to creating and deploying serverless applications, Stackery also provides robust collaboration tools for teams. Key features include rollback protection, automatic build packaging, and a GitHub integration. Epsagon and Stackery have a simple integration that will allow automatically provide Epsagon’s monitoring for any Stackery user.