People seems love hearing about big technology companies like Google and Amazon for inspiration and ideas about infrastructure and operations. This is a bad idea. Lets say that you like baking your own bread and you want to improve your technique. Where do you go ?
- Buy a bread machine and a bag of “just add water” bread mix at the local supermarket.
- Purchase a book, flour, yeast and starting baking in your own kitchen.
- Attend a class at your local organic collective to learn artisanal bread making using organic flour, pedigree sour-dough start and your own clay oven built in your back garden.
- Head to nearest baking factory that makes 50000 loaves of bread per day that is using custom-made high tech machinery designed by expert manufacturing engineers and supported by a production team so as to learn how to make bread ?
IT infrastructure is similar in concept. You take a bunch of ingredients, mix them together in the right proportions, take some care about the preparation and you should have an IT Infrastructure equivalent of a “loaf of bread”.
If you chose to go with Option 1 – Bread Machine, then you might be small company trying to get something done with limited time and resources. Simple, quick and low cost is what a bread machine is to baking. If you chose Option 2 – Bake at Home then you are likely a medium sized business where the technology needs can solved by a mid-level practitioner with some time and motivation. Both of these options provide results that are good for the use case because the use case is “good enough for my requirements”.
Option 3 is a large enterprise. Your company doesn’t actually make bread, the technology is there to support some other activity. But you are serious about your technology, it’s must be a certain kind of bread and made to high standards. At the same time, you are a sandwich shop makes sandwiches but doesn’t make bread. You just use it.
Which leads us to Option 4. A factory that makes bread has a lot of fancy technology that makes bread. It’s doesn’t make sandwiches and it can’t make one loaf of bread. It can only make truck loads of bread or the machinery isn’t profitable to run. Sure, a factory can look like a complicated and very large bread machine but in reality it is a completely different beast. You will never own a bread factory, you can’t take the equipment home. A factory has specific challenges just achieving handling of tonnes of flour, controlling room sized ovens and storing the prepared product for shipment. None of these issues are relevant at smaller scale.
But small boys just loves looking at fire engines and big machines. We need to get over this.
Of course, a factory makes lots of cheap bread but it only makes a few types. You can buy that bread cheaply at the SaaS or PaaS “Supermarket” but the product isn’t as good as you could make yourself if you only had the time and money to buy a bread machine or learn how to make bread yourself. I’ve stretched this metaphor as far as it can go so I will quit while I’m ahead.
The point is that you shouldn’t look to big web companies for solutions for Enterprise IT. The use cases, processes and outcomes all depend on your needs and the tradeoffs you have to make. But please, please stop caring how Google, Amazon or Facebook run their factories because it has zero relevance to your systems. Just make bread.