loading experience
Progettazione · Progetto software

STACK — Il progetto software ai tempi dell'IA: architettura, tech stack poliglotta e centralità umana

AI-native, non AI-aggiunta.

Progettare nell'era dell'IA non significa aggiungere un endpoint verso un LLM: servono dimensionamento, Onion Architecture a microservizi, sicurezza, affidabilità e costi sotto controllo, uno stack poliglotta e un'interfaccia che si adatta all'uomo.

Scorri per esplorare
Il principio

Un'architettura AI-native richiede ingegneria, non un endpoint.

Un'architettura AI-native enterprise richiede un approccio rigoroso al dimensionamento delle risorse, un'organizzazione a microservizi basata su Onion Architecture, un equilibrio tra sicurezza, affidabilità e costi, e la scelta del tech stack poliglotta più adatto a combinare performance, manutenibilità e innovazione.

01 · AI Sizing

Dimensionamento dell'IA e scelta del modello

Si parte dall'analisi del carico di lavoro per trovare il giusto equilibrio tra accuratezza, latenza e Total Cost of Ownership (TCO). Non tutte le operazioni richiedono modelli da centinaia di miliardi di parametri.

SLM1B – 8B

Classificazione, triage, estrazione di entità, parsing strutturato. On-premise o su risorse ridotte, latenza sotto i 50 ms.

LLM70B+

Sintesi complessa, contenuti estesi e RAG (Retrieval-Augmented Generation) avanzato.

ReasoningSystem Two

Pianificazione multi-step, audit logico e problemi articolati, dove il calcolo all'inferenza sostituisce la velocità pura.

Richiesta in ingresso Classificazione e triageSLM
Task strutturato / Enum confidence ≥ 85%

SLM locale

1B-8B · On-Premise
Analisi / generazione caso complesso o ambiguo

LLM / Reasoning

Private Cloud / API

output strutturato

Σ Parametri quantitativi

VRAM richiesta
VRAM ≈ ( P × b / 8 + MKV(N) ) × 1,10

P = parametri · b = bit per peso (FP16 = 16, FP8 = 8, INT4 ≈ 4) · M_KV = KV cache del contesto N · 1,10 = margine per buffer e attivazioni.

VRAM necessaria con contesto di 8k token (GB)

8B · FP16
18,8 GB 24 48 80
8B · FP8
10,0 GB 24 48 80
8B · Q4_K_M
6,5 GB 24 48 80
70B · FP16
158,3 GB 24 48 80
70B · FP8
80,6 GB 24 48 80
70B · Q4_K_M
50,0 GB 24 48 80

I badge indicano su quale GPU entra il modello (24, 48, 80 GB): verde = sì. Quantizzare da FP16 a INT4 riduce i pesi fino al 75% (formati GGUF, AWQ, FP8) con una perdita di accuratezza tipicamente inferiore all'1%, da verificare sul proprio task. Llama 3.1: 8B = 32 layer, 70B = 80 layer, 8 teste KV, d = 128.

Cloud · API managed

OPEX

  • Scalabilità immediata
  • Zero gestione hardware
  • Costi variabili e vincoli di sovranità dei dati
On-Premise / Private Cloud

CAPEX

  • Totale data governance e air-gapping
  • Costi di calcolo fissi e prevedibili su grandi volumi
  • Costi di capitale e gestione infrastrutturale
02 · Onion Architecture

Architettura Onion a microservizi

L'architettura deve isolare il dominio applicativo dalle tecnologie di IA, che cambiano in fretta. L'Onion Architecture garantisce che la logica di business resti indipendente da modelli, database vettoriali e provider cloud: le dipendenze puntano sempre verso il centro.

  1. Domain Layer core invariante

    Entità di business, regole di dominio ed eventi di sistema. Nessuna dipendenza da moduli esterni o framework di IA.

  2. Application Layer Use Cases & CQRS

    Casi d'uso, orchestrazione dei flussi, comandi e query (CQRS via MediatR/C#).

  3. Infrastructure Layer Adapter & Drivers

    Adapter concreti per i modelli di IA (client Python/Rust), database vettoriali (Qdrant, Milvus), storage SQL/NoSQL e message broker.

  4. Presentation / API REST · gRPC · WebSockets · SignalR

    Endpoint REST, gRPC e connessioni in tempo reale.

Topologia dei microservizi enterprise

Client / Adaptive UIAPI GatewayOAuth2 · Rate-limit
Business Core ServiceC# .NET Core gRPC · RabbitMQ Database relazionalePostgreSQL / SQL Server
AI Inference WorkerPython / Rust Inference · RAG Vector DatabaseQdrant / Milvus

La triade di progetto: sicurezza, affidabilità e costi

Sicurezza · Zero Trust

