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:
- Architettura Docker - Containerizzazione e orchestrazione
- Topologia di Rete - Configurazione networking avanzata
- 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.