Stacktape

Sign up

Stacktape

Sign up



Basics

What is a stack

A stack is a product of deployment. It can contain both:

  • Applications (your code running in a container, lambda function, etc.) and
  • Infrastructure (e.g., SQL database, Redis, Kafka, ElasticSearch, etc.).

A Stacktape stack can include both at the same time.

To deploy your stack, you need to specify:

  • Stacktape configuration (you can write it in YAML, JSON, or Typescript)
  • AWS region (choose one of 33 available globally)
  • Stage (different name for an environment. E.g. staging, dev, or production)
  • Project name

Every Stacktape stack translates to exactly 1 AWS Cloudformation stack.

Configuration

The configuration defines how to:

  • build your application
  • what infrastructure resources it requires
  • what scripts to run during the deployment
  • other aspects

The Stacktape configuration is very concise. For example, ~30 lines of Stacktape configuration translates to roughly ~1200 lines of AWS CloudFormation & other configuration files you'd have to write otherwise.

Deployments

Stacktape deployments are idempotent and immutable. This means that deploying the same configuration to the same stage and region will always yield the same results.

Every deployment has multiple phases:

  1. Package your workloads - lambda functions & containers (if any)
  2. Create resources for deployment artifacts (ECR image repository and S3 deployment bucket)
  3. Upload deployment artifacts (images & lambda functions)
  4. Perform CloudFormation deployment - creating the rest of the infrastructure resources

If anything fails, Stacktape automatically rolls everything back to the previous working state.

You can evolve your stacks as you go. For example, if you decide to add more resources to it, increase the amount of container memory, etc., simply adjust the configuration and rerun the deployment.

The overwhelming majority of these updates will happen in place - without a disruption to normal use. Some updates require a replacement - entirely new resource is created to replace your existing resource. Stacktape designs your templates in a way so that this almost never happens - and if it does, you'll get notified before performing such update.

To speed up deployments, Stacktape also comes with a Hot swap mode that updates certain resources directly, without using CloudFormation. For example, if the only thing that changed is a lambda function or container code, the deployment will take just a few seconds.


Previous

Introduction

Next

Configuration

Need help? Ask a question on Discord or info@stacktape.com.