What are Stacks?
Stacks are collections of physical infrastructure resources like storage and compute. At its core, a stack runs services like Docker Swarm, to which applications are deployed.
- Load balancers
- Block storage
- Security groups
- Autoscaling groups
How are Stacks deployed to my cloud?
In Amazon Web Services, Stacks are deployed via CloudFormation templates inside your own AWS account.
In Microsoft Azure, Stacks are deployed via Resource Groups using Azure Resource Manager (ARM) templates.
What kinds of properties do Stacks have?
The following is a partial list of important Stack properties.
Name - Unique name for the stack
UUID - Universal Unique Identifier
Type - AWS or Azure
Environment - Label (i.e. development, staging, production)
Region - Region where stack is created (i.e. us-east-1)
Network - An attached network
Subnets - 2 or 4 subnets depending on whether the stack is High-Availability
State - Un-deployed, deployed, deploying, un-deploying, failed
Stack actions direct Caylent to perform an operation on a Stack.
Launch - Deploys a Stack to the cloud provider.
Destroy - This un-deploys the Stack from the cloud provider. It can be re-launched later.
Delete - Completely deletes a Stack. It cannot be re-launched.
Relationship to Apps
Stacks can be deployed standalone, but a more common scenario is that you'll want to deploy one or more applications to them.
Stacks can be attached to one or more containers or app collections. Similarly, containers and app collections can be attached to one or more Stacks.
This creates a flexible framework where applications and Stacks have a many-to-many relationship and supports almost any configuration you can imagine.