2016-06-07 29 views
22

provare nuovi runtime App Engine flessibile. In questo caso, un runtime personalizzato di Ruby on Rails basato sul runtime ruby ​​fornito da Google.Il processo di distribuzione delle app di anteprima di gcloud richiede ~ 8 minuti, è normale?

Quando la cottura del gcloud preview app deploy L'intero processo dura ~ 8 minuti, la maggior parte dei quali è "servizio di aggiornamento". È normale? E ancora più importante, come posso accelerarlo?

saluti,

Ward

+3

che è normale, stai costruendo e caricando le immagini del docker la maggior parte del tempo –

+0

Ho risposto a questa domanda lì, forse potresti vederlo. http://stackoverflow.com/a/37806746/2746292 –

risposta

18

Sì, questo è del tutto normale. La maggior parte dei passaggi di implementazione si verificano lontano dal computer e sono indipendenti dalla dimensione del codice base, quindi non c'è molto che si possa fare per accelerare il processo.

vari passaggi che sono coinvolti nella distribuzione di un'applicazione su App Engine possono essere classificati come segue:

  1. Raccogliere informazioni da app.yaml per capire la distribuzione complessiva
  2. codice di raccogliere e utilizzare l'immagine finestra mobile specificato app.yaml per creare un'immagine docker con il tuo codice
  3. Provisioning Istanze di calcolo, regole di rete/firewall, installare strumenti relativi docker su istanza, push immagine docker su istanza e avviarlo
  4. Assicurarsi che tutte le distribuzioni siano state eseguite correttamente, st controlli sulla salute dell'arte e, se necessario, trasferire/bilanciare il carico.

codice di raccogliere e utilizzare l'immagine finestra mobile specificato nel app.yaml per costruire un'immagine di finestra mobile con il codice Accantonamento istanze di calcolo, networking /regole del firewall, installare gli strumenti relativi docker su esempio, immagine finestra mobile spinta per esempio ed avviarlo assicurarsi che tutte le implementazioni hanno avuto successo, si avvia la salute controlli e, se richiesto, il trasferimento /bilanciare il carico.

L'unico processo che richiede la maggior parte del tempo è l'ultima parte in cui vengono eseguiti tutti i controlli necessari per assicurarsi che la distribuzione abbia avuto successo e avviare l'ingesting del traffico. A seconda della vostra dimensione del codice (il caricamento di codice per creare contenitore) e fabbisogno di risorse (provisioning risorse personalizzate), punti 2 e 3 potrebbero prendere un po 'più di tempo.

Se si esegue un'analisi, si scopre che circa il 70% del tempo viene consumato nell'ultima fase, in cui si ha una visibilità minima, ma il processo essenziale che dà all'app-engine la possibilità di eseguire tutti i lavori pesanti.

0

Nota che le implementa successive dovrebbero essere molto più veloce di 8 minuti. Di solito è 1 minuto o meno nei miei test con Node.js su App Engine Flex.

+1

Non sicuro, ma dovrebbe essere il caso se si stesse distribuendo sullo stesso servizio e versione. Se si tratta di una versione più recente o di un servizio diverso, richiede tempi di consegna simili. Ciò significa che le patch vengono applicate rapidamente, ma un rollup/rollback è lento. –

+14

Nella mia esperienza i tempi di distribuzione delle versioni successive non migliorano. –

+1

I miei sono sempre ~ 10min in Gitlab CI –

8

Distribuzione alla stessa versione mi ha fatto da 6 minuti a 3 minuti in implementa successive.

Esempio:

$ gcloud app deploy app.yaml --version=test 
0

Assicurati di controllare ciò che è nello zip è l'uploading (ti dice la posizione di questo su Deploy), e assicurarsi che lo skip_files YAML è impostato per includere le cose come il vostro. git directory se ne hai uno, e node_modules

0

Basta sparare questo comando dalla directory principale dell'app.YAML

Da guscio visita directory di app.yaml quindi eseguire gcloud app distribuire

Sarà caricati entro pochi secondi.

+1

Penso che tu stia usando env standard, la domanda riguarda l'env flessibile e ci vuole mooooolto –