Il tempo di avvio dell'applicazione Web è davvero così importante?

11

Ha avuto una conversazione con qualcuno sull'aggiunta di un codice di inizializzazione all'avvio dell'applicazione e si è lamentato di ciò provocando un aumento del tempo di avvio. Non poteva davvero indicare una ragione (sentimento o qualcosa del genere, non so). Questa non è un'applicazione pesante e inizia tra circa un minuto, distribuiamo alcune volte all'anno.

Ricordo di aver letto alcuni consigli su alcune domande su SO qualche tempo fa, persone che consigliavano di inizializzare all'avvio invece di accedere alla pagina con il timbro "se ti puoi permettere la penalità".

Ho lavorato con le app Web che sono iniziate da 30 secondi a 4-5 minuti, ma una volta online sono state disattivate.

Quindi cosa mi manca? A meno che non sia un'applicazione vitale come ... non so ... per il mercato finanziario, le applicazioni mediche, l'esplorazione dello spazio, ecc., È davvero così importante il tempo di avvio?

P.S. Mi riferisco strettamente alle app Web, le app desktop sono destinate ad avviarsi rapidamente.

    
posta JohnDoDo 11.10.2011 - 11:18
fonte

5 risposte

18

Può essere un fattore importante durante lo sviluppo: se la tua piattaforma non supporta la modifica del codice in un'applicazione in esecuzione, allora il tempo di avvio diventa parte del ciclo di feedback, e anche 30 secondi sono dolorosi e una minaccia per la produttività.

Per l'ambiente di produzione, in realtà non importa; o un po 'di tempo di inattività è accettabile e 5 minuti non sono ancora molto, o non lo è e devi implementare una sorta di passaggio dal vivo.

    
risposta data 11.10.2011 - 11:26
fonte
4

Credo che questo sia il caso in cui funziona il famoso principio dialettico di Hegel di transizione da quantità a qualità.

Vedi, i tempi sono sempre importanti. Sono d'accordo con le parole di Michael Borgwardt sull'importanza della build veloce durante lo sviluppo / test, ma insisto che (potrebbe essere in qualche altro modo) è anche molto importante per la produzione.

Ogni sviluppatore che ha distribuito un codice errato in produzione sa che l'aggiornamento rapido fornito in 5 minuti e in 1 minuto sono cose davvero molto diverse.

    
risposta data 11.10.2011 - 11:38
fonte
2

La vera domanda è se l'app funzionerà senza l'inizializzazione. Abbiamo nuovi assunti che sono ossessionati dalle "prestazioni", la mia risposta di borsa è che non mi interessa quanto velocemente dai risultati sbagliati. Gli angoli di taglio IMHO, gli algoritmi di mangling perché "sarà più veloce in questo modo", e altre grandi idee introducono solo bug.

Se è necessaria l'inizializzazione, fallo. Quanto tempo sarà sprecato quando gli utenti finali ottengono risultati sbagliati, eventualmente capire che l'app web è sbagliata, chiamarti e lamentarti, e devi tornare indietro e eseguire il debug / fix / test / redeploy? ora chiedi al tuo collega come è stato risparmiato il tempo. (e scommetto che i core del tuo server sono al minimo del 99% in ogni caso)

    
risposta data 11.10.2011 - 16:10
fonte
2

Questa domanda non richiede alcuna piattaforma particolare. Ci sono piattaforme su cui il tempo di avvio è davvero molto importante.

Ad esempio, su Google App Engine; se la tua pagina non viene acceduta (o, piuttosto, viene acceduta meno frequentemente di un'altra applicazione sullo stesso nodo), verrà scaricata occasionalmente.

Pertanto, se ti trovi nel 99% inferiore della frequenza di accesso al sito, il tempo di avvio è ; la tua applicazione verrà riavviata a quasi tutti gli accessi. se sei nell'1% superiore, la tua applicazione viene avviata su molti nodi e sebbene molti accessi alle pagine torneranno da un'istanza già avviata, alcuni ancora non lo faranno, e così tu Avremo tempi di accesso intermittenti e lunghi.

Questa stessa cosa è vera su molti altri ambienti di hosting. Le perdite nelle librerie di terze parti, o persino nel tuo codice che ha semplicemente eluso la scoperta, potrebbero significare che l'unico modo affidabile per eseguire il tuo servizio web è ricaricare tutte le richieste (spesso tra 100 e 10.000), e così via il tempo di avvio viene pagato frequentemente. L'utilizzo di questo modello è accettabile quando un'app perde, ma si avvia rapidamente; non è fattibile quando l'app impiega più di qualche secondo per iniziare.

    
risposta data 11.10.2011 - 17:20
fonte
1

Stai correndo il rischio che la tua applicazione sia considerata di qualità inferiore o, peggio ancora, la tua capacità di sviluppo. Ora, questa app potrebbe salvare così tanto tempo e / o svolgere un compito del genere che gli utenti grati possono guardare oltre il lungo avvio.

Potrebbe essere necessario più tempo per programmare in modo tale da caricare pigramente l'app, ma solo le parti interessate possono determinare se ne vale la pena. Ho avuto un rapporto che ha funzionato in 55 secondi. e lo abbiamo ridotto a 35. Nessuno se ne è accorto. Anche se ho passato il doppio del tempo a ottenerlo dai 35 ai 18 anni, tutti hanno notato e sono stati grati e colpiti. Passare da 5 a 3 minuti per un'app utilizzata poche volte l'anno non è un grosso problema. Gli utenti avranno meno tempo da dedicare a Facebook o prendere un caffè.

La percezione è la chiave. Se il Compay non è soddisfatto dei team di sviluppo in generale e di questa app in particolare, potresti voler sviluppare un po 'di buona volontà e accelerare la situazione.

    
risposta data 11.10.2011 - 14:51
fonte

Leggi altre domande sui tag