Domanda

Esiste un metodo preferito di aggiornamento con grazia un sito web? Ho una nuova base di codice pronto ad andare su un sito, ma l'aggiornamento ci vorranno diverse ore. Io non voglio che il sito sia verso il basso per tutto il tempo con un "aggiornamento, tornerò presto!" messaggio, ma non posso lasciare il sito corrente mentre quello nuovo sia messo in atto.

L'unico modo che posso pensare che potrebbe consentire per un aggiornamento aggraziato è attraverso l'uso di due server, ma questo sarebbe ottenere più costoso.

È stato utile?

Soluzione

Pianificazione di "upgrade con grazia il vostro sito web" non si avvia quando si è pronti per la distribuzione. Si inizia molto presto nella progettazione della vostra applicazione. Ciò significa che è necessario costruire un'applicazione che possono essere aggiornato con grazia, e avendo anche l'infrastruttura in grado di sostenere che l'aggiornamento.

Hai fornito pochi dettagli e sta chiedendo una domanda vaga, ma importante da persone a caso su internet. Questo mi porta a credere che "l'aggiornamento con grazia" è stato un last minute preoccupazione (come 23 minuti fa).

La tua domanda: "C'è un metodo preferito di aggiornamento con grazia un sito web?" si può rispondere solo come: "Sì, ma lo faccio modo diverso di te".

Altri suggerimenti

C'è un certo numero di tattiche che è possibile utilizzare - a seconda del tempo / risorse siete disposti a impegnarsi per l'aggiornamento.

Potrebbe essere possibile, a seconda di come si sta eseguendo la migrazione, per fare questo con assolutamente zero down-tempo.

Il più complessa l'applicazione / sito, più complessa strategia di migrazione può essere se si vuole nessun tempo morto.

Abbiamo raggiunto lo zero migrazioni down-time da:

  1. Configurazione nuovo server (s) con la nuova versione del sito e del database.
    • L'alterazione del bilanciamento del carico di suddividere il traffico in due piscine di nuova app, e vecchio-app.
    • Configurazione bilanciamento del carico iniziare a inviare il traffico verso il server di nuova app (s), ma tenere sessioni esistenti sul server vecchio-app (s)
    • Nuove sessioni di controllo nuovo-app per vedere se il cliente-dati sono stati migrati, e se non - lo fa rapidamente che.
    • progressivamente chiudendo i server down "old-app", come carico cade, l'aggiornamento al nuovo-app, e l'aggiunta del nuovo-app piscina di bilanciamento del carico.
    • Come end sessioni, i dati del cliente vengono migrati al nuovo database.
    • Come permessi di carico, la migrazione dei dati dei clienti inattivi al nuovo database.

Naturalmente, questo è più complessa - come abbiamo bisogno di mantenere l'accesso ai dati dei clienti in due ambienti e progressivamente migrare.

E ce lo permette se le modifiche al roll-back dovrebbero qualche problema essere notato - per esempio un eccessivo della CPU o l'utilizzo della memoria su uno dei server di nuova app.

Per un sito più piccolo in cui non si ha il budget per server aggiuntivi, si può essere in grado di raggiungere questo semplicemente utilizzando più indirizzi IP, o una qualche forma di software interno di bilanciamento del carico per instradare le richieste al vecchio, o nuovo sito. Questo può complicare le cose più.

Se non siete in grado di eseguire il vecchio app, e nuova applicazione fuori lo stesso archivio dati (back-end webservices, database, ecc) - allora le tue applicazioni avrebbero bisogno di essere consapevoli che avrebbero bisogno di sincronizzare i dati tra vecchio / nuovo - ad esempio durante il salvataggio / aggiornamento dei clienti-dati, la scrittura avrebbe bisogno di verificarsi in entrambe le posizioni.

Diverse ore è molto, se c'è un sacco di convertire nel database è possibile innanzitutto prendere una copia del database, completare la conversione, impostare il nuovo sito (ma con un db un po 'vecchio), guardare ciò che hanno cambiato da quando ha assunto la copia, la conversione che troppo (dovrebbe essere più veloce della grande discarica se non si dispone di un sacco di cambiamenti) e inserirla nel nuovo database.

Basta non dimenticare di backup!

Credo che, in qualunque modo si va con questo, è assolutamente necessario avere la piena cooperazione del vostro provider di web hosting e nome di dominio.

Una procedura di massima sarebbe di:

  1. Affittare un nuovo server con un indirizzo IP diverso, che sarà dove si distribuisce il nuovo sito. O, se possibile, creare un sottodominio di prova all'interno del tuo sito che è inaccessibile al pubblico.
  2. Distribuire tuo sito nel nuovo server / sottodominio. Eseguire tutte le prove necessarie con il tuo nuovo sito utilizzando l'indirizzo IP o il vostro sottodominio prima.
  3. Quando si è che tutto è ok, problema reindirizza primo a nuovo server / sottodominio.
  4. reindirizzare il DNS al nuovo indirizzo IP, oppure risolvere il problema in modo tale che si può fare il vostro dominio principale ora puntare alla posizione originale del sottodominio.

Idealmente nessuno avrebbe nemmeno notato che il sito era giù, o se ha il tempo, durerà solo pochi minuti.

Sembra che si desidera avere la botte piena e la moglie ubriaca.

Se l'aggiornamento è un lavoro manuale che richiede diverse ore, perché non accelerarlo da script del lavoro.

Questo è probabilmente qualcosa che si bisogno di avere già "disegnato in" alla versione corrente.

Può essere segmentato in modo che alcune parti (ad es. Catalogo) sono disponibili, ma altri (es. Acquisizione) sono in fase di aggiornamento?

una versione di sola lettura può essere creato utilizzando una cache?

In alternativa, sicuramente ci sono momenti della giornata in cui un'interruzione del servizio è accettabile? Lavorare una sera di Domenica? Anche abbastanza grandi siti web hanno alcune finestre di manutenzione durante i quali pezzi di funzionalità sono prodotto disponibile.

Se è solo il database si esegue l'aggiornamento, basta fare una nuova e tornare non appena è pronto. Se si sta parlando di caricare il codice, caricarlo su un'altra directory e mv quando è pronto. Non dovrebbe essere un problema se si dispone di una configurazione simile al proprio ambiente di sviluppo.

È anche possibile noleggiare un server molto economici come quelli di 20euro / mese (kimsufi o qualcosa del genere) e fare l'aggiornamento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top