Okay but seriously, cloud computing is nothing but running your code or storing data on a rented computer, whose hardware i.e. the actual wires & metal machines is managed by a reliable organization. You interact with this code & data by simply connecting to this computer over the internet.
The word "cloud" is just a word symbolizing the fact that this hosted code & data can be "accessed from anywhere around the globe where you have network" - just like the clouds in the sky, which are always there when you look up.
To study why cloud computing is important, let's take a look into the problems that people encountered while using older, existing solutions of dealing with software.
Also screw the boring tech mumbo-jumbo, I'm going to tell you a story.....
History of computing - how it all happened
Before the advent of internet tech giants, most of the software that a company developed was stored in "servers" aka "computers" aka "actual metal machines" in the company's office or inside warehouses. Maintaining these machines was a tricky job. Whenever these machines ran complex computations, they would heat up & hence always had to be stored at a cooler temperature.
This was followed by the age of smaller computers in which software distribution happened through CDs, which interacted with the Personal Computer to run programs. For 90s kids - these images of software CDs & games will seem familiar.
January 1, 1983 - the interaction of software underwent a revolution as the Internet was born. What started as a simple project for communication about book availabilities among university professors, evolved into the a juggernaut that took the world by storm.
Initially, it was mainly used for information distribution - simple webpages with just text content & images. This was Web 1.0.
Next, was Web 2.0. The websites became more complex, allowing the people accessing them to interact with them - from placing orders to uploading videos to liking a friends picture. Like CDs earlier, software was now distributed to clients over the internet, as a website that required login credentials.
Software developers of these websites were the only ones who could manipulate the data being displayed. However, this data, as well as the code for the website was hosted on actual metal machines that the office managed and as the sites gained traction, more metal servers were required. This drove up hardware costs. And it wasn't just that, if your website was not accessed, you just had unused scrap metal hosting your code.
Also, the user experience (UX) was worsening. The closer the location of the person requesting the website was to the actual location of servers, the faster the website loaded for them. Case in point, early users of google.com - Google's servers were hosted in the USA. A person accessing the website from USA would have a seamless workflow, but a person accessing them from India would get frustrated with page-load times.
Another problem was that of "scaling". Consider facebook.com, a website rapidly gaining users. This would just bombard the metal servers with too many requests, causing the site to crash, or in the case of facebook's predecessor - Facesmash, the local intranet of Harvard university.
Alright, so physical machine management, cost of handling useless machines & scaling - the top 3 problems plaguing internet based companies were facing. And then the cloud burst.
Birth of the cloud
Big tech giants like Google, Amazon, Ebay & other popular websites in the 1990s were also facing these exact same problems. Except, they had money.
So they built "data centers" i.e. warehouses containing 100s, 1000s of these machines, all over the world, managed by experienced personnel. Now, billions of users' requests could be served & it could be served fast.
But for them too, these machines sitting idle in an off-season was a major money drain. So they decided to rent them to other people for running their code. Anyways, for 2 computers to interact with each other, the internet had become a reliable & ubiquitous way.
March 3, 2006 - Cloud computing made its grand introdcution to the world. Amazon offered basic computation & storage services to everyone who wanted to rent them. Amazon called this division of its business as Amazon Web Services (AWS) - since it offered its "services" i.e. its computers & storage devices, that you could connect to, to use, over the "web".
AWS became the first of many "cloud providers" who would spark off the most significant democratization of computing power.
The advent of the cloud
Below is an actual excerpt from Jeff Bezos's belief on launching AWS
Companies need to think not just what they can get for themselves from new technologies but how they can enable others.
We tried to imagine a student in a dorm room who would have at his or her disposal the same infrastructure as the largest companies in the world. It would be a great playing-field leveler for startups & smaller companies to have the same cost structure as big companies
Wait what? I can run my interactive website renting Amazon's all over the world, with machines that I pay dirt-cheap rates for, and only when my code is actually run? Sounded like a pipe dream to the software creators back then, but it wasn't anymore.
Software creators pounced on this new-found boon triggering a massive uptick in novel software innovations by various startups using these services, to get as many customers, all over the world as possible. We saw Airbnb for travel booking, Uber for cab booking, Zomato for food delivery, Netflix for entertainment, PUBG for gaming, Udemy for e-learning, netbanking, e-commerce and just so many beautiful services rise as they were offered the best flexibility & pricing plans by cloud providers. Name a company that sprung in the last decade - there is a high chance that it's servers are managed by a cloud provider
For 6 whole years, AWS experienced no competition and became established its monopoly in the cloud. To this day, it leads the market.
And this brings us to the current day, where the amount of such services makes it easy to create impactful software that can help millions of lives - all, from just your personal machine (laptop, computer, whatever) and a will to build great things.
💡 NOTE : To promote more innovative startups AWS offers a program where you get free cloud credits to build software & experiment with products - Link
Advantages of the cloud
Let's also discuss the advantage that companies using a cloud provider incur, as opposed to managing their own computers in a "data center"
- Economies of scale - As more and more developers use a cloud provider's services, it becomes easier to offer more discounted prices since the volume of customers make up for the minimal profit margins per customer. Thus, in the long run, companies with a cloud infrastructure end up saving a lot.
- Instant deployment & scaling - You don't have to ensure that the machine serving your code over the web is well-maintained & connected to the internet. It's your cloud provider's guarantee that the machine will always perform as expected (you get refunds, if it doesn't). With just a few clicks, you wield the power to deploy your code, scale up the number or power of machines serving it if customer request load increases & release faster & fault-tolerant updates of your software.
- Data security and redundancy - Your data is always encrypted in a cloud provider's machine with cutting edge encryption algorithms. Also, it is always safe & can be restored in case of any crashes.
More than anything, cloud computing makes it easy for you to focus on your business use-case & delivering the best experience to customers instead of managing these heavy machines for compute & storage. Gone are the days when you had to march to your "server room" with a screwdriver, to figure out what the heck went wrong. Fun fact - Paul Buccheit, the creator of Gmail, actually did that once :)
Check out this video to understand cloud computing with great animations
The cloud computing industry will continue to grow & is estimated to have a market cap of $1,620,597 million by 2030. As of today, the cloud providers together offer 400+ unique services that help software developers scalably solve difficult problems using cutting edge technology.
In a nutshell, I have covered some reasons why cloud computing is an important revolution in software development. Hope this article adds value to your understanding of how running code on rented machines has democratized creation of software services & motivates you to build your billion dollar startup from your dorm room.
For furthering this journey, check out Center for Innovation's blog on "Getting Started with Cloud Computing" to learn more.
Also, in case you want to know what is NOT cloud computing, check out this really funny clip of a person getting it all wrong :)
Until next time....
Author of post - Ankit Sanghvi is a Product Engineer & Cloud Architect who's worked with zero-to-one startups across industries. In his free time, he likes to tinker on AWS & hack ways to get free cloud credits.