A software application, is only as good as its host – a server that runs it. And, that holds true for any software application – be it a web application, desktop application or a mobile application. Bad hardware, almost always, negatively affects the performance of software. In my case, though, I didn’t have a host, let alone a bad one. And that’s when I thought of Amazon.
“I think frugality drives innovation, just like other constraints do. One of the only ways to get out of a tight box is to invent your way out.”
– Jeff Bezos, Founder and CEO, Amazon
More than a decade ago, when Amazon was better known as a serious contender in the global ecommerce industry. However, what started as a project o help manage its ecommerce application, soon became a sizeable (which is an understatement) business in its own right – one that is over USD 10 billion now. In fact, Amazon Web Services (AWS), as this business is called, has market share of over 30% of the infrastructure market – more than Microsoft, Google and IBM combined!
However, Amazon didn’t create AWS with an inspired business decision. Rather, it was out of necessity – mostly the ability to have a highly flexible and scalable infrastructure.
Back in 2000, when Amazon was in the process of releasing Merchant.com, a seller application, it became incredibly difficult to sort the infrastructure mess. To sort this, they moved to an API/services driven infrastructure that was well documented.
“We expected all the teams internally from that point on to build in a decoupled, API-access fashion, and then all of the internal teams inside of Amazon expected to be able to consume their peer internal development team services in that way. So very quietly around 2000, we became a services company with really no fanfare.”
– Andy Jassy, CEO, AWS.
But, the engineering problems didn’t end there. With each new team, and each new application, the turnaround wasn’t high enough. This was mostly due to the same components being developed and implemented over and over again – components such as databases, servers, etc. were being developed and managed by teams separately. To further reduce these wastages, Amazon institutionalized a common infrastructure services, that everyone in the company could use. And with, that the proverbial wheel was invented once, never to be reinvented again.