CLOUD COMPUTING 101
Tags: beginners, cloud, cloudcomputing
Published: 2024-06-04 09:46:03

## **OVERVIEW OF CLOUD COMPUTING**
_I’ll try to keep it as simple as I can. But first, let’s break it down to bits._
The cloud is a network of remote servers, that can be accessed over the internet, that store, manage, and process data.

If you are new to all this, you’re most likely asking —_What exactly is a Server?_

A server is a powerful computer that stores and manages data, applications, or services; provides access to these data or resources over a network and allows multiple users or devices to connect and use the resources it offers.

_More jargon? A different approach then._

Picture a humongous library having different librarians manning different sections of it.
Think of servers as librarians.

- The librarians (servers) have access to a vast collection of books (data and applications).
- They manage and organize the books, making sure they're up-to-date and readily available.
- When you (a user) need a book, you ask a librarian, and they provide it to you or refer you to the librarian in charge of the section you’re interested in.

In this analogy, the library is like a network (cloud), and the books represent the resources and data stored on the server. Just as you rely on the librarians to access the books you want in a library, devices and users rely on servers to access the resources and data they need in the cloud.

N.B: Servers can be physical or virtual.

Computing involves the use of computer hardware, software, and networks to manipulate, store, and communicate data.

Thus, Cloud computing is a way to use computer resources and storage over the internet, instead of on your own computer or device, on demand, without having to manage or maintain them yourself.

In the context of cloud computing, servers are often virtualized, meaning they exist as virtual machines running on physical hardware. This allows for greater flexibility, scalability, and efficiency in managing and deploying servers.

Scalability is the ability to respond .i.e. increase or decrease resources, to match varying traffic or demands.
Flexibility is about adapting to changing business needs and technology requirements by augmenting with the available resources. 

These servers are typically owned and operated by third-party providers, such as Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), and others.

Think of these cloud service providers like utility companies that provide electricity or water. Just as you don't need to generate your own electricity or water, you don't need to own and maintain your own servers, storage, or infrastructure to use the cloud. You simply tap into the cloud's resources, use what you need, and pay for what you use.

_You’re probably thinking that we ended up saying an awful lot about servers when we set out to talk about The Cloud. Considering what we now know—that the cloud is a network of servers, I say we’re on the right track._

Conclusively, the cloud is a virtualized environment, that is, it's not a physical entity, but rather a collection of distributed resources that can be accessed and used on demand—easily scaled, provisioned, and managed. And as we said earlier, you only need to pay for the resources you use.

## **TYPES OF CLOUD DEPLOYMENT MODELS**
There are three main types of cloud deployment models:
### **PUBLIC CLOUD**
- Owned and operated by a third-party service provider (e.g., AWS, Azure, GCP).
- Multi-tenancy—shared infrastructure with multiple users.
- Scalable, on-demand resources.
- Pay-as-you-go pricing.
- Less control over security and infrastructure.
- Ideal for:
       - Small to medium-sized businesses.
       - Development and testing environments.
       - Big data and analytics.
       - Disasters recovery and backup.

### **PRIVATE CLOUD**
- Owned and operated by a single organisation.
- Dedicated infrastructure (not shared with others outside organisation).
- More control over security and infrastructure.
- Higher upfront costs since hardware resources/facilities need to be owned.
- Ideal for:
       - Large enterprises with sensitive data.
       - Regulatory compliance requirements.
       - High-performance computing.
       - Mission-critical applications.

### **HYBRID CLOUD**
- Combination of public and private clouds.
- Integrates on-premises infrastructure with public cloud services.
- Flexible deployment options.
- Best of both worlds: scalability and control.
- Ideal for:
       - Enterprises with existing infrastructure.
       - Applications requiring both public and private cloud resources.
       - Disaster recovery and business continuity.
       - DevOps and agile development.

Other cloud deployment models, include:
- Community Cloud—shared infrastructure among organisations with similar interests or goals.
- Distributed Cloud—decentralised infrastructure across multiple locations.
- Edge Cloud—computing resources at the edge of the network, closer to users and devices.

Each type of cloud has its own advantages and disadvantages, and the choice depends on the specific needs and requirements of an organisation.

## **CLOUD COMPUTING SERVICE MODELS**
There are three main cloud computing service models, each providing a different level of control and management.

### **INFRASTRUCTURE AS A SERVICE [IaaS]**
Cloud service providers (CSPs) provide and manage the servers, storage, network—firewalls and security included—, the physical data centres and other resources to make that possible.
Users provide and manage data (and access), development and database tools, OS and hosted applications themselves.
- Provides virtualized computing resources over the internet.
- Offers servers, storage, and networking resources on-demand.
- Highest level of flexibility and management control.
- Examples: Amazon Web Services, Microsoft Azure, Google Compute Engine, Digital Ocean.
- Used when full control over infrastructure and applications is needed.

### **PLATFORM AS A SERVICE [PaaS]**
In addition to the aspects covered by CSPs in IaaS, they manage and provide development and database tools, and also, OS. 
Clearly, it is tailored to developers. As developers (users) only have to manage the applications and data (and access).
- Provides a cloud-based platform for developing, running, and managing applications.
- Offers development tools, libraries, and infrastructure.
- Removes the need for organizations to manage underlying infrastructure.
- Examples: AWS Elastic Beanstalk, Google App Engine, Google Cloud, IBM Cloud, Microsoft Windows Azure.
- Used when there is a need to develop and deploy applications quickly, without worrying about infrastructure.

### **SOFTWARE AS A SERVICE [SaaS]**
Including the aspects managed by CSPs in PaaS, they further provide applications that users just have to access and provide data to.
- Provides completed software applications over the internet.
- Offers software applications without the need for installation or maintenance.
- Removes the need for organizations to manage underlying infrastructure and software.
- Examples: Salesforce, Google Workspace, Microsoft 365, Trello.
- Used when there is a need to use software applications without worrying about installation, maintenance, or infrastructure.

These service models are not mutually exclusive, and many organizations use a combination of all to meet their needs.

_Cheerio._