Home
NFR-5: Scalabilità
Descrizione
[NFR-5.01] La scalabilità definisce la capacità del sistema di gestire un carico aumentato mantenendo prestazioni accettabili. [NFR-5.02] I sistemi DOVREBBERO (SHOULD) scalare orizzontalmente dove possibile e DEVONO (MUST) gestire un carico aumentato senza degradazione significativa.
Guida
Costruire per la scalabilità
[NFR-5.03] I sistemi DEVONO (MUST) essere progettati per scalare con la domanda:
- Scaling orizzontale: Progettare applicazioni stateless che possano essere facilmente scalate aggiungendo più istanze.
- Auto-scaling: Progettare sistemi che possano scalare automaticamente in base a metriche di domanda.
- Load balancing: Implementare strategie di bilanciamento del carico per distribuire il traffico su più istanze.
- Scaling del database: Considerare sharding del database, replica in lettura o strategie di partitioning se richiesto, evitando complessità non necessarie.
- Architettura a microservizi: Dove appropriato, progettare servizi loosely coupled che possano essere scalati indipendentemente.
- Ottimizzazione delle risorse: Implementare algoritmi e strutture dati efficienti per minimizzare l’uso di risorse per operazione.
Validare la scalabilità
Il scalability testing determina la capacità del sistema di scalare up o down in base alla domanda mantenendo livelli di prestazioni accettabili.
DEVE (MUST) essere testato:
- [NFR-5.04] Capacità di scaling orizzontale (aggiungere più istanze)
- [NFR-5.05] Strategie di scaling e sharding del database (se presenti)
- [NFR-5.06] Configurazione e soglie di auto-scaling
- [NFR-5.07] Allocazione e ottimizzazione delle risorse
DOVREBBE (SHOULD) essere testato:
- [NFR-5.08] Limiti dello scaling verticale (aggiungere più potenza alle istanze esistenti)
- [NFR-5.09] Distribuzione geografica e content delivery network
- [NFR-5.10] Indipendenza dello scaling dei microservizi
- [NFR-5.11] Implicazioni di costo delle strategie di scaling
- [NFR-5.12] Impatto sulle prestazioni delle operazioni di scaling
Misurazione
| Stato |
Criteri |
| 🟢 VERDE |
Scala automaticamente in base alla domanda, test di scalabilità superati, performance mantenu te sotto carico |
| 🟡 AMBRA |
Scaling manuale richiesto, test di scalabilità parziali |
| 🔴 ROSSO |
Nessuna strategia di scaling, degrado significativo sotto carico |
Riferimenti