When people hear, cloud computing or the cloud they see it as something very supernatural, vague and complex at least I did. This article is the first of my cloud series where I would be breaking down these cloud concepts.
Let's Define Cloud Computing
Cloud Computing is providing computing services or resources (storage, computing power and network) over the internet. It is simply delivering computing resources (storage, compute power, networking and so on) that’s virtual to a user via the internet.
Why the Name Cloud?
When people hear cloud, they think these resources are somewhere up there😬. Unfortunately, that’s not the case. The word cloud is more like a metaphor to describe something that is virtual to a user. It’s presumed that the users do not actually have physical access to these services in as much as these services are in a physical location.
Before the Cloud
Let’s look into how applications are deployed before cloud computing came about. It is quite important to look at how things were done before and what exactly cloud computing is solving.
Traditionally, to deploy an application an organization or individual has to buy servers with the correct memory and storage requirements, keep them on-premises and use them to host their applications. This brought about a lot of capital cost (purchasing servers) alongside operational costs (electricity, employing skilled professionals or training staffs). Aside from the costs, there were issues of security, that is ensuring that the servers are safe from attacks, and scaling issues. Scaling involves increasing or decreasing the number of computing resources.
Thanks to cloud computing, users can scrape out the capital costs that comes with deployment, instead they pay for what they use without bothering about the security of these servers. Finally, with cloud computing scaling is quite easy as users can add or remove resources easily.
Categories of Cloud Computing
Cloud computing can be categorized based on deployment model and type of services provided.
Deployment Model
Cloud computing can be divided into 3 types based on deployment model which includes.
Public Cloud: In public cloud, resources and services are offered by third party providers (cloud service providers like AWS, Azure, GCP and so on) over the internet. These resources are offered and shared to multiple users or organizations as a pay-as-you-go basis.
Private Cloud: In private cloud, the resources are dedicated solely to a single organization or user. It can be hosted on-premises or by a third-party provider.
Hybrid Cloud: From the name, the hybrid cloud combines the elements of the public and private cloud. It is a perfect solution for organizations that want to migrate from an on-premises to cloud services.
Type of Service
In terms of services offered, cloud computing can be divided into.
Infrastructure as a Service (IaaS): This is a type of cloud computing whereby cloud service providers are responsible for providing the computing resources or infrastructures (servers, storage and network) but the client or user is in control of these infrastructures (security, providing information and so on). Example: Azure Virtual machines.
Platform as a Service (PaaS): This is a type of cloud computing that provides users the ability to develop and deploy applications without actually bothering about the management of the infrastructures. This service allows developers to focus more on the code implementation. Example: Azure web apps.
Software as a Service (SaaS): This type of cloud service allows users to access a software by organization on the cloud via a subscription. The user does not need to install any application on their local device, instead the software can be accessed via the web or an API. Example: Microsoft 365.
Cloud Computing Concepts
Let’s look at some cloud jargons that we might have heard.
- Visualization: You can see virtualization as creating the virtual version of something for instance your computer hardware. This concept brings about virtual machines and virtual desktops. It allows you to utilize the full capacity of a physical machine by sharing it among multiple people or users at once.
- Containerization: In simple terms containerization is a form of virtualization that allows you to package and tun applications and their dependencies in units called a container. containers provide a consistent and isolated environment, ensuring that an application runs smoothly across various computing environments. Different systems or environments have different operating systems, and these operating systems need different dependencies or requirements to run certain applications.
- Serverless Computing: When people hear serverless computing, they assume there are no servers involved. Just like in cloud computing resources are not in the cloud, in serverless computing servers are also involved. Instead serverless computing simply means that cloud providers allocate resources to users on a demand basis. Serverless computing is event driven, works on the pay as you go basis and involves auto-scaling.
Cloud Service Providers
Before a cloud resource can be accessed or used, one needs to go through a cloud service provider.
Cloud Service Providers are firms or companies (people) that offer cloud resources. There are several cloud service providers like Microsoft Azure, Amazon Web Services (AWS), Google Cloud Platform (GCP), Oracle, IBM and so on.
Throughout this series, we would be working with Microsoft Azure, looking at its different services, where when and how to utilize these services.