Manage Environments
Kestra users can manage their environments with different levels of granularity. Kestra has three main concepts: instance, tenant, and namespace.
When to use multiple instances
An instance is a full deployment of Kestra. A best practice is to have at least two separate instances: one for development and one for production.
The development instance serves as a sandbox for testing and experimentation, while the production instance supports critical operations and should only be accessible to administrators.
Large organizations sometimes have three or four environments. In such cases, it's best to use the Kestra Enterprise Edition to manage all instances effectively, benefiting from improved governance, security, and scalability.
When to use multiple tenants
A tenant is a logical separation within an instance. You can think of tenants as isolated Kestra projects that share instance resources. A single instance can have multiple tenants.
Tenants are useful when Kestra manages operations for different customers or teams. For example, a company with ten customers could assign each one to a separate tenant. Similarly, an international organization could use tenants to separate workflows by country.
Tenants can also be used to isolate environments for different engineering teams within the same development instance.
Each tenant uses the same underlying instance resources. Therefore, it is not recommended to use tenants to separate development and production environments. If the underlying instance goes down, all tenants will be affected.
When to use multiple namespaces
Namespaces are useful for organizing your flows. They can help structure projects by domain or team.
Namespaces can also be used as lightweight “environments” for getting started, especially for open-source users who don’t need to manage multiple instances. However, this approach is not recommended for critical operations, since an issue in one namespace could impact production flows.
Was this page helpful?