Google's infrastructure for everyone else

Khash Sajadi
27 September 2016

Our office in San Francisco has communal bathroom facilities, which like other communal areas, gets thoroughly cleaned every morning. But everyday around 5pm, if you go to the men's restrooms you’re usually confronted with a pool of urine right in front of the urinals.

This is obviously not a pleasant experience for anyone, including those who contribute to the aforementioned pool of fluids. So it got me thinking: Why does this happen? And why would you not stand just that little bit closer to the porcelain to avoid pool formations by the end of the day?

I couldn't really think of a reason, but I thought of a solution: Printing a sign and attaching it at eye level that reads: You’re not as big as you think, please step closer!

I haven't tried this solution yet. I might report on the success or failure of it in a future post, however it made me think about a current industry trend: Google Infrastructure For Everyone Else or in short and cute form: GIFEE.

This term was coined by fellow container evangelist companies, who are trying to sell Google's way of managing its infrastructure to the rest of us. We’re told that Google is millions of light years ahead of everyone else in building and managing infrastructure. And we’re told that Google has been running containers in production for everything since the dawn of time in a system called Borg. We’re also told that products like Kubernetes are based on Borg and are built to help us benefit from their years of experience in the field.

I think most of what we’re told is true: Google is indeed light years ahead of many others in running infrastructure. I also have no reason to believe Google hasn’t been using containers in production, nor do I think systems like Borg don't exist.

I would, however, question two things: Kubernetes was built by Google to make us benefit from their expertise in running containers and that everyone is better off running infrastructure like Google.

The truth is, Google is unique. With all the talk about unicorns and the next Google and Facebook, the likelihood of your startup making it to unicorn league, let alone becoming the next Google is less than being hit by lightning, while eating an ice cream as you're swimming away from a shark attack during The X Factor final.

That's OK. Not being a unicorn with a valuation in billions and VCs falling over themselves to give you money, there’s a decent chance you can build a profitable business you can be proud of. Let's be honest with each other, you won't sign up Price Waterhouse Cooper (PwC) or Ernst and Young for your accounting, Merrill Lynch to run your current account, and attend Davos instead of the next Ruby Meetup.

But wait, doesn't Google use PwC and Merrill Lynch, and isn't Eric Schmidt part of the furniture at Davos? So why wouldn’t you do the same?

The answer is simple; those services are built for Google size. You don't find a company saying GAFEE (Google Accounting For Everyone Else). That would be ridiculously absurd, and we all know that. Interestingly, Google's accounts are more likely to look like a normal multinational than their infrastructure. I can think of at least a dozen companies that have the same accounting practices as Google: Unilever, Procter and Gamble, Glaxo Smith Klein, Volkswagen, Exxon Mobile, British Petroleum ... but none of them are anything like Google in terms of infrastructure sophistication, and we can imagine why.

“So what's the problem,” you might ask? "OK, we get the point, we’re not as big as Google and we don't use Google's accountants because their practices don't apply to us (or are too expensive).”

“But what's wrong with using Google's infrastructure when they’re giving it to us for free?" I hear you say.

In reality, it's not all about the nominal price. Getting Merrill Lynch to do your banking. even if it’s for free, might not be a good idea for your company because of the burden it puts on you and your admin department. The situation would be akin to taking a Formula One car to do the school run at best.

The issue is, by using tools that aren’t built for your goals, size. and achievable targets, you’ll be burdening your business with unnecessary complications that can be avoided both now and in the future. As software engineers, we’re familiar with Donald Knuth’s saying: premature optimization is the root of all evil.

Why does Google promote tools like Kubernetes? Google's promotion of containers is a lot about taking on Amazon. In short, Google has no way to take on AWS in their game of compute, network and storage -- the traditional blocks of cloud computing. But they have a lot of experience in running infrastructure that doesn't provide those traditional components since they’re using containers. By promoting containers as the building blocks of infrastructure, they’re hoping to leapfrog over Amazon to become the infrastructure setup of the future. Their advertisement campaign for Google Cloud Engine also points to this goal.

You surely noticed how I said “infrastructure setup of the future.” I see containers as the building blocks of this infrastructure (otherwise I wouldn't be spending every waking moment of my life building a business based on this premise). While I think we’re going to be better off building our next-gen infrastructure based on containers, I don’t think we all need to build and manage like Google via these super configurable and modular tools. Most of us need simple tools that just work and get out of the way to let us do what we should: build a business.

By using tools that aren’t right for our size, we run the risk of contributing to and stepping in a pool of urine as the day draws to an end. It’s not only harmful technically, the administrative costs can also quickly become a burden. As a start-up, we all want to believe we’re destined for greatness as the next big thing. Mentally, chasing after an aspiration to become the next unicorn makes us into an unsustainable business, addicted to where the next round of funding is coming from. We see this everyday in Silicon Valley, and trying to imitate Google’s infrastructure is just one aspect of this mentality.

And if all else fails, it's always useful to have a cautionary sign in front of us as a reminder: You’re not as big as you think you are, please step closer!