Cloud computing is a roughly 400 billion dollar industry that has completely transformed the way software gets built today. But cloud computing as we currently use it is a fairly recent idea.To fully understand what it is and why it is all the rage, you first need to understand what came before it.
Let’s say it’s 1995 and you’re a young founder of hot internet startup. You’ve a great million dollar product idea that you’re ready launch. In order to release your product, you need some infrastructure. At a high level, this would be all the web servers needed for your customers to access your website and interact with it along with some form of storage to store data for them.
Now, because you don’t just have a couple of hundred servers just lying around in your basement, a logical thing to do would be to go out and buy some cheap hardware. You would hook up all these servers together, set up your website and be off to the races. This acts as your own mini data center.
Of course, if things go well and you start adding more users to your website, your hardware requirements would increase as well. You would then continue to add server capacity to meet your growing demand. This already starts to create a few problems:
- You require at least some initial capital to purchase all your servers. This might not be a huge factor nowadays due to the constantly decreasing prices of compute power, but could be a decisive factor previously
- As the number of servers grows, so too does the time you’ve to spend maintaining them. You’ve to make sure that the servers are always up and running, they have sufficient memory, they have up-to-date security patches, and so on.
- Despite your best estimations, you will never truly be able to guess exactly how much capacity you need at any point in time. You will either need to go back for more hardware sooner or later, or you will have servers that aren’t really being used.
These problems are exactly where cloud computing comes into the picture. Cloud computing providers take away the hassle of maintaining your own servers and data centers. They tend to own and operate their own data centers, sometimes in multiple locations all over the world, that you can then use to host your application’s infrastructure. You can still use these hosts as you normally would, and do everything with them as you otherwise would, only that now they’re not in the same room as you.
Effectively, this is the difference between renting something and buying it outright. Most providers offer a flexible payment model where you only pay for the infrastructure that you use. If your application needs to only be active for three hours a day, you only pay for server usage during those three hours.
You also offload the maintenance responsibilities to the cloud provider. The provider is responsible for making sure the servers are always up and running and replacing or retiring them when they reach their end of life.
The biggest advantage with moving to a cloud provider the ability to handle unpredictable demand. As we talked about before, if you’re a young startup, it’s likely not easy to figure out what your demand will look like from one day to the next. If your app suddenly explodes in popularity, you might find that your existing server capacity is not enough to serve the growing demand and you might suddenly need to add more compute power in the middle of the night. A good problem to have, but a problem nonetheless.
Most cloud providers make it really straightforward to add or reduce server capacity in just a few clicks. In some cases, they might even automatically adjust the capacity based on increasing demand without you having to lift a finger. All of this frees you up so you can spend more time focusing on your core product and solving problems for your customers.
Having said all of that, there are still a lot of reasons why some companies may want to own their own infrastructure. For one, some companies might want the peace of mind that comes with having data stored in your own data centers under your supervision rather than trusting third parties. In some cases, you might need your data to reside with certain geographic boundaries for legal reasons. Or, it just might be more cost effective for you to own your own hardware. But regardless, cloud computing as a trend is here to stay.