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 ...
- controlla periodicamente online le nuove versioni
- scarica automaticamente i file
- ospita le ultime informazioni sulla versione per tutte le macchine client
- 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 ...
- le macchine client devono conoscere non solo le informazioni sul server del database, ma anche le informazioni sul server di aggiornamento.
- il computer server potrebbe trovarsi in un'altra posizione che potrebbe richiedere la configurazione del firewall
- le modifiche al database possono dare risultati imprevisti, che non sono noti fino a quando succede qualcosa di brutto
- i computer client potrebbero essere spenti e devono essere aggiornati una volta avviato
- 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.