So che dovremmo avere almeno 3 ambienti diversi durante lo sviluppo di una soluzione:
- Sviluppo : i programmatori sono liberi di cambiare e apportare modifiche in qualsiasi momento per testare rapidamente il loro codice e integrarsi con altre modifiche, senza il timore di rompere nulla: questo è collegato ai database e ai servizi TEST;
- UAT : dovrebbe essere trattato con riverenza dagli sviluppatori, in quanto dovrebbe contenere una copia "quanto più buona" possibile dell'ambiente di produzione per quanto riguarda l'hardware, con la differenza che questo ambiente è collegato ai database UAT con una copia modificabile dei dati di produzione - è utilizzata sia dal team Q & A sia dagli utenti per convalidare le modifiche che andranno in produzione
- Produzione : il vero affare.
Ho esaminato questa domanda su SoftwareEngineering e questa domanda su ServerFault , e sembrano differire su quale sia il significato dell'ambiente di staging . Inoltre, la pagina di Wikipedia sull'argomento afferma che:
The primary use of a staging environment is to test all installation/configuration/migration scripts and procedures, before they are applied to production environment. This ensures that all major and minor upgrades to the production environment will be completed reliably without errors, in minimum time.
Per me, Staging è uguale a UAT, in cui è necessario testare le procedure di applicazione e distribuzione prima di passare al mondo reale. Quindi, spingiamo il pacchetto con le modifiche a UAT nello stesso modo in cui spingiamo alla produzione, completamente automatizzato e con tutta la cerimonia che dovremmo avere con l'ambiente di produzione.
Detto questo, qual è la differenza tra un ambiente UAT e un ambiente di Staging?
-
EDIT: Solo per essere chiari, sto pensando in termini di un'applicazione Web, che si tratti di un sito Web o di un sito Web intranet. Nessuna app "form" o app per dispositivi mobili.