cvat/site/content/en/docs/administration/advanced/cvat-architecture.md

37 lines
17 KiB
Markdown
Raw Normal View History

2025-09-16 01:19:40 +00:00
---
title: 'CVAT Architecture'
linkTitle: 'CVAT Architecture'
weight: 1
description: 'Description of CVAT architecture and components'
---
This guide is designed to provide a comprehensive overview of the architecture and components
of the CVAT and to illustrate how each component interacts within the system.
![CVAT Architecture](/images/cvat-arch.png)
<!--lint disable maximum-line-length-->
| Domain | Component   | Functionality | Description |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Analytics** | Vector                                                                                                                                                                                                                       | Event processing                                                                                               | There are several components that process events (backend, frontend, web UI). All events are sent to a single point - Vector, where they are processed and then redirected to ClickHouse. For more information, see {{< ilink "/docs/administration/advanced/analytics" "Analytics" >}}. |
|                         | ClickHouse                                                                                                                                                                                                                   | Event database                                                                                                 | Stores events. For more information, see {{< ilink "/docs/administration/advanced/analytics" "Analytics" >}}.                                                                                                                                                                             |
|                         | Grafana                                                                                                                                                                                                                     | Dashboards                                                                                                     | Data based on the web interface. For more information, see {{< ilink "/docs/administration/advanced/analytics" "Analytics" >}}.                                                                                                                                                           |
| **Data storage NFS** | RVVX access mode storage is required in case of multi-node deployment. Available with different types of storages: <br><br><li> AWS: Amazon Elastic File System (EFS)<li>Azure: Azure Files with NFS <li>GCP: Filestore NFS | Contains data required for CVAT operations                                                                   | It is necessary to have the capability for multiple mounting (across several nodes) in RWX mode. For more information, see {{< ilink "/docs/administration/advanced/k8s_deployment_with_helm" "K8 Deployment with Helm" >}}                                                               |
| **Data cache** | Apache kvrocks                                                                                                                                                                                                               | Used for data caching (queries and search). Suitable for environments that require frequent database queries. | [Apache Kvrocks](https://kvrocks.apache.org/)                                                                                                                                                                                                                               |
| **Job queue** | Redis                                                                                                                                                                                                                       | Queue manager                                                                                                 |                                                                                                                                                                                                                                                                             |
| **Database** | PostgreSQL                                                                                                                                                                                                                   | Database                                                                                                       | A database where data is stored in a structured form.                                                                                                                                                                                                                       |
| **CVAT.ai Components** | Ingress Controller (can be disabled)                                                                                                                                                                                         | Routing traffic.                                                                                               | {{< ilink "/docs/administration/advanced/k8s_deployment_with_helm" "CVAT deployment on Kubernetes with Helm" >}}                                                                                                                                                                         |
|                         | Authorization                                                                                                                                                                                                               | {{< ilink "/docs/manual/advanced/user-roles" "Authorization service based on Open Policy Agent." >}}                     |
| **Backend CVAT** | Backend                                                                                                                                                                                                                     | Main framework                                                                                                 | Main engine, uses Django + Django DRF.                                                                                                                                                                                                                                     |
| **Workers** | Import Worker                                                                                                                                                                                                               | Everything related to loading data - creating tasks, uploading annotations, etc.                               |                                                                                                                                                                                                                                                                             |
|                         | Export Worker                                                                                                                                                                                                               | Everything related to exporting data - exporting results, creating dumps, etc.                                 |                                                                                                                                                                                                                                                                             |
|                         | Annotation Worker                                                                                                                                                                                                           | Auto-annotation tasks.                                                                                         |                                                                                                                                                                                                                                                                             |
|                         | Utils Worker                                                                                                                                                                                                                 | Responsible for tracking various file changes and more.                                                       |                                                                                                                                                                                                                                                                             |
|                         | Analytics Report                                                                                                                                                                                                             | Reports and analytics that are displayed in the CVAT interface.                                               |                                                                                                                                                                                                                                                                             |
|                         | Quality Report                                                                                                                                                                                                               | Analysis and reports on data quality.                                                                         |                                                                                                                                                                                                                                                                             |
|                         | Webhook Worker                                                                                                                                                                                                               | Manages webhooks.                                                                                             |                                                                                                                                                                                                                                                                             |
| Auto annotation         | Auto Annotation Nucio                                                                                                                                                                                                       | Microservice application, used for auto annotation.                                                           | {{< ilink "/docs/administration/advanced/k8s_deployment_with_helm#optional-enable-auto-annotation-feature" "How to enable auto annotation feature." >}}                                                                                                                                   |
<!--lint enable maximum-line-length-->