Un server di produzione è un server utilizzato per ospitare il contenuto del sito Web e le applicazioni per la distribuzione in un ambiente live. È il server principale su cui gli utenti finali accedono ai siti Web e alle applicazioni Web ed è indicato anche come server live.
Un server di produzione può essere una macchina dedicata, un server virtuale, un PC di base o più macchine dislocate geograficamente. Per le piccole imprese e le applicazioni semplici, tutte le attività coinvolte nella distribuzione possono essere condotte su un singolo computer. Nella distribuzione del software a livello aziendale, più server vengono generalmente utilizzati per le fasi necessarie per creare e lavorare sul software e fornire applicazioni agli utenti finali.
Un'architettura di distribuzione comune è sviluppo, test, messa in scena, produzione (spesso espresso come SVILUPPO, TEST, STAGING, PROD or DTSP). L'ambiente di sviluppo è il computer in cui vengono creati i programmi software e vengono apportate eventuali modifiche alla codifica, di solito la workstation di uno sviluppatore. In questa architettura, quando gli sviluppatori hanno terminato con l'applicazione, il server di sviluppo la distribuisce al server di test / QA. Dopo il test, il software viene distribuito su un server di staging, dove tutti gli elementi di un sito Web o di un'applicazione vengono assemblati in modo simile nel modo in cui appariranno dal vivo. Una volta che tutto appare corretto e funziona correttamente sul server di staging, il software viene distribuito al server di produzione, che lo rende accessibile agli utenti finali.
Tradizionalmente, gli ambienti di sviluppo e di produzione sono stati separati per diversi motivi. Ad esempio, un problema con software non testato come un ciclo infinito o una perdita di memoria potrebbe ostacolare il funzionamento del server di produzione e causare problemi agli utenti finali. Un'altra preoccupazione sono gli errori visualizzati agli utenti.
Di conseguenza, in ambienti di qualsiasi dimensione, lo sviluppo sul server di produzione è stato fortemente scoraggiato. Recentemente, tuttavia, sono stati tentati altri approcci per rimuovere fasi dalla distribuzione del software e rendere i processi più efficienti. Un approccio utilizzato in alcuni ambienti DevOps è il contrassegno delle funzionalità, che consente agli sviluppatori di selezionare determinate funzionalità che saranno disponibili per utenti specifici. I flag di funzionalità possono rendere possibile lo sviluppo sul server di produzione con funzionalità disattivate per la maggior parte degli utenti finché non sono state dimostrate pronte per essere pubblicate per tutti gli utenti.