Start diving into Google App Engine

Friday, April 25, 2014

When Google App Engine was first announced its launch, I was thrilled and sympathized with the advertised benefit so much. Focusing on application development on Google Cloud, so I didn't need to take time for the server scaling and maintenance, and didn't need to hire server engineers? Great. It's what I had wanted.

But I was silly, I had not invested even a bit part of my time to research and practice GAE, just because I felt I might as well wait until the experiences of GAE and its DataStore (BigTable) has stocked on the web blogs/forums, and I had even made excuses that Python was not so popular (!) in Japan (yes, I'm Japanese).

In the mean time I had been mostly satisfied with RubyonRails ecosystem. (Ah, I now feel I want to express my love and hate to RoR, but  this is not the right place to say it). Then I preferred Heroku, the great PaaS and it's also provides the maintenance free infrastructure. Thanks to the service I can sleep well at night.

Nevertheless, unfortunately I confess after I learned Ruby well and experienced several projects over several years, I couldn't love it because of mainly its overly flexible and casual meta programming culture. I felt it didn't meet my preference, especially after reading "Zen of Python"( I often prefer something by its philosophy and ideology. So I have gradually increased time to write code by Python instead of Ruby.

By the way I also do love Dartlang's language design. I love terse, simple and explicit design, but also have appropriate flexibility. I've been investing my time to switch my browser side development language from JavaScript to Dartlang. While I still feel I have to use JavaScript in my production with its great ecosystem like Angular, Grunt, and other abundant libraries, it's been my another great experience ongoing.

Getting back to the topic, then I watched recent Google Platform Live
( And its promotions, especially announcing Managed VM ( triggered me off seriously thinking of GAE and its Google Cloud Platform again.

So I walked through the feature list and videos, it looks GAE Python environment has greatly matured (well, I hope) and the documents seem pretty improved.

Plus, as far as I read official videos and articles and many articles on the web about DataStore, I can feel quite optimistic to handle it. While I'm still not sure how to express "Many to Many association" used in RDB (certainly needs a mental switch). So I will try to do some implementation.

You may worry about vendor lock-in? Ah, yes, I will accept the risk. I'm going to rely on Google Cloud Platform and it would be a great deal to me because I want to 100% focus on app development and service management, and don't want to spend time to worry about the server stuff like scaling, security fix, server and other infrastructure monitoring, provisioning, deployment, hiring and communicating server guys as a service grows...

Heroku is also definitely great (convenient, and expensive!) service, and AWS is the most popular choice. But currently GAE and GCP services get my interest and motivation for learning.

But it is NOT urgent priority, since I've already had the production service under development, but already built 95% for the first release. It's served on Heroku and AWS (EC2). Time span would be 6 months or 1 year, even if I decide to migrate to GAE (GCP). Even I'm not sure how to migrate data in the RDB to DataStore (BigTable) or should compromise to use Cloud SQL.

At any rate, I believe passion and craftsmanship are keys to eventually produce great products. Delegating server stuff to the reliable vender is a significant factor for a startup product in order to focus the service itself.

* It would be something like the Holy Grail eventually when Dartlang will be supported in the future.

* I want to hire passionate Dartisans (mumbling...).

Read more ...