Gli sviluppatori non dovrebbero avere radici nella produzione; tutti tranne gli sviluppatori sono d'accordo su questo. Ma gli sviluppatori possono in qualche modo avere la loro torta e mangiarla anche loro. Sono un po 'sorpreso che nessuno abbia menzionato esplicitamente questo:
Uno dei miei lunghissimi clienti di piccole imprese ha un sito Web con un'installazione Drupal, diversi siti WordPress, un forum SMF e poche altre app Web casuali. Sono l'amministratore delegato del contratto (e per motivi storici aggiorno / hackero WordPress e SMF quando necessario) e il mio cliente ha il suo contratto Drupal sviluppatori. L'ambiente è costituito da diverse macchine virtuali VMware su un provider di cloud pubblico.
Gli sviluppatori vogliono davvero avere l'accesso come root e ne hanno bisogno. È loro responsabilità scrivere le regole di riscrittura di nginx per far funzionare tutte le loro cose Drupal personalizzate, per esempio. Ma al diavolo non sto dando loro l'accesso root sul server di produzione, e il mio cliente è d'accordo con me su questo.
Quindi abbiamo compromesso: ottengono l'accesso come root sul server Web di prova (che è generalmente identico alla produzione tranne che per il suo indirizzo IP e si trova sullo stesso cloud). Che, come la produzione, ha etckeeper in modo che io possa vedere tutte le modifiche necessarie per apportare e tutti i pacchetti che hanno installato. Posso quindi portare i cambiamenti in produzione o dire loro cosa c'è che non va in quello che vogliono fare. E se hanno fatto un casino (non l'hanno ancora fatto, grazie a Dio) posso facilmente ripristinare le loro modifiche.
Non hanno alcun accesso al server del database di produzione; non hanno nemmeno accessi utente. Solo io e il mio cliente.
(La stessa app Web, si distribuiscono direttamente con Git, e se la rompono, riescono a risolverlo e spiegano al mio cliente perché dovrebbero continuare a essere i suoi sviluppatori. Anche se il mio client mi avrebbe CC su tale e-mail in modo che potessi ridere di loro o facepalm.)