---
title: Architecture
description: Datadog, the leading service for cloud-scale monitoring.
breadcrumbs: Docs > CloudPrem > Introduction to CloudPrem > Architecture
---

# Architecture

{% callout %}
# Important note for users on the following Datadog sites: app.ddog-gov.com

{% alert level="danger" %}
This product is not supported for your selected [Datadog site](https://docs.datadoghq.com/getting_started/site). ().
{% /alert %}

{% /callout %}

{% callout %}
##### CloudPrem is in Preview

Join the CloudPrem Preview to access new self-hosted log management features.

[Request Access](https://www.datadoghq.com/product-preview/cloudprem/)
{% /callout %}

## Overview{% #overview %}

{% image
   source="https://datadog-docs.imgix.net/images/cloudprem/overview_architecture.af8d89bcd0b0b85546dd64ac1fb6fa0e.png?auto=format"
   alt="CloudPrem architecture showing Indexers, Searchers, Metastore, and Control Plane components interacting with object storage" /%}

CloudPrem uses a decoupled architecture which separates the compute (indexing and searching) and data on an object storage. This allows for independent scaling and optimization of different cluster components based on workload demands.

## Components{% #components %}

The CloudPrem cluster, typically deployed on Kubernetes (EKS), consists of several components:

{% dl %}

{% dt %}
**Indexers**
{% /dt %}

{% dd %}
Responsible for receiving logs from Datadog Agents. Indexers process, index, and store logs in index files called *splits* to the object storage (for example, Amazon S3).
{% /dd %}

{% dt %}
**Searchers**
{% /dt %}

{% dd %}
Handle search queries from the Datadog UI, reading metadata from Metastore and fetching data from the object storage.
{% /dd %}

{% dt %}
**Metastore**
{% /dt %}

{% dd %}
Stores metadata about the indexes, including split locations on the object storage. CloudPrem uses PostgreSQL for this purpose.
{% /dd %}

{% dt %}
**Control Plane**
{% /dt %}

{% dd %}
Schedules indexing jobs called *indexing pipelines* on indexers.
{% /dd %}

{% dt %}
**Janitor**
{% /dt %}

{% dd %}
Performs maintenance tasks, applying retention policies, garbage collecting expired splits, and running delete query jobs.
{% /dd %}

{% /dl %}

## Connection to Datadog UI{% #connection-to-datadog-ui %}

There are two ways to connect the Datadog UI to CloudPrem:

- [**Reverse connection**](https://docs.datadoghq.com/cloudprem/introduction/network/): Let CloudPrem initiate bi-directional gRPC requests to Datadog.
- [**Accept external requests from Datadog**](https://docs.datadoghq.com/cloudprem/configure/ingress/): Provide Datadog with a DNS endpoint for gRPC requests and configure a public Ingress to accept those requests.

## Further reading{% #further-reading %}

- [CloudPrem Installation Prerequisites](https://docs.datadoghq.com/cloudprem/install/)
