Cloud .. Cloud .. Cloud
Those who are working in the software industry keep hearing the term cloud again and again. These days people get job offers if they have experience working on cloud computing or done a certification related to cloud technologies. So let's first understand what is cloud or cloud computing.
Cloud computing - Simply put, cloud computing is the delivery of computing services—including servers, storage, databases, networking, software, analytics, and intelligence—over the Internet to offer faster innovation, flexible resources, and economies of scale. You typically pay only for cloud services you use, helping you lower your operating costs, run your infrastructure more efficiently, and scale as your business needs change.
What was the problem earlier
Lets understand this with a simple example. Suppose you run an online woolen cloth store. You have observed that during the winter months of November, December, and January, you get huge orders of woolen clothes from your online web portal. But you get complain's from some of your customers that during peak work hours the website crashes. So you make a complaint about it to the website server provider.In order to solve the problem they increase the server db size allocation at an increased fee to meet your business demand. Now during the summer months of May, June, July you noticed you hardly get any orders. However, the amount of money you pay to the service provider remained the same. That was resulting in losses for some companies and hard to manage. In order to solve this problem came the on-demand server/services sharing concept, aka, wrongly coined term Cloud. Before this concept , it was dedicated servers for your business which were left unused when you had low demand. With on demand service concept you pay as you need as these services are designed to scale.
So who coined the term cloud?
It is debatable who coined this malformed term which hardly gives any idea to the people who are not aware of the computer/network service sharing concept. In fact, many people in the computer industry move their hand gesture in the upward motion to explain their tech stack based on cloud. Also terms like "Lift" are used in agile teams to document moving data from on-prem to cloud. In my opinion, one fine morning somebody from north America thought this term can be a good buzzword for marketing and as usual the world went gaga over it which is as overhyped as the Eiffel Tower!
Where does the data get stored if the cloud doesn't exist
The data gets stored in the On-demand service providers like Google, Microsoft, Amazon, Alibaba's databases on-prem. So basically earlier you were storing data in your company's dedicated databases, now you are doing this in a 3rd party vendor's databases which are also used by other companies. Aws introduced amazon snowballs ( portable suitcase size hard drives) and amazon snowmobile ( a large truck) concept's to ship the data from one place to another in case the data is enormous and takes huge time to transfer via the internet.
Image - Source aws, picture of the amazon snowmobile, a truck, which can transport exabytes of data
1) You pay as per your needs and demands
Image - source aws, as you can see in the instance type column, that is nothing but the size allocated for that instance which you can modify as per your needs from the software infrastructure config's.
2) Even a tiny start-up can afford and use a world-class database provider's services.
1) The monopoly of on-demand service providers, basically all your data remains with one database vendor which increases dependency and risk in itself.
Example - November 2020 when aws had an outage, some businesses went standstill
2) If the on-demand service provider crashes for an hour or two, all your services get crashed if no backup
3) Your companies data is now shared with a 3rd party vendor
Some claims by the cloud providers and the reality
1) Myth - Everything is on demand and you get more when you need more.
Truth - Everything has to be customized manually by the projects as per the need of the project , Creation of repository , creation of instances , db allocation , infrastructure controlling the allocation , everything needs human intervention
2) Myth - Its a robust solution
Truth - If you want to test how false this claim is, please start a load test into your production cloud instance ( or a replica) and check that in 20 mins , the db cpu usage will go beyond 100% and the application will be unstable. Next step ? Increase the db allocation and instace size manually. Though aws has many modern solutions, but writing to oracle or sql db process is still the same.
Conclusion - There is nothing called the cloud and this term is just a marketing gimmick and doesn't provide any idea about the real work. It will be a great service to the new generation entering the software industry if we start using the term On-demand databases ( ODD) , on-demand services (ODS) as the replacement terms which draws a clear picture!
About the author - Aniruddha Biswas, "this blog is dedicated to my father, who initiated this question in a recent conversation"