In passato ho affrontato molti di questi problemi e hai ragione, è un incubo. Ti suggerisco di iniziare mettendo te stesso saldamente dalla parte delle migliori pratiche e dicendo "Prendi una copia di live, per quanto allettante - NON è un'opzione". Ti mette nel giusto spazio sin dall'inizio, per i miei motivi per cui vedi una mia precedente risposta .
Ottenere un buon ambiente di test è fondamentale, spesso si evolve insieme agli ambienti di produzione e aiuta a testare i percorsi di aggiornamento e i bug regolari. Mettendo il tempo qui e assicurandoti di avere una squadra e una strategia per il controllo della qualità, pagheresti i dividendi su tutta la linea.
Detto questo, questa è la vita reale e ci sono sempre problemi che vengono scoperti solo dal vivo. Quindi, come mai puoi indagare su un problema che si sta verificando su un sistema, per un cliente, e da nessun'altra parte?
La chiave è in registrazione.
Hai il codice e hai i log. Quello che devi fare è un processo di eliminazione per capire cosa sta succedendo nelle varie fasi.
Ma cosa succede se i registri e i dati che ti servono non esistono?
Quindi sei un passo avanti, capire che cosa è necessario per risolvere il problema è il primo passo sulla strada per risolverlo. Identifica le domande che hai (il codice ha inserito questa istruzione IF o lo salta) e lo dimostra.
Questo è molto più facile a dirsi che a farsi, quindi ho detto che qui ci sono alcuni suggerimenti:
- I tuoi progressi su questi temi sono ora inesorabilmente collegati ai tuoi piani di rilascio, il rapido sviluppo e la rapida implementazione giocano un ruolo più che mai.
- Ottieni le persone che scrivono il codice risolvendo i problemi, altrimenti avrai una squadra che canta i valori di una buona registrazione e un'altra che li ignora
- NON registrare MAI qualcosa di sensibile / inappropriato nei log non sicuri
- Mantieni la tua comunicazione aperta, un cliente è molto più reattivo se conosce il piano, capisce cosa c'è nel rilascio e quando lo prenderà
- Gli sviluppatori che vengono rimossi dai sistemi live non significa necessariamente che non possono porre domande, si consiglia di chiedere loro di accoppiarsi con i ragazzi dell'Ops che fanno domande, ma tenendo le mani lontane dal keyboad
- Considerare seriamente di lasciare il log in atto, se ti ha punzecchiato una volta, quindi conservare le risorse diagnostiche lì renderà molto più facile risolverlo.
La chiave per risolvere questo problema è avere un buon processo di controllo qualità e frequenti cadute incrementali in produzione (che possono aiutarti a indagare sui problemi man mano che procedi). È divertente, questa è la soluzione a molti problemi di sviluppo del software!