Back to Cvat

CVAT Architecture

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

2.64.016.6 KB
Original Source

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.

DomainComponent  FunctionalityDescription
AnalyticsVector                                                                                                                                                                                                                      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/community/advanced/analytics" "Analytics" >}}.
                       ClickHouse                                                                                                                                                                                                                  Event database                                                                                                Stores events. For more information, see {{< ilink "/docs/administration/community/advanced/analytics" "Analytics" >}}.                                                                                                                                                                            
                       Grafana                                                                                                                                                                                                                    Dashboards                                                                                                    Data based on the web interface. For more information, see {{< ilink "/docs/administration/community/advanced/analytics" "Analytics" >}}.                                                                                                                                                          
Data storage NFSRVVX access mode storage is required in case of multi-node deployment. Available with different types of storages:
<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/community/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/community/advanced/k8s_deployment_with_helm" "CVAT deployment on Kubernetes with Helm" >}}                                                                                                                                                                         | |                         | Authorization                                                                                                                                                                                                               | {{< ilink "/docs/account_management/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/community/advanced/k8s_deployment_with_helm#optional-enable-auto-annotation-feature" "How to enable auto annotation feature." >}}                                                                                                                                   |