# DuploCloud Tenancy Models

DuploCloud supports a variety of deployment models, from basic multi-Tenant applications to complex single-Tenant deployments within customer environments. These models cater to different security needs, allowing customers to achieve their desired isolation level while maintaining operational efficiency.

DuploCloud-supported tenancy models, outlined below, include:

* [Application-Managed Multi-Tenancy](#application-managed-multi-tenancy)
* [DuploCloud Tenant-per-Customer](#duplocloud-tenant-per-customer)
* [DuploCloud Infrastructure-per-Customer](#duplocloud-infrastructure-per-customer)
* [Cloud Account-per-Customer](#cloud-account-per-customer)
* [Hybrid Model](#hybrid-model)
* [On-Premises](#special-hybrid-case-single-tenant-deployment-in-external-kubernetes-cluster)

## Tenancy Deployment Models

### Application-Managed Multi-Tenancy

<figure><img src="/files/LkS0gDXkavTcVL9NjHTG" alt=""><figcaption><p>DuploCloud pooled tenancy model</p></figcaption></figure>

* **Description**: The application manages Tenant isolation with DuploCloud structured pooled tenancy.
* **Use Case**: The most common scenario is where the application logic isolates customer data. DuploCloud Tenants are then used to isolate development environments (i.e., Nonprod and Prod).
* **Infrastructure**:
  * Shared DuploCloud Infrastructure (VPC, Tenant, VM/instances, S3 bucket, RDS). Cluster/namespace can also be shared.
  * Scaling: Increase compute instances for Kubernetes worker nodes as needed.

### DuploCloud Tenant-per-Customer

<figure><img src="/files/XULLfDYxsMAqu5Nxtp6M" alt=""><figcaption><p>A visual representation of a DuploCloud shared cluster with separate namespace per tenant</p></figcaption></figure>

* **Description**: Each customer gets a separate DuploCloud Tenant.
* **Use Case**: Suitable for older applications not designed for multi-tenancy, or security and compliance needs.
* **Infrastructure**:
  * Shared network layer (VPC).
  * Separate Tenants per customer with security boundaries (Security Group, KMS Key, SSH Key, Kubernetes Namespace).
  * Kubernetes Cluster is shared and boundaries are through the Namespace.

### DuploCloud Infrastructure-per-Customer

<figure><img src="/files/qSgQSgop0RP9nX7ltR78" alt=""><figcaption><p>A visual representation of a DuploCloud siloed cluster per Tenant with separate network infrastructure</p></figcaption></figure>

* **Description**: Each customer gets a separate DuploCloud Infrastructure.
* **Use Case**: Provides a higher security boundary at the network layer where customer access and data are separated.
* **Infrastructure**:
  * Separate VPC and Network Resources for each customer.
  * Clusters are inherently separate through Tenants isolated in different Infrastructures.
  * Higher cost due to duplicated resources and Operational Overhead.

### Cloud Account-per-Customer

<figure><img src="/files/d7DFzlQX4vSLDiR68FQt" alt=""><figcaption><p>A visual representation of a DuploCloud siloed account isolation and Tenant-per-customer</p></figcaption></figure>

* **Description**: Each customer gets a separate cloud account.
* **Use Case**: The least common model, used for customers requiring complete isolation.
* **Infrastructure**:
  * Separate accounts with a DuploCloud Platform installed in each.
  * Each account then has its own DuploCloud Infrastructure and Tenant.

### Hybrid Model

<figure><img src="/files/x975gFcwRECbNZW8wp6C" alt=""><figcaption><p>A visual representation of a hybrid of DuploCloud pooled tenancy model and shared cluster with a separate namespace-per-Tenant</p></figcaption></figure>

* **Description**: Combination of the above models as needed to meet specific requirements.
* **Use Case**: Diverse customer needs.
* **Infrastructure**:
  * A combination of previous models.
  * Organization-specific depending on requirements: some organizations may be in a pooled application environment whereas others may be more isolated through Tenant boundaries.

### Special Hybrid Case: Single-Tenant Deployment in an External Kubernetes Cluster

<figure><img src="/files/ydCU0pF4PDRHaBYEbPvd" alt=""><figcaption></figcaption></figure>

* **Description**: DuploCloud imports existing Kubernetes clusters from external environments.
* **Use Case**: A cluster and resources already exist, or customers require the application or services solution running inside their client's cloud account. Customers are comfortable creating their own Kubernetes environments.
* **Infrastructure**:
  * Customer's Cloud Account or On-Premises Cluster (EKS, AKS, GKE, Oracle, DOKS, etc.) in conjunction with a DuploCloud Infrastructure. This could be any Kubernetes Cluster not created by DuploCloud.
  * Manages both multi-Tenant and single-Tenant environments from the DuploCloud UI.

## Documentation and Support

* **Documentation**: [DuploCloud documentation](https://docs.duplocloud.com/docs) is available to support the development of your DuploCloud tenancy model.
* **Support:** [DuploCloud customer support](https://docs.duplocloud.com/docs/welcome-to-duplocloud/duplocloud-support-model) can assist you in designing your deployment model or creating and managing Kubernetes clusters.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.duplocloud.com/docs/automation-platform/application-focused-interface-duplocloud-architecture/duplocloud-tenancy-models.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