Sanitizzazione degli input prima dell'invio ai modelli (anonimizzazione, PII masking), isolamento delle chiavi API, audit logging di ogni decisione automatizzata e difesa dalla Prompt Injection.

Affidabilità · Resilience

Circuit Breaker, Retry con exponential backoff e fallback graduali: se il modello primario non risponde, il sistema scala automaticamente su un SLM locale.

Costi · FinOps

Monitoraggio in tempo reale dei token consumati, caching semantico delle risposte (niente inferenze duplicate), budget capping e allocazione dinamica dei carichi.

Circuit Breaker

Tre stati

Retry · Exponential Backoff

Attesa tra i tentativi

tn = min( tcap , t0 × 2n )
tentativo 1
200 ms
tentativo 2
400 ms
tentativo 3
800 ms
tentativo 4
1,6 s
tentativo 5
3,2 s
tentativo 6
6,4 s
tentativo 7
12,8 s

t₀ = 200 ms, t_cap = 30 s. Si aggiunge jitter casuale per evitare che tutti i client ritentino insieme.

Caching semantico: costo al variare dell'hit rate
C = N × (1 − h) × c
h = 0%
$15.000
h = 20%
$12.000
h = 40%
$9.000
h = 60%
$6.000

Esempio illustrativo: 1.000.000 di richieste al mese a $0,015 ciascuna. L'hit rate reale dipende da quanto si ripetono le domande.

03 · Tech stack

Il tech stack poliglotta: C#, Python e Rust

Nessun linguaggio è la soluzione perfetta per ogni componente. Un ambiente poliglotta strutturato sfrutta i punti di forza di ciascuna tecnologia.

C# .NET Core

The Enterprise Backbone

  • RuoloCore di business, API Gateway, orchestrazione dei microservizi, CQRS
  • Punti di forzaPerformance estreme, tipizzazione forte, efficienza di memoria
Python

The AI Orchestration Engine

  • RuoloPipeline ML, PyTorch / Hugging Face, RAG, data science
  • Punti di forzaEcosistema IA nativo, flessibilità e rapidità di integrazione
Rust

The Ultra-Fast System Core

  • RuoloTokenizzazione ad altissima frequenza, binding C/C++, parsing JSON
  • Punti di forzaZero-cost abstractions, memory safety senza Garbage Collector
C# .NET Core

Perché è la colonna vertebrale enterprise

  • Infrastruttura open-source cross-platform, matura, supportata dalla community globale
  • Memoria e concorrenza Span<T>, Memory<T> e ValueTask: allocazioni minime e throughput elevato
  • Pattern puliti Dependency Injection, CQRS via MediatR e gRPC nativo per la comunicazione inter-service a bassa latenza
Python & Rust

Il ruolo dei due specialisti

  • Python resta il riferimento per l'ecosistema scientifico e i framework di Deep Learning (PyTorch, Transformers, LangChain); è incapsulato in microservizi dedicati solo all'elaborazione IA
  • Rust nei layer di sistema a latenza critica: senza Garbage Collector e con memory safety esegue tokenizzazione, preprocessing vettoriale e trasformazione dati a velocità vicine all'hardware
04 · Frontend

Il frontend nell'era dell'IA: centralità umana e Adaptive UI

Il frontend non è tramontato con l'IA: si è evoluto oltre le interfacce statiche con form rigidi. La tecnologia deve adattarsi alla cognizione umana, non viceversa.

Generative & Adaptive UI

L'interfaccia non è più una griglia statica di elementi cablati: è costruita o modificata dinamicamente in base all'intento dell'utente, al contesto operativo e al punteggio di confidenza del sistema.

Meno carico cognitivo

L'IA sintetizza le informazioni complesse e mostra all'utente soltanto le decisioni chiave da validare (Human-in-the-Loop), eliminando il rumore visivo.

Streaming & micro-feedback

Server-Sent Events e WebSockets danno un riscontro visivo immediato durante la generazione, aumentando trasparenza e fiducia percepita.

05 · Sintesi

Sintesi comparativa dell'architettura

Architettura tradizionale monoliticaArchitettura AI-native poliglotta
InfrastrutturaServer unificati / web app classicheMicroservizi disaccoppiati (Cloud / On-Prem)
Tech stackSingolo linguaggio (es. solo Python o Java)C# .NET Core (business) + Python (AI) + Rust (performance)
Gestione dei modelliChiamate dirette ad API esterneLayer Onion con triage SLM vs LLM e fallback automatici
Interfaccia utentePagine statiche e form rigidiAdaptive UI orientata all'esperienza umana
Sicurezza e costiPiani tariffari fissi / criteri di baseFinOps, PII Masking, caching semantico e Zero Trust
DigitalSolutions

Architettura al servizio delle persone.

Portaci il tuo progetto: lo dimensioniamo, lo isoliamo dal dominio e lo mettiamo in produzione con lo stack giusto per ogni componente.