Google Cloud Next OnAir has been filled with hundreds of impressive sessions the past two months, and this past week's focus on application modernization was no different. The week featured 57 different video opportunities for participants with a host of different themes, from "Optimize Cost to Performance on Google Kubernetes Engine" to "GitOps Workflows with GitLab and Anthos for Hybrid Cloud."
Of the dozens of options, there was one option that stood out to me. Not even the session, but the title itself. It was simply called, "Where Should I Run My Stuff? Cloud Compute Options." It's a straightforward question but one that can easily be overlooked. It's easy to fall into the weeds of the technical components and features of application development, but when we put ourselves in the shoes of our customer, we sometimes have to step back and ask more basic questions.
So, where should you run your stuff?
Quick History Lesson
Before I answer that question, let's take a step even further back. When you think about our industry, there are few operating systems out there. There's MacOS and Microsoft Windows. Both operating systems (OS) tend to be confined to the consumer space, although Windows did dominate the business market with backend servers that helped organizations run their business.
Linux is a third OS that exists, and it's hallmark is that it is a free, open-source system. Today it is probably the most widely used system to help power business operations. As an open source system, individuals and organizations are able to take the base operating system and add their own spin to it, with minimal to no vendor lock-in when compared to alternatives.
The challenge with that model, though, is that there was no centralized way to manage software and their environments, and that's problematic for anyone doing development work on a Linux-powered machine.
Why does this matter? Well, one of the solutions to that challenge is the concept of containerization. Containerization software extracts the infrastructure layer of an application from the software layer. You can modify the container of code that you have and then deploy it across different Linux environments in a reliable, consistent manner. You can even deploy the code to remote servers.
Where To Run Your Stuff
Now, the reason I gave you that mini history lesson is because when clients come to us and ask where they should run their stuff, we tend to suggest they use Google App Engine, which is a containerization tool that's part of the Google Cloud Platform. It's actually one of the original products that Google’s Cloud Platform was built upon, and it's extremely powerful and sophisticated. We use it as our go-to system because it has extremely high up-time and also scales automatically out of the box. From a business perspective, it can be very cost effective because it doesn't require maintenance and it's fairly hands off. You deploy it with confidence, leaving your developers with more time to work on your product and not worry about your business' infrastructure.
The Best Bang For Your Buck
Snapchat is one of the bigger businesses that built its platform on App Engine, and it's a perfect example of how the tool can be a benefit. App Engine is at its best when a business has a user base that can be dynamic. Without a tool like App Engine, you'd have to manage your own infrastructure, and that can be a tricky scenario. If you undersize the number of servers or server space your platform needs, then you diminish the customer experience. When you run a business that sees its profit fluctuate directly proportional to the number of users it has, poor customer experience is not a good thing.
On the other hand, if you purchase too much space, then you're paying for resources you're not using. Having something that scales linearly with the customer base ensures your profit margin is consistent. That's what App Engine is able to do.
There are times when App Engine doesn't make sense for our clients. If someone is looking for a tool that pulls data from other systems, does something with it and puts it somewhere else, then we recommend a tool like Cloud Run, a different containerization tool that helps businesses scale up or down with ease.
So, back to the original question. Where should you run your stuff? If you need a web interface, our recommendation is App Engine. If you're looking for an integration, then Cloud Run or Google Cloud Functions may be a better choice. More often than not, the tell-tale sign will be whether you're looking for user interaction. If yes, go with App Engine. If not, consider Cloud Run.Originally published on September 02, 2020