# Self-hosted Architecture

### Overview

Our self-hosted architecture is designed to provide enterprise-grade security, scalability, and reliability for agentic AI systems. The architecture is built around a Service Fabric model that supports multi-tenancy, cross-team collaboration, and comprehensive lifecycle management.

<figure><img src="/files/2EWzrd6WxrGL5s2OjroD" alt=""><figcaption></figcaption></figure>

### Architecture Components

#### 1. Cross-team Workflow

Supports collaboration across engineering teams with clear coordination and structure:

* Standardized Interfaces: Shared APIs and messaging protocols streamline communication and integration.
* Managed Dependencies: Teams align on service contracts and reuse common infrastructure through defined collaboration patterns.

#### 2. Team Boundaries

Maintains performance, security, and organizational clarity through isolation and ownership:

* Isolated Resources & Networks: Dedicated compute, storage, and access controls per team.
* Service Accountability: Clear service ownership and inter-team APIs ensure modular, maintainable systems.

**3. Tenant Management**

<table><thead><tr><th>Tenant Onboarding</th><th>Tenant Boundaries</th><th data-hidden></th></tr></thead><tbody><tr><td><p></p><p>Enables secure, consistent, and scalable setup for new tenants:</p><ul><li>Automated Setup: Infrastructure, security, and monitoring provisioned via code.</li><li>Tailored Configuration: Dynamic resource allocation and tenant-specific settings.</li></ul></td><td><p></p><p>Guarantees strong tenant isolation across system layers:</p><ul><li>Multi-level Isolation: Separate network, compute, and encrypted data boundaries.</li><li>Scoped Access: Role-based controls and full audit logging per tenant.</li></ul></td><td></td></tr></tbody></table>

#### 4. Engineering Lifecycle

Covers the full pipeline from development to production monitoring:

* End-to-end Automation: Includes dev environments, testing, and CI/CD pipelines.
* Reliable Delivery: Staged releases, rollbacks, and observability ensure quality in production.

#### 5. Application Team Workflow

Optimized for productivity, reliability, and resilience:

* Development Best Practices: Standardized coding, reviews, and deployment strategies.
* Operational Excellence: Auto-scaling, efficient resource use, and responsive incident handling.

***

### Infrastructure Details

<details>

<summary>Infrastructure Information</summary>

#### DuploCloud Infrastructure

Our infrastructure is managed through DuploCloud, providing automated cloud operations:

**GCP Projects and Clusters**

**Production Environment:**

* **GCP Project**: `sullyai-prod`
* **Cluster**: [`duploinfra-prod`](https://console.cloud.google.com/kubernetes/clusters/details/us-west1/duploinfra-prod/details?inv=1\&invt=AbzrUw\&project=sullyai-prod\&supportedpurview=project)
* **Region**: us-west1

**Non-Production Environment:**

* **GCP Project**: `sullyai-nonprod`
* **Cluster**: [`duploinfra-nonprod`](https://console.cloud.google.com/kubernetes/clusters/details/us-west1/duploinfra-nonprod/details?inv=1\&invt=AbzrUw\&project=sullyai-nonprod\&supportedpurview=project)
* **Region**: us-west1

**Production V2 Environment:**

* **GCP Project**: `sullyai-prod-v2`
* **Cluster**: [`gke-global-primary`](https://console.cloud.google.com/kubernetes/clusters/details/us-central1-b/gke-global-primary/details?inv=1\&invt=AbzrUw\&project=sullyai-prod-v2\&supportedpurview=project)
* **Region**: us-central1-b

**DuploCloud Namespaces**

**Development:**

* Namespace: `DEV01`
* Purpose: Development and testing workloads
* Access Pattern: `http://infra-proxy/api/v1/SERVICE_A/*`

**Staging:**

* Namespace: `STAGE`
* Purpose: Pre-production validation
* Access Pattern: `http://infra-proxy/api/v1/SERVICE_A/*`

**Production:**

* Namespace: `PROD`
* Purpose: Production workloads
* Access Pattern: `http://infra-proxy/api/v1/SERVICE_A/*`

**Service Routing**

Services are accessed through a standardized routing pattern:

* **Development**: `SERVICE_A (Namespace dev) /api/v1/`
* **Staging**: `SERVICE_A (Namespace stag) /api/v1/`
* **Production**: `SERVICE_A (Namespace prod) /api/v1/`

</details>


---

# 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://sully.gitbook.io/sully.ai-docs/FEM1tMOJsSSszbLOgKLA/self-hosted-architecture.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.
