Hosting and self-hosting
Whether to use Facets hosted or self-host the control plane, what runs where, where your data is kept, private networking and upgrades.
Facets hosts the control plane for you, or it runs in your own AWS, GCP or Azure account. The control plane is the part of Facets that stores your setup and runs your releases.
Either way, the infrastructure Facets builds runs in your cloud accounts.
The two options, and how to choose
Pick Facets hosted for the fastest start. Pick self-hosted when the control plane, your Terraform state and your secrets must stay in your own cloud account.
| Facets hosted | Self-hosted | |
|---|---|---|
| Control plane runs in | Facets' cloud. Each customer gets its own copy of Facets, isolated from other customers | Your AWS, GCP or Azure account, in a network of its own |
| Terraform state and secrets | Facets' AWS account | Your account |
| Set up and upgraded by | Facets | Facets, with the access you give it at setup |
| How you start | Sign up at facets.cloud/signup. Nothing to install | A demo first. Once your access is in place, the Facets team launches it in about 60 minutes |
| Plan | Facets SaaS, priced per Resource Instance: one resource in one environment | Enterprise, with custom pricing |
What runs in your account when you self-host
The whole control plane. The Facets team sets it up in about 60 minutes once you've given it access; there's no self-serve installer.
- A network of its own: a VPC on AWS and GCP, a VNet on Azure.
- A Kubernetes cluster: EKS, GKE or AKS, on nodes with 8 vCPUs, 32 GB of memory and a 100 GB disk, running the web UI and API.
- Storage: Terraform state, logs and the control plane's metadata, such as overrides and environment settings.
- A secrets store for the secrets you add in Facets: AWS Secrets Manager on AWS, Google Secret Manager on GCP, OpenBao on Azure.
- Load balancers for the web UI and API, internet-facing by default.
Book a demo. The Facets team goes over your requirements.
Give Facets access. On AWS, a CloudFormation template creates an IAM role.
On GCP or Azure, you submit a service account's details.
The Facets team launches it in the region you choose, in about 60 minutes.
Sign in to your new control plane.
Where your data lives
Your infrastructure and its data stay in your cloud accounts. On Facets hosted, the control plane keeps your Terraform state, secrets and settings in Facets' own AWS account.
- Terraform state: an S3 bucket in Facets' AWS account.
- Secrets you add in Facets: AWS Secrets Manager in Facets' AWS account. An early-access setting moves an AWS environment's secrets into your own AWS Secrets Manager; the move can't be undone.
- Each environment's overrides and settings: the control plane's database, in Facets' AWS account.
- Blueprint, your project's architecture: a private repository in your own Git account. A project created with the Praxis CLI without
--vcs-accountuses Facets' facets-bot Git account instead.
Self-hosted, the state, the secrets and the control plane's database are in your account, in the region you choose at setup.
Private networking
If you self-host, the control plane runs in your own account, in a network of its own. Its web UI and API are still reached through internet-facing load balancers by default.
- On GCP: a self-hosted control plane can sit in your Shared VPC, on the same network as the services it talks to.
- Facets hosted: reached over the internet, at your tenant's web address.
Upgrades
Facets upgrades the control plane, hosted or self-hosted, with rolling deployments through the same kind of release it runs for your environments.
- Facets hosted: Facets runs and updates it in its own cloud. There's nothing for you to do.
- Self-hosted: Facets manages your control plane as an environment on its own control plane, and releases each update into your account with the role or service account you created at setup.
New platform features arrive in a control plane release about once a month. Infrastructure updates follow the IaC version and run as a weekly maintenance release, in the window you set.