Deployment
Architecture
Software architecture diagram of the QALITA Platform
Container diagram of QALITA Platform control plane components
Network Flow Matrix
QALITA Platform network flow diagram
Ingress:Port | Service:Port | Pod:Port |
---|---|---|
-- | qalita-postgresql:5432 | qalita-postgresql-0:5432 |
-- | qalita-redis-master:6379 | qalita-redis-master-0:6379 |
-- | seaweedfs-s3:8333 | seaweedfs:8333 |
api.domain.com | qalita-backend-service:3080 | qalita-backend:3080 |
doc.domain.com | qalita-doc-service:80 | qalita-doc:80 |
domain.com | qalita-frontend-service:3000 | qalita-frontend:3000 |
Agents must be able to communicate with the backend of the control plane. Make sure to allow traffic to the backend Ingress Point (endpoint or URL)!
Requirements
Platform
Compute Resources
The control plane includes the frontend, backend, and documentation. It requires minimal compute resources.
Azure Node | Specs | |
---|---|---|
![]() | Node specs: linux/amd64 - 4 vCPU - 16 GB RAM - 100 GB SSD Fast Storage | |
Usage | Memory | CPU |
Idle | 500 MB | 0.5 |
Active | 2 GB | 1 |
Optimal | 4 GB | 2 |
Storage
Storage includes:
- The
PostgreSQL
relational database holds platform management data, metrics, and user activity logs. - The
Redis
cache speeds up the interface and backend queries. - The
SeaweedFS
storage includes task logs and assets (pack archives).
Usage | PostgreSQL | SeaweedFS |
---|---|---|
Minimal | 1 GB | 1 GB |
Depends on metrics volume and analysis frequency | 10+ GB | 10+ GB |
Agents
Agent requirements vary significantly depending on the type
and volume
of the data sources it analyzes.
Usage | Memory | CPU |
---|---|---|
Minimal | 50 MB | 0.2 |
Depends on source volume and analysis frequency | . | . |
I SaaS Cloud Deployment
QALITA Platform offers a fully managed solution hosted on an HDS and SecNumCloud-certified European cloud.
QALITA Platform architecture diagram in SaaS mode
II Kubernetes Deployment
Architecture diagram of QALITA Platform deployed on Kubernetes
Prerequisites
To deploy on a managed Kubernetes cluster, you will need:
- A Kubernetes cluster
- A valid license key 📀 Purchase a license or contact us for a trial key
- Kubernetes
1.24+
- Helm
3.0+
- Cert-Manager
1.0+
Dependencies
Installing the QALITA Helm Chart
For the most up-to-date documentation on the Helm chart:
Go directly to the Artifacthub page
1. Create a Namespace
Create a qalita
namespace in your Kubernetes cluster.
2. Create a Secret
Create a qalita-license
secret in the qalita
namespace containing your license key.
3. Add the Chart Repository
helm repo add qalita https://helm.qalita.io/
helm repo update
4. Resolve Dependencies
helm dependency update
5. Install
You’ll need to adjust the values.yaml
file to best fit your organization.
See an example values file
helm install qalita qalita/qalita -f values.yaml
6. Use it
The chart deploys the following resources:
- QALITA App
- QALITA API
- QALITA Docs
- QALITA PostgreSQL Database
- QALITA Redis Cache Database
- QALITA SeaweedFS S3 Storage
With cluster.domain
=example.com, the following endpoints will be available:
Values
You’ll need to adjust the values.yaml
file to best fit your organization.
See an example values file
For production use, it is strongly recommended to deploy the platform on a managed Kubernetes cluster.
QALITA offers a fully managed solution hosted on an HDS and SecNumCloud-certified European cloud.
III Docker Compose Deployment
See the tutorial:
Docker Compose Deployment
Possible Agent <->
Source Configurations
1. Same Namespace:
- Agent is deployed in the same namespace with
agent.enabled=true
- Data sources are deployed in the same namespace
2. Different Namespace:
- Agent is deployed in a different namespace
- Data sources are in the same namespace
3. Different Namespace + External Source:
- Agent is deployed in a different namespace
- Connects to a source in another environment (VM, localhost, etc.)
4. Fully External:
- Agent is deployed in any other environment (VM, localhost, etc.)
- Connects to a data source in any external environment (VM, localhost, etc.)
To learn how to deploy an agent, see agent