Published: March 25, 2017
I tried GCP (Google Cloud Platform) years ago and couldn't really wrap my head around using App Engine. I always look for platform agnostic solutions in my architecture choices, and App Engine just seemed too tied to GCP.
Jump to a couple months ago, I started working with Azure for my day job in addition to AWS (Amazon Web Services). It seemed like I should take this chance to revisit GCP. To do so, I decided to try porting my existing personal AWS projects to GCP.
Right away, I was blown away by how much you could do for free. The two big free items being: one VM and one App Engine application. I was finally able to have a dedicated VM in the cloud without having to justify paying for it, and I was able to host a scaleable java app in the cloud for free.
Coming from AWS, getting these services for free was amazing. I was essentially getting a micro EC2 instance and Elastic Beanstalk application for free. The one shortcoming was that I couldn't host a full Spring Boot application. At least, that was the case until a couple weeks ago when google moved App Engine flex out of beta.
Now, I have a full Spring Boot app running in app engine for free. The application you're reading this on in fact. In retrospect, I can say the biggest change between now and the last time I tried out GCP is the effect Docker has had. Services like App Engine standard and Elastic Beanstalk just are not necessary anymore. A single Docker app can be easily ported between all three major clouds with very little customization.
In my next blog post, I'll be covering setting up Spring Boot for App Engine Flex.