Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I speed up Java Google App Engine deployment?

I'm developing a test app with GWT+Java-AppEngine and the deploys are so heavy and slow.

I read about minimize permutations or parallel compilation of GWT, but my internet connection is not so good and I think that I'm uploading heavy files to App Engine Server.

How can I optimize this? Can I check where is the bottleneck?

The reason that I need several deployments is because I'm using Google API's through OAuth and I can't set localhost as a callback (I do?).

like image 251
rubdottocom Avatar asked May 23 '11 16:05

rubdottocom


People also ask

Why is App Engine so slow?

The issue described about google app engine slowness is probably caused by a cold start. Google app engine front-end instances sleep after about 15 minutes. You could write a cron job to ping instances every 14 minutes to keep the nodes up.

How long does gcloud app deploy take?

When firing of gcloud preview app deploy the whole process takes ~8 minutes, most of which is "updating service".


1 Answers

I am not entirely sure about your scenario, so I will try to guess your intentions.

For development purposes, you really should be working on the local server, it comes with all the API's and stubs for things like user login and what not. That is instantaneous. Once you are happy with your local app and it is time to upload, then if AppEngine overlord decides to take time due to AppSize/Slow Connection/Service outage/random act of diety, there is little one can do.

Considering that one doesn't deploy every hour, I think your time would be better spent on the app, instead of tuning the upload time.

I am assuming you are already following http://code.google.com/appengine/docs/java/gettingstarted/uploading.html

I personally have dabbled with appengine but the python version, and it may take a few mins but once upload is complete, you are good to go.

maybe you could get your local machine a dyndns hostname and make it accessible from the internet ? –

I think what Bastian meant was as follows (assuming Dev server can actually serve domains - i am not sure about that)

  1. Have your domain host (example.com) maintain an 'A' record pointing to your development machine IP address [hence when you do example.com, your dev machine responds as the server]
  2. This means if you setup DNS records to point to ghs.google.com or whatever, you will have to change them (DNS records take a while to propagate depending on host)
  3. Once you are happy, and you want to test on google, you still have to 'upload' before you can try it on appspot.com and ofcourse change DNS entries again so example.com works off google servers.

Too much work in my opinion. Better to use dev server in local machine.

Have a break while you are uploading. Have a KitKat to kill time :)

like image 184
Nasir Avatar answered Sep 30 '22 04:09

Nasir