ComputeStacks is a collection of open-source software, running in a clustered environment. This guide will walk through some of the key components to help you make an informed decision when planning your environment.

All servers will use Debian 12.

Definitions

Controller

The Controller is the primary ComputeStacks software. This manages the orchestration of containers onto the Container Nodes.

Region

A Region is typically a geographic location that is used to group Availability Zones.

Availability Zone

An Availability Zone is a unit of resources within the same region that is used to group Container Nodes.

<aside> 💡 This is a holdover from previous version of ComputeStacks that supported multiple clustered nodes within an availability zone. From v9 forward, all Availability Zones will only ever have 1 node.

</aside>

Container Node

Container Nodes are the physical compute resources that will run the containers.

<aside> 👉 While the CPU on a node is shared with all containers on the node, you must have enough cores to match the maximum package size you wish to offer. For example, if you wish to sell a 4 core CPU package, then you will need at least 4 CPU Cores available on the node.

</aside>

SECTIONS

Key Concepts

Networking

Container-To-Container

Each container is given a private IP Address, and by default can only communicate with other containers in the same project. If you choose to allow external connectivity, then our load balancer will forward 80/443 to your container.

External Connectivity

ComputeStacks supports http, tcp, and udp traffic. With http and tcp, the user has the option to route the traffic through our global load balancer and enable SSL/TLS offloading. (HTTP by default will always route this way).

Our load balancer runs on the container nodes.

Container Storage

Our default configuration is to run our containers using locally-mounted storage volumes. This provides both performance, stability, and cost benefits over shared/clustered storage, and for our typical customer, provides the best fit for their business model.

Backups

ComputeStacks uses an in-house developed backup solution, built upon the excellent borg backup tool. We include specific backup integrations for MySQL/MariaDB and PostgreSQL that ensure consistent and unobtrusive backups.

You will need to provide a separate backup server that will hold your customer’s backups. Our installation process will automatically configure a base debian install to serve this function. We also recommend that you do not share a single backup server across multiple regions.

Container Registry

ComputeStacks offers an integrated container registry to aid in your customers image development. For small deployments, we will run this on the same server as our controller. However, we recommend that this run on it’s own server.

Metrics

As part of our normal installation process, we will configure a dedicated metrics and log aggregation server. This will collect, store, and process logs and metrics from all servers and containers in the cluster. We recommend that you install one metrics server per region. If there is too much latency between the metrics server and the container nodes, alerting and resource usage data could be delayed.

DNS

ComputeStacks includes a DNS manager and integration to PowerDNS. This is used for both allowing your customers to host dns ones with you, while also providing support for generating wildcard SSL certificates for your load balancer. Our ansible installer can provision a replicated PowerDNS setup automatically.