Thursday, March 9, 2017

Pairing Google App Engine with Other s

Pairing Google App Engine with Other s


I discovered Google App Engine (GAE) just a couple months ago and immediately attached to it. The idea of having a web application platform which is easy to use (no sys-admin thingy, just concentrate on developing), scalable, and free (up to a certain limit). Without even realizing (okay, Im exaggerating), I ended up with a project where I paired up GAE with another server. Well, not necessary a server, but any kind of machine that provides something extra to GAE. At first I wasnt so sure that this is a good idea, however, in the end I was convinced that this is the best solution that I can come up with.


1. GAEs power vs GAEs limitation

With great power comes great responsibility. With cool features come some restrictions. Its a trade-off, ying and yang. Im a Java programmer so I care mainly about the Java version of GAE. In GAE, not all Java features is available. Things like creating thread and writing to file system are not allowed in GAE. GAE also doesnt have persistent running process and every task should be finished in 30 seconds or less. Despite that, you might still want the GAE power. Why not using both?

2. Scalability is not entirely necessary, but still needed in some part

As I mentioned in the first paragraph. Scalability is one of GAE virtue. We can have a part of our application which requires high scalability to be deployed on GAE. Another part of the application that could not be necessarily scalable may reside on the other server. I could imagine this setting where GAE serves as an interface to outside the system and/or as a storage while the other server responsible to do things that GAE specifically couldnt do due to its restrictions.

3. It will be pure GAE in the future

For one or more reason, we cant have a pure GAE solution. It might be because the application is migrated from other technology and require some more time to be ported, or that the current GAE is not yet capable, but will be in the future (see GAE road map). It might be a good decision to start doing things in GAE if we believe that the future is on GAE, thus investing some resources now instead of doing it later (which will cost more without a doubt).

What do you think?

Available link for download