Monday, July 07, 2014

Trying out the Google Cloud Platform

Originally published April 2, 2014

I watched the Google Cloud Platform webcast last week and a few days later I received a $500 credit that I need to use in the next three months. The side project I am working on right now is in Clojure. A few years ago I wrote a few small test web apps in Clojure for AppEngine but the loading request time (i.e., the time to serve a request for a cold instance) was several seconds - not so good. With the free credit, I am experimenting now with a Compute Engine instance to run the prototype Clojure web app, just running with "lein trampoline ..."

In the past several years I have experimented a lot with AppEngine. With Java (and using Objectify as a datastore API) loading request time was very quick (about a second) and I wrote a GWT application, hosted my site, and wrote several Google Wave robots hosted on AppEngine. I don't much use Python but I did do one Python AppEngine app for a customer several years ago and that was a nice experience.

Compared to leasing a physical server or an plain old VPS, using a Google's and Amazon's offerings are expensive, even with recent discounts for Google Cloud Platform and Amazon AWS. For AWS the win is all of the ancillary services like S3, DynamoDB, CloudFront, RDS, etc. Google Cloud Platform is catching up with AWS in the range of services and with similar pricing I think that the competition will come down to two things: developer happiness and support. I really like AWS and every major consulting customer (except for Google, and that makes sense :-) I have had in the last 6 years has at least partially used AWS. So, understanding that I love AWS, I can list some advantages of the Google Cloud Platform without you thinking that I am dis'ing on AWS:

  • The Google Cloud Platform web console seems to be faster and more responsive (but the command line tools for each service seem comparable).
  • I really like the online log viewing on Google Cloud Platform which can collect all logs for a project in one place - a big win.
  • Using Google Cloud Platform reminds me of working as a contractor at Google last year when I really enjoyed using their internal systems. Not exactly the same at all, but a pleasant reminder of using what has to be one of the best software development platforms (e.g., all source code to everything immediately accessible, working off of trunk, incredible tools for viewing logs and tracking down problems, etc.)
  • Immediate scaling, as needed

For developers competition between Amazon and Google (and other contenders like IBM) is a great thing. The only thing that I think is very important is keeping in mind the cost savings from leasing raw servers or commodity VPS (ignoring the higher costs of devops). At the other end of the cost spectrum, for some applications, going "gold carpet" for PaaS offerings like FP Complete (I am a happy customer) for Haskell development and deployment to managed servers or Heroku still makes a lot of sense - it just depends on cost/time tradeoffs.

No comments: