> For the complete documentation index, see [llms.txt](https://helpcenter.gitprotect.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://helpcenter.gitprotect.io/gitprotect/software-overview/system-components-and-architecture.md).

# System components & architecture

Examine the core architecture and primary components of GitProtect software.

**The GitProtect architecture relies on a modular, multi-tier framework comprising the central management service, backup agents, and scalable storage targets.**

***

## General information

A backup solution is a software system or service that creates and stores copies of data so it can be restored if the original data is lost, corrupted, deleted, encrypted by ransomware, or otherwise becomes unavailable.

**Xopero** specializes in enterprise backup, disaster recovery, and cyber-resilience solutions. One of our flagship products, **GitProtect**, provides comprehensive data protection across a wide range of **DevOps** and **Microsoft 365** environments. This solution enables organizations to protect business-critical data from accidental deletion, hardware failures, ransomware, cyberattacks, and other data-loss events.

{% hint style="success" %}
**GitProtect** can operate in two different deployment models: SaaS (cloud) and on-premises.
{% endhint %}

***

## Software architecture

**GitProtect** is designed to protect data across cloud services (**Microsoft 365**), SaaS applications (such as **Jira** and **Confluence**), and different **DevOps** platforms. It consists of two primary components: the management panel and the backup agent. The solution also requires a storage repository to store backup data. This storage can be managed by the user or provided by **Xopero** (i.e., **Xopero Cloud Storage**).

The management system is used for administration and configuration, while the backup agents handle the actual execution of all backup-related operations. When a backup task is initiated, the management service dispatches the job to the backup agent, which performs the requested operation. Once the task is completed, the agent transmits the execution results and logs back to the management system, where administrators can review them in the web console.

<figure><picture><source srcset="/files/iv73g3mW4zebARjlWIie" media="(prefers-color-scheme: dark)"><img src="https://696332517-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FtsE6XtJyUIEKVdSxPlS3%2Fuploads%2F7GYiR5OqSip7fSieRJqF%2Fgp_diagram.png?alt=media&amp;token=b187f953-aaca-4763-8e4a-5a27b8f0d2e5" alt=""></picture><figcaption><p><em>Communication between the main <strong>GitProtect</strong> backup system components. The management system serves solely as a configuration interface — all operational tasks are performed by the backup agents.</em></p></figcaption></figure>

***

## Primary components

### <mark style="background-color:$tint;">Management system</mark>

The centralized management interface of **GitProtect** is the **GitProtect Management Service**. It enables administrators to comprehensively manage backups and related resources through the web console. In the on-premises deployment model, **GitProtect Management Service** can be installed on supported **Windows** and **Linux** operating systems, deployed in a **Docker** environment, or hosted directly on compatible NAS devices. In the SaaS deployment model, the management service runs on **Xopero's** cloud infrastructure.&#x20;

{% hint style="info" %}
The client management service application is called **Xopero ONE Backup\&Recovery**.
{% endhint %}

Regardless of the deployment model, the platform provides identical features and functionality through a unified user interface. The management panel is divided into separate modules, each of them dedicated to a different aspect of backup management, such as backup plans, storage, and backup tasks.

### <mark style="background-color:$tint;">Backup agent</mark>

A backup agent is a lightweight software installed on a server, laptop, or cloud instance. It reads source data and transfers it to the designated storage destination.

**GitProtect** backup agents (also referred to as workers in the **GitProtect** environment) perform all operations requested by the **GitProtect Management Service**, including processing data (such as encryption and compression), browsing storage repositories, transferring data directly to the storage, and restoring data.&#x20;

Agents execute backup and recovery operations directly and **do not transfer backup data through the management panel**. They are responsible for performing all data-processing and infrastructure-related tasks within the system.

Depending on the deployment model and protected resources, administrators can deploy various backup agents, including the cloud worker, feature worker, and local worker.

{% hint style="info" %}
The client backup agent application is called **Xopero ONE Backup\&Recovery Agent**.
{% endhint %}

### <mark style="background-color:$tint;">Storage</mark>

A data storage system is a medium designed to persistently retain and manage collections of data so that they can be retrieved and used later. Storage technologies span physical media, such as solid-state drives (SSDs) and hard disk drives (HDDs); deployment models, including cloud and hybrid cloud; and systems purpose-built for workloads such as artificial intelligence (AI) and edge computing.

In **GitProtect**, a storage repository is a designated destination used to persistently retain, organize, and protect backup data for subsequent retrieval and disaster recovery. The solution features a multi-storage architecture that supports storing backup data on-premises (local disks, SMB, NFS, and iSCSI targets), in cloud repositories (**Xopero Cloud Storage**, **AWS**, and S3-compatible storage), or in a hybrid model.

***

## Useful links and items

{% content-ref url="/pages/ezmIfnTo5tG6rORWzKlF" %}
[Licensing overview](/gitprotect/licensing-overview.md)
{% endcontent-ref %}

{% content-ref url="/pages/xnteJIgHvVgyNpJP0GTy" %}
[Overview](/storage/overview.md)
{% endcontent-ref %}
