Cascade is an open-source containerized application deployment solution with observability built in. Users can add their containerized applications and Cascade will generate the Terraform config files to deploy each application alongside a collector container onto AWS.
It's a containerized application deployment accelerator; it builds and deploys a cloud infrastructure for containers with a side collector for distributed tracing.
Cascade is a fullstack deployment tool that's:
- Easy to install: runs on Docker
- Easy to use: automates deployment process with a few clicks
- Open source: provides base Terraform templates to build upon
Plan in 3 Steps | Deploy and View Progress |
---|---|
Cascade was built for users who wish to:
- Deploy their containerized applications onto AWS ECS Fargate
- See logs and traces without manual effort
- Configures the minimum AWS infrastructure required to deploy a containerized app
- Reduces the need to navigate through the AWS management console
- Sets up logs and traces by default
- Instrument with
cascade-agent
- Configure AWS CLI
- Run Docker daemon
- Define a container image file
Cascade depends on 3 parts:
cascade-agent
: the instrumentation that generates traces, and sends it to AWS X-Raycascade-backend
: the API server that creates a user-specific S3 bucket for container information, and generates Terraform config files for deploymentcascade-gui
: the GUI where users can deploy their containerized application, access the generated Terraform config files, and view logs and traces
You can run Cascade with Docker by following these steps:
- Run the Docker daemon
- Clone this
cascade-compose
directory cd
intocascade-compose
and executedocker-compose up
git clone https://github.com/try-cascade/cascade-compose.git && cd cascade-compose && docker-compose up
Cascade will now be ready to plan and deploy your containerized application. You can access the GUI at port 3000.
Images
cascade-backend
: handles Terraform config files and communication between Cascade and AWScascade-gui
: the GUI that handles user interactions and displays a status dashboard
Container Communication
The default Docker network created by docker-compose
enables containers to communicate between themselves using their container names.
AWS Credentials
docker-compose
defines a volume for AWS credentials for cascade-backend
. When the backend container is started, it uses the volume to allow Terraform to access your configured AWS Credentials.
In docker-compose.yml
, the volume for AWS credentials is defined as ~/.aws
, which is the default path on Linux and macOS. Users with a different path for .aws
must respecify the host path accordingly.
SF Bay Area, CA
Austin, TX
Chicago, IL
Denver, CO