È buona norma sui sistemi server / client installare automaticamente gli aggiornamenti?

0

Sto lavorando su un sistema di aggiornamento automatico per un pacchetto software client / server legacy scritto in Delphi. Il modo in cui lo sto progettando è che la macchina server del cliente (cliente) esegue un servizio che ...

  1. controlla periodicamente online le nuove versioni
  2. scarica automaticamente i file
  3. ospita le ultime informazioni sulla versione per tutte le macchine client
  4. ospita i file per i computer client da aggiornare

Una volta che questo servizio ha scaricato i file di aggiornamento, solleva un flag nel database che avvisa tutti i computer client che gli aggiornamenti sono disponibili. MA, il fatto è che il server deve essere installato prima. Quindi, un amministratore vedrebbe questo messaggio e approverà l'aggiornamento. Tuttavia, l'amministratore deve programmare un tempo per l'installazione. A quell'ora pianificata, il server aggiornerà se stesso. Se tutto ha avuto successo, solleverà un altro flag nel database affinché anche tutte le macchine client si aggiornino. Se qualcosa dovesse accadere, ripristinerà il backup che è stato fatto prima dell'installazione.

La mia domanda è ... questa è una buona pratica? Ovviamente gli aggiornamenti automatici sono un'ottima cosa ... se fatto bene . Questo software viene utilizzato in tempo reale negli ambienti di vendita al dettaglio e all'ingrosso, quindi se qualcosa dovesse andare storto durante l'installazione programmata, le persone potrebbero venire a lavorare la mattina dopo su un sistema guasto. Il punto è che, indipendentemente dal modo in cui lo automatizzo, un amministratore deve comunque assicurarsi che tutto sia andato a buon fine.

Ulteriori problemi ...

  1. le macchine client devono conoscere non solo le informazioni sul server del database, ma anche le informazioni sul server di aggiornamento.
  2. il computer server potrebbe trovarsi in un'altra posizione che potrebbe richiedere la configurazione del firewall
  3. le modifiche al database possono dare risultati imprevisti, che non sono noti fino a quando succede qualcosa di brutto
  4. i computer client potrebbero essere spenti e devono essere aggiornati una volta avviato
  5. un elenco completo di possibili scenari che potrebbero andare storto

Quindi, in questa situazione, ti sentiresti a tuo agio nel realizzare un sistema di aggiornamento automatico al 100% per un software sensibile? Perché alcuni dei nostri clienti hanno fino a 50 computer client che devono essere aggiornati per corrispondere al loro database del server.

    
posta Jerry Dodge 05.07.2013 - 09:31
fonte

3 risposte

2

Direi che dare il controllo del sysadmin su quando viene applicato l'aggiornamento è il modo migliore - questo significa che un amministratore può ritardare l'aggiornamento se sta lavorando in un momento critico (ad esempio, durante il periodo natalizio) quando è probabile che la domanda sia alta e la disponibilità del personale è bassa, e anche il potenziale per un errore è molto più alto del solito.

Quindi un sistema completamente automatizzato non sarebbe un vantaggio. Tuttavia, detto questo, ci sono momenti in cui un sistema di aggiornamento non automatico significa che il software semplicemente non verrà mai aggiornato.

Vorrei quindi offrire un'opzione, manuale o automatica, e lasciare che l'installatore decida se controllare l'opzione automatica o meno (cosa che farà a seconda delle circostanze).

l'altra cosa che fai è il meccanismo di rollback: è grandioso. Jenkins lo fa, quindi se un aggiornamento non funziona bene, fai clic su un pulsante e tutto torna allo stato precedente. Vorrei che tutte le applicazioni funzionassero così. Una volta che si dispone di un sistema di rollback di questo tipo, è molto più probabile che gli amministratori applichino gli aggiornamenti in modo che si possa scoprire che utilizzano l'opzione di aggiornamento automatico più spesso. In questo caso, ciò che sarebbe anche una buona cosa è rendere più visibile un aggiornamento di recente.

    
risposta data 03.09.2013 - 12:15
fonte
1

La risposta di Auto Update o Manual Update dipende da due parametri di base. 1. Quanto è importante / urgente l'aggiornamento? 2. Quanto è grande l'aggiornamento?

Per il software Enterprise, la priorità principale è "Sicurezza", la seconda è "Disponibilità del sistema", le nuove funzionalità o le interessanti funzionalità sono le ultime cose di cui preoccuparsi.

Lavoro per Fortune 500 INCs e la mia esperienza è che molte aziende utilizzano versioni precedenti del software perché è probabile che la versione più recente abbia alcuni bug e le versioni precedenti siano prive di bug (i bug sono stati corretti per la prima versione scientifica). / p>

Quindi è necessario unire molti piccoli aggiornamenti di non sicurezza, correzioni di bug banali, funzionalità che i client non hanno bisogno di insieme e lasciare che l'amministratore del sistema decida in merito all'aggiornamento della data-ora. Nel caso in cui ci siano aggiornamenti relativi alla sicurezza, è comunque possibile aumentare alcuni flag nel sistema in modo che gli amministratori installino le funzionalità appena possibile.

Quindi IMO, NON devi avere aggiornamenti automatici. Gli aggiornamenti pianificati sono sempre migliori di quelli non pianificati.

    
risposta data 05.07.2013 - 10:32
fonte
0

No.

Non esegui aggiornamenti automatici perché non hai alcuna garanzia della loro stabilità e sicurezza. Si aggiorna manualmente quando si sa che è necessario e si sa che l'aggiornamento è sicuro. Corri anche il rischio di rompere le funzionalità per le persone che dipendono da versioni precedenti.

    
risposta data 16.06.2018 - 23:26
fonte