2013-06-12 10 views
7

Sto cercando di ottenere un flusso di lavoro ottimale per l'aggiornamento della mia applicazione Web in esecuzione su Play Framework.Flusso di lavoro ottimale per l'aggiornamento dell'applicazione playframework in produzione

Io uso lo script start per avviarlo, ma qual è la procedura migliore per aggiornare il codice in modo che sia il più trasparente possibile per gli utenti?

In un'applicazione Apache + PHP è spesso sufficiente rilasciare nuovi file * .php nella directory e in molti casi la modifica non è nemmeno visibile per l'utente.

Puoi condividere il tuo flusso di lavoro per farlo con il framework di gioco?

+3

Hai letto [Apache come proxy anteriore per consentire l'aggiornamento trasparente della tua applicazione] (http://www.playframework.com/documentation/2.1.0/HTTPServer) - sezione nella documentazione di Play o no? cosa stai cercando? – Aerus

+0

Ovviamente questa è una sorta di soluzione, ma al momento non sto usando Apache come proxy. Se questa è l'unica opzione e non può essere eseguita utilizzando solo il server integrato di gioco, andrò per Apache. – twowo

+0

Senza un server HTTP front-end, sei praticamente limitato a: 'ctrl' +' d' e riesegui 'play start', per quanto ne so. Per renderlo davvero perfetto avresti bisogno di Apache, Nginx, ... Tuttavia se la tua applicazione impiega molto tempo per essere compilata, puoi eseguire un'app di base che mostra una pagina 'in costruzione' mentre l'altra tua app principale sta compilando. – Aerus

risposta

0

Il framework di gioco è molto diverso dall'usare qualcosa come php su apache. Php è interpretato da Apache quando una pagina viene richiesta da un utente. Quindi tutto ciò che devi fare è cambiare il file per aggiornare il sito. Tuttavia con java (a meno che non si utilizzino i file .jsp e talvolta anche in seguito) il codice viene compilato di conseguenza e il server Web deve caricarlo e le sue librerie all'avvio. Ciò significa che la semplice sostituzione dei file appena compilati non funzionerà. È necessario riavviare il contenitore Web o scaricarlo per ricaricare l'applicazione per raccogliere le modifiche. Questo sarà sempre visibile a tutti gli utenti che tentano di accedere al sito contemporaneamente al completamento della ricarica.

Si può avere un server web (non deve essere Apache) che punta alla propria installazione di gioco corrente come proxy e ne porta una nuova versione in parallelo e quindi passa il punto server web proxy alla nuova versione e disattiva la vecchia versione. Questo è probabilmente il modo più semplice per farlo e potrebbe essere copiato.

Un altro modo è avere un'app Web che reindirizzi l'utente all'app e che esegua un cambiamento parallelo simile a quello sopra.

Entrambe queste opzioni richiedono alcune impostazioni e codifica per farle funzionare senza problemi. Tuttavia, probabilmente il lavoro vale la pena dato che una volta installato, l'implementazione della produzione diventa molto semplice.

Problemi correlati