“Cloud Computing” describes a set of terms that you hear everywhere nowadays. It might be in your morning newspaper, or the cool kid you know talks about it with few jargon terms like scalability, elasticity, etc. and now you want to know about these terms. I might ultimately be wrong here, and you might be someone who has an idea of what ‘cloud’ is or may even have an understanding and experience of creating applications on top of it. You are here for some missing piece of the knowledge pie or referencing this article to recall something you know but can’t remember at this instant or to explore this field as a beginner (Awesome of you to want to learn a new thing on your own).
Anyhow, you’re in the right hands, and let’s forget everything you know about the cloud. With this article, we will go on to explore every question you might have by breaking them into few essential questions.
Let’s get started!
What is Cloud?
Cloud computing (aka cloud) delivers computing services such as servers, storage, databases, networking, software, analytics, and intelligence over the internet and on a pay-as-you-go basis, saving you the cost associated with building, owning, and maintaining infrastructure.
Some companies go as far as delivering computing resources and billing them on a per-second billing. In short, you rent computing services from cloud providers.
Why is it called cloud computing?
Most of the Infrastructure, as discussed, is rented over the internet. The location of the servers, hardware, and many other things appear irrelevant to the customers. Customers are focused on using the service and developing on top of it while not worrying about using an on-premise infrastructure. ZDNet conveys it as:
It’s with this (using the service and not caring about anything else) in mind that the metaphor of the cloud was borrowed from old telecoms network schematics, in which the public telephone network (and later the internet) was often represented as a cloud to denote that the just didn’t matter — it was just a cloud of stuff.
This, however, is an oversimplification, and in various instances, location plays a critical role, especially when the cloud providers are dealing with the government.). Governments, like many other organizations, are focused on keeping the data in ‘private’ or in specific locations and servers that are not shared by other users. We call this type of cloud a private cloud where cloud computing resources used exclusively by a single business or organization.
Normal users care about using the service and getting stuff done. They don’t care about whether the server is shared or not and so it’s called public cloud, i.e., accessible and shareable by everyone.
A mix-match of two is hybrid.
Public, private, and hybrid cloud seems awesome, but, in some instances, you only care about using the service (e.g., google workspace, slack) and might want to develop on top of it without getting bothered about how and where things work behind the scenes.
Different users have different requirements, and they share different responsibilities with the cloud provider. Illustration from Azure
What are different type of cloud models?
Cloud computing provides different models for different use cases. For example, if you want to rent an entire server and manage everything on your own or want to develop without caring about the infrastructure management, you’re covered.
We categorize them into three major categories, and each is built on top of another.
Infrastructure as a service (IaaS)
This style of cloud service is the nearest to a physical server or on-premise management. The infrastructure or hardware is held up-to-date by a service operator, but the operating system’s maintenance and network setup is the cloud tenant’s responsibility.
In short, imagine you rented a computer, and now it’s up to you to update its OS version or configure VPNs, ethernet, or install any application on your own for your use-case. Example: Renting a computer over the internet or renting a virtual machine (VM). Yes, you can rent them over the internet and basically do anything you do on your computer. EC2 or Azure VM are some terms you need to search if you want to try renting and want a lead.
Platform as a service (PaaS)
Built on top of IaaS, it helps you to manage a hosting environment without worrying about the infrastructure. You can think of this as your web hosting service, which lets you host a website without headaches.
Software as a service (SaaS)
Built on top of PaaS, the cloud provider or providers manage every aspect of the application. Think of this as Salesforce, where you can develop more applications and publish on the go. If that still leaves space for confusion, think of a scenario where you need facial recognition, maybe while taking attendance. With SaaS, you don’t have to worry about anything apart from implementing the facial recognition service to your app.
Different computing models. Illustration from Azure
The different models are easy to understand but a headache when you need to choose the best one for a use case. We have put together a detailed blog that focuses on helping you to make that right decision quickly.
Why chose Cloud?
As you have understood, the amount of flexibility and advantage from choosing and configuring a cloud service is unparalleled. Apart from these already discussed we have various more features covering every need.
Apart from these already discussed we have various more features covering every need. Most of these features revolve around the fact that the cloud providers have a near-limitless pool of raw compute, storage, and networking capacity in various locations, which is rented profitably and cheap due to the economy of scale.
One of the significant drawbacks of the on-premises system was that they were at one location. If you have global users, the latency would be enormous, and customers would prefer to use local services. Now, think of expanding to different zones and consider compliance, security, networking, and data center management. So many factors can give you a headache, and the headache can go severe when you consider the system you invest in and own will be in some distant land.
Moreover, the investment will quickly add up as you need humans to take care of the system and security. It’s possible to ROR (rate of return) can be complete 0 if the expected traffic never comes through. Happy dismantling 🙂
With cloud computing, you can create, configure or delete a sever as per demand in an available location (generally closer to your traffic source) quickly, so your user always gets the best performance and you the best value for your money.
Cloud services are online with apparent no downtime, and with modern infrastructures, even if a whole data center goes down at one location, you can sleep peacefully as a replacement center is already serving your users. This shift happens automatically if configured
You can deploy your applications with the assurance that you know that your data is secure in the event of a catastrophe by using cloud-based backup services, data replication, and geo-distribution. Just a few clicks on the portal, and you have all your data conserved.
You can configure your setup to autoscale whoever you want. Scale vertically to increase the computing power by adding RAM and CPUs to the virtual machine.
Depending on the situation, you can scale horizontally by adding more instances to your configuration. You can think of as you get an employee joining your company with few clicks, you can give him his VM.
With an endless pool of resources, your system could auto-scale as much as your needs are. Now you don’t have to worry about buying new servers or the tedious task of calculating how many servers you need for your eCommerce site before the holiday season.
When the application requirements change or on first-time deployments, cloud-based tools can be easily deployed and set up. It’s fast and to sum up one of the core principles driving other advantages.
Companies are restrategizing their IT infrastructure to move to the cloud. One of the most significant costs associated with it is upgrading the codebase to be fully functional in the cloud. Never in the history of startups, it was so cheap to build applications with zero hardware overheads, and all newer startups emphasize a ‘cloud-native’ approach to build software made for the cloud and leave owning infrastructure behind.
Job profiles want people who can move the infrastructure to the cloud, create one on the cloud, and with an increase in cloud adoption, opportunities are set to grow. It’s an awesome time to go and explore cloud technologies.