Architecture


Deployment's architecture is designed to be scalable, fault-tolerant, distributed, and multi-tenant. Our systems are hosted on AWS and run on an auto-scaled ECS cluster.

Our architecture is made up of the following components:

Control Plane

The control plane consists of microservices, dashboards, and databases hosted on our AWS cloud. Its primary responsibilities are:

  1. user management
  2. creating, allocating, and scheduling jobs that are executed by the data plane
  3. billing management
  4. API management

Data Plane

The data plane consists of the deployment runner client. It's responsible for executing jobs, and is hosted on the customer's cloud account. Its primary responsibilities are:

  1. checking out source code in customer's account
  2. building and deploying code
  3. creating previews
  4. deleting deployments and freeing cloud resources.

The deployment runner requires only a private IP and an outbound connection to the control plane. All data communication between the control plane and the data plane is encrypted and happens over TLS. All deployment workflows and cloud operations are executed by the runner. Customer's source code and cloud access never leave their cloud!


Architecture Diagram


deployment_architecture