Passa al contenuto principale

Requisiti di Sistema

I requisiti di sistema per Emblema sono progettati per supportare deployment sia in ambienti di sviluppo che in produzione enterprise. Questa guida fornisce le specifiche hardware, software e di rete necessarie per un'installazione ottimale.

Configurazioni di Deploymentโ€‹

๐Ÿงช Ambiente di Sviluppo/Testโ€‹

Configurazione Minima

  • CPU: 4 core (Intel i5/AMD Ryzen 5 o superiore)
  • RAM: 16 GB DDR4
  • Storage: 200 GB SSD disponibili
  • GPU: Opzionale (per AI processing accelerato)
  • Network: Connessione internet stabile (>= 10 Mbps)

Utilizzo Tipico: Development team, testing, demo

๐Ÿข Ambiente Produzione (Piccola Scala)โ€‹

Configurazione Consigliata

  • CPU: 8-16 core (Intel Xeon/AMD EPYC)
  • RAM: 64 GB DDR4 ECC
  • Storage: 1 TB NVMe SSD + 2 TB storage aggiuntivo
  • GPU: NVIDIA RTX 4080/RTX A4500 per AI workloads
  • Network: Connessione dedicata >= 100 Mbps

Utilizzo Tipico: 50-200 utenti attivi, 10K documenti, elaborazione moderata

๐Ÿš€ Ambiente Produzione (Larga Scala)โ€‹

Configurazione Enterprise

  • CPU: 32+ core (Intel Xeon Scalable/AMD EPYC)
  • RAM: 256+ GB DDR4 ECC con possibilitร  espansione
  • Storage: 4+ TB NVMe SSD, storage distribuito
  • GPU: Multiple NVIDIA A100/H100 per AI processing intensivo
  • Network: 1+ Gbps dedicato, ridondanza network

Utilizzo Tipico: 500+ utenti attivi, 100K+ documenti, elaborazione AI intensiva

Specifiche Hardware Dettagliateโ€‹

๐Ÿ’ป Processore (CPU)โ€‹

Requisiti Minimi per Produzione:

  • Architettura: x86_64 (AMD64)
  • Core: 8+ fisici (16+ thread)
  • Frequenza: 2.4+ GHz base clock
  • Cache: L3 >= 16 MB
  • Supporto: AVX, AVX2 per performance AI ottimali

Processori Raccomandati:

Intel Xeon Scalable (3rd Gen o superiore)
- Xeon Gold 6338: 32 core, 2.0 GHz, 48 MB L3
- Xeon Platinum 8380: 40 core, 2.3 GHz, 60 MB L3

AMD EPYC (3rd Gen o superiore)
- EPYC 7543: 32 core, 2.8 GHz, 256 MB L3
- EPYC 7763: 64 core, 2.45 GHz, 256 MB L3

๐Ÿง  Memoria (RAM)โ€‹

Configurazione Minima: 32 GB Produzione: 128+ GB Enterprise: 512+ GB

Specifiche:

  • Tipo: DDR4-3200 o superiore (DDR5 preferibile)
  • ECC: Obbligatorio per produzione
  • Configurazione: Dual/Quad channel per bandwidth ottimale

Allocation Guideline:

PostgreSQL: 25% RAM totale
Milvus: 30% RAM totale
Redis: 10% RAM totale
Background Workers: 20% RAM totale
OS + Other Services: 15% RAM totale

๐ŸŽฎ Processore Grafico (GPU)โ€‹

Per AI Processing Accelerato:

Configurazioni Supportate:

Development:
- NVIDIA RTX 4060 Ti: 16GB VRAM
- NVIDIA RTX 4070: 12GB VRAM

Production:
- NVIDIA RTX 4080: 16GB VRAM
- NVIDIA RTX A4500: 20GB VRAM
- NVIDIA A100: 40GB/80GB VRAM

Enterprise:
- NVIDIA H100: 80GB HBM3
- Multiple GPU setup con NVLink

GPU Requirements:

  • CUDA Compute Capability: >= 6.0
  • VRAM: >= 8GB (16GB+ raccomandato)
  • Driver: NVIDIA >= 525.60.13
  • CUDA: >= 11.8, < 12.0

๐Ÿ’พ Storageโ€‹

Architettura di Storage Multi-Tier:

Tier 1 - High Performance (Database, Cache):

  • Tipo: NVMe PCIe 4.0 SSD
  • Capacitร : 500GB - 2TB
  • Performance: >= 7000 MB/s read, >= 6000 MB/s write
  • IOPS: >= 1M random read IOPS
  • Uso: PostgreSQL, Redis, Milvus indices

Tier 2 - Balanced (Application, Logs):

  • Tipo: SATA SSD
  • Capacitร : 1TB - 4TB
  • Performance: >= 550 MB/s read/write
  • Uso: Application data, logs, temporary files

Tier 3 - Bulk Storage (Documents, Backups):

  • Tipo: NAS/SAN con SSD cache
  • Capacitร : 10TB+ (scalabile)
  • Performance: >= 1GB/s aggregate
  • Ridondanza: RAID 6 o superiore
  • Uso: MinIO object storage, backups

Storage Planning:

# Stima storage per documento medio
Document size average: 5MB
Processed artifacts: +50% (7.5MB)
Chunks + metadata: +20% (9MB)
Vector embeddings: +10% (10MB)
Total per document: ~10MB

# Calcolo capacitร 
1000 documents = ~10GB
10000 documents = ~100GB
100000 documents = ~1TB

Requisiti Softwareโ€‹

๐Ÿง Sistema Operativoโ€‹

Supportati Ufficialmente:

Ubuntu 22.04 LTS (Raccomandato)
- Kernel: 5.15+
- Supporto: Fino ad Aprile 2027
- Ottimizzazioni: Container runtime, GPU drivers

Ubuntu 24.04 LTS
- Kernel: 6.8+
- Supporto: Fino ad Aprile 2029
- Features: Latest container technologies

CentOS Stream 9 / RHEL 9
- Kernel: 5.14+
- Enterprise support disponibile
- Certificazioni security compliance

Debian 12 (Bookworm)
- Kernel: 6.1+
- Stabilitร  enterprise
- Supporto lungo termine

Configurazioni Kernel Ottimali:

# /etc/sysctl.conf optimizations
vm.max_map_count=262144
vm.swappiness=1
net.core.somaxconn=65536
net.ipv4.tcp_max_syn_backlog=65536
fs.file-max=2097152

๐Ÿณ Container Runtimeโ€‹

Docker Engine:

  • Versione: >= 24.0 (latest stable raccomandato)
  • Storage Driver: overlay2
  • Cgroup Version: v2
  • Compose: >= 2.20

Configurazione Docker:

{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"storage-driver": "overlay2",
"storage-opts": ["overlay2.override_kernel_check=true"],
"default-runtime": "runc",
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}

๐Ÿ—„๏ธ Database Dependenciesโ€‹

PostgreSQL 16:

  • Estensioni: pgvector, uuid-ossp, pg_stat_statements
  • Configurazione: Shared memory ottimizzata
  • Backup: pg_dump, streaming replication

Redis 7.x:

  • Moduli: RedisJSON, RediSearch (opzionali)
  • Persistenza: RDB + AOF
  • Clustering: Redis Cluster per high availability

Milvus 2.5+:

  • Storage: MinIO o S3-compatible
  • Metadata: etcd cluster
  • GPU Support: CUDA-enabled builds

Requisiti di Reteโ€‹

๐ŸŒ Connettivitร โ€‹

Bandwidth Requirements:

Development: >= 10 Mbps download, >= 5 Mbps upload
Production: >= 100 Mbps simmetrico
Enterprise: >= 1 Gbps simmetrico con ridondanza

Latency Requirements:

  • Database access: < 1ms (local network)
  • AI model inference: < 50ms
  • User interactions: < 100ms
  • Document uploads: < 5s per 10MB

๐Ÿ”’ Firewall e Porteโ€‹

Porte Inbound (Internet-facing):

80/tcp - HTTP (redirect to HTTPS)
443/tcp - HTTPS (Traefik proxy)

Porte Internal (Container network):

3000/tcp - www-emblema
3002/tcp - doc-emblema (Docusaurus)
5432/tcp - PostgreSQL
6379/tcp - Redis
19530/tcp - Milvus
9000/tcp - MinIO API
9001/tcp - MinIO Console
8080/tcp - Hasura GraphQL
8094/tcp - document-render
8888/tcp - Keycloak
9090/tcp - Prometheus
3030/tcp - Grafana
4000/tcp - LiteLLM
4001/tcp - mcp-demo
8000/tcp - background-task (FastAPI)
8001/tcp - spp-retrieval
3001/tcp - novu-bridge

Configurazione Firewall (Ubuntu):

# ufw rules
ufw allow 22/tcp # SSH
ufw allow 80/tcp # HTTP
ufw allow 443/tcp # HTTPS
ufw enable

๐Ÿ” SSL/TLS Requirementsโ€‹

Certificati:

  • TLS 1.3 supportato (TLS 1.2 minimo)
  • Certificati wildcard raccomandati per subdomain
  • Auto-renewal configurato (Let's Encrypt o enterprise CA)

Cipher Suites Supportate:

TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
TLS_AES_128_GCM_SHA256
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-RSA-AES128-GCM-SHA256

Configurazioni di Deploymentโ€‹

๐Ÿ  Single Server Deploymentโ€‹

Scenario: Piccole organizzazioni, PoC, development

Hardware:

  • CPU: 16 core
  • RAM: 64 GB
  • Storage: 1 TB NVMe
  • GPU: RTX 4070 (opzionale)

Servizi Co-located:

# docker-compose per single server
services:
- traefik (proxy)
- www-emblema
- background-task
- postgresql
- redis
- milvus
- minio
- keycloak
- monitoring

๐Ÿข Multi-Server Deploymentโ€‹

Scenario: Produzione media scala, alta disponibilitร 

Configurazione 3-Node:

Node 1 - Web + API Tier:

  • CPU: 16 core, RAM: 32 GB
  • Servizi: Traefik, www-emblema, keycloak
  • Load balancing: Multiple www-emblema instances

Node 2 - AI Processing Tier:

  • CPU: 32 core, RAM: 128 GB, GPU: RTX A4500
  • Servizi: background-task workers, LiteLLM
  • Scaling: Horizontal worker scaling

Node 3 - Data Tier:

  • CPU: 16 core, RAM: 64 GB
  • Storage: 4TB NVMe + 20TB bulk
  • Servizi: PostgreSQL, Milvus, MinIO, Redis

โ˜๏ธ Cloud Deploymentโ€‹

AWS Reference Architecture:

Application Load Balancer (ALB)
โ”œโ”€โ”€ ECS Fargate Cluster
โ”‚ โ”œโ”€โ”€ www-emblema (2+ tasks)
โ”‚ โ””โ”€โ”€ background-task (GPU instances)
โ”œโ”€โ”€ RDS PostgreSQL (Multi-AZ)
โ”œโ”€โ”€ ElastiCache Redis (Cluster mode)
โ”œโ”€โ”€ S3 (MinIO replacement)
โ”œโ”€โ”€ OpenSearch (Milvus alternative)
โ””โ”€โ”€ Cognito (Keycloak alternative)

Azure Reference Architecture:

Application Gateway
โ”œโ”€โ”€ Container Instances (ACI)
โ”œโ”€โ”€ Azure Database for PostgreSQL
โ”œโ”€โ”€ Azure Cache for Redis
โ”œโ”€โ”€ Blob Storage
โ”œโ”€โ”€ Cognitive Search
โ””โ”€โ”€ Azure AD B2C

Google Cloud Reference Architecture:

Cloud Load Balancer
โ”œโ”€โ”€ Google Kubernetes Engine (GKE)
โ”œโ”€โ”€ Cloud SQL PostgreSQL
โ”œโ”€โ”€ Memorystore Redis
โ”œโ”€โ”€ Cloud Storage
โ”œโ”€โ”€ Vertex AI Vector Search
โ””โ”€โ”€ Firebase Auth

Monitoring e Performanceโ€‹

๐Ÿ“Š Metriche di Sistemaโ€‹

Hardware Monitoring:

  • CPU: Utilizzo < 80% average
  • RAM: Utilizzo < 85%
  • Storage: I/O latency < 10ms
  • Network: Bandwidth utilizzo < 70%
  • GPU: Utilizzo durante inference

Application Monitoring:

  • Response time: < 200ms (95th percentile)
  • Error rate: < 0.1%
  • Document processing: < 30s per MB
  • Search latency: < 100ms

๐Ÿ”ง Tuning Recommendationsโ€‹

PostgreSQL Tuning:

-- postgresql.conf optimizations
shared_buffers = '25% of RAM'
effective_cache_size = '75% of RAM'
work_mem = '256MB'
maintenance_work_mem = '2GB'
checkpoint_completion_target = 0.9
wal_buffers = '16MB'

Milvus Tuning:

# milvus.yaml optimizations
dataNode:
gracefulTime: 5000
flushSize: 134217728

queryNode:
gracefulTime: 5000
searchReceiveBufSize: 16777216

indexNode:
buildParallel: 8

Prossimi Passiโ€‹

Con i requisiti di sistema chiari, puoi procedere con:

  1. Architettura Docker - Containerizzazione e orchestrazione
  2. Topologia di Rete - Configurazione networking avanzata
  3. Architettura di Sicurezza - Security hardening e compliance

I requisiti di sistema sono dinamici e si evolvono con le esigenze dell'organizzazione. Monitora regolarmente le performance e adatta le configurazioni di conseguenza.

Questa pagina ti รจ stata utile?