So che dovremmo avere almeno 3 ambienti diversi durante lo sviluppo di una soluzione:
- Sviluppo : i programmatori sono liberi di cambiare e inviare cambiamenti in qualsiasi momento al fine di testare rapidamente il loro codice e integrarsi con altri cambiamenti, senza il timore di infrangere nulla - questo è collegato ai database e ai servizi TEST;
- UAT : dovrebbe essere trattato con rispetto da parte degli sviluppatori, in quanto dovrebbe contenere una copia "il 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 - viene utilizzato sia dal team di domande e risposte che dagli utenti per convalidare le modifiche che andranno alla produzione
- Produzione : il vero affare.
Ho esaminato questa domanda su SoftwareEngineering e questa domanda su ServerFault e sembrano differire sul significato dell'ambiente di gestione temporanea. Inoltre, la pagina di Wikipedia sull'argomento afferma che:
L'uso primario di un ambiente di gestione temporanea è testare tutti gli script e le procedure di installazione / configurazione / migrazione, prima che vengano applicati all'ambiente di produzione. Ciò garantisce che tutti gli aggiornamenti maggiori e minori all'ambiente di produzione vengano completati in modo affidabile e senza errori, nel minor tempo possibile.
Per me, la stadiazione è uguale a UAT, dove è necessario testare le procedure di applicazione e distribuzione prima di spingere nel 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 corretta tra un ambiente UAT e un ambiente di staging?
-
EDIT: Giusto per essere chiari, sto pensando in termini di un'applicazione Web, che si tratti di un sito Web Internet o di un sito Web Intranet. Nessuna app "moduli" o app mobile.