Self-hosted CNAP
Deploy the Cloud Native Application Platform on your own infrastructure to build and run application clouds.
Self-hosted CNAP is in the making. Stay tuned for updates and join the waitlist.
Self-hosting is particularly useful for organizations that require full control over their infrastructure, data, and security and want to use CNAP for internal purposes. See use cases.
Key Considerations
CNAP can be hosted in various ways, depending on your needs and preferences of learning the details to scale the platform components independently at will.
Recommendation: The easiest production-ready way to run CNAP are the last two * options, as they provide the most flexibility and scalability. All that is needed is a single Kubernetes cluster to deploy CNAP, which can also be used to execute bundles.
The following options are ordered from the lowest to the highest level of abstraction:
CLI
At the base CNAP is a user-friendly cross-platform binary CLI containing, configuring and interacting with all necessary components.
Container
Prebuild OCI image for Docker, Podman, etc. to run CNAP on any container runtime.
Kubernetes*
Ready to use Kustmize manifests and Helm chart. Deploy CNAP on any Kubernetes cluster.
CNAB Bundle*
CNAP inside a CNAB bundle. Use a managed CNAP to deploy a self-hosted CNAP.
Pre-requisites
For test environments, CNAP does not need many resources, 1 CPU and 512MB memory are more than enough.
CNAP relies on a single database, a workflow engine, and a cloud-native runtime to execute bundles.
- CockroachDB/PostgreSQL is the only database that must be used to provide persistence to all components of CNAP, such as Temporal.
- Temporal is the reliable workflow engine to manage critical business logic and the lifecycle of apps.
- Kubernetes to securely execute bundles with Porter. Jobs can run on any cluster while CNAP could run anywhere else. Bundle executions may receive another target Kubernetes cluster’s credentials to intern deploy their resources if needed.
UX-enhancing Dependencies
To enhance the user experience, the following components are recommended:
- Kubernetes Dashboards: Rancher, Grafana Prometheus stack, etc.
- Billing Integration: Kubecost + Stripe