Skip to content

Concepts

Daniel Kang edited this page Oct 30, 2016 · 9 revisions

Apps and Clusters

coldbrew-cli is based on two simple concepts: clusters and apps.

Applications / Apps

An application is the minimal unit of deployment, which includes a set of configurations, AWS resources, Docker images, etc. Typically you would create an app for a project of yours, but, it's totally possible to create/manage multiple apps with a single code project.

An app is identified by its name and it has to be unique in the cluster.

Clusters

A cluster is a set of configurations and AWS resources. A cluster can have multiple applications running. Applications running in the same cluster will share some of configurations and AWS resources (e.g. EC2 Container Instances in ECS Cluster), but, the isolation level between applications are still pretty good because they're running inside Docker containers.

A cluster is identified by its name, and, it must be unique in your AWS account and region.

In the upcoming releases, applications in the same cluster might be able to connect or share resources between them.

Application Commands

  • coldbrew init: Create a configuration file (e.g. coldbrew.conf) in your project.
  • coldbrew deploy: Deploy your changes to the target cluster.
  • coldbrew status: Check the running status of app.
  • coldbrew delete: Delete all resources for the app.

When you're done with your application and no longer need to run it, you run coldbrew delete to clean up all the resources that were managed by coldbrew-cli.

Cluster Commands

A cluster can be managed/configured using cluster management commands:

  • coldbrew cluster-create: Create and configure a new cluster.
  • coldbrew cluster-scale: Adjust cluster computing capacity (Docker hosts or ECS Container Instances)
  • coldbrew cluster-status: Check the current running status of cluster.
  • coldbrew cluster-delete: Delete all resources for the cluster.