Basics of Cloud Computing
Tags: aws, cloud, cloudcomputing
Published: 2022-02-11 03:58:52

## Cloud Computing

- In 2006, Amazon Web Services (AWS) started to offer IT services to the market in the form of web services, which is nowadays known as cloud computing. 
- With this cloud, we need not plan for servers and other IT infrastructure which takes up much of time in advance. Instead, these services can instantly spin up hundreds or thousands of servers in minutes and deliver results faster. 
- We pay only for what we use with no up-front expenses and no long-term commitments, which makes AWS cost efficient.

## Computing Models

## 1. Desktop Computing :

- In traditional desktop computing, each employee accesses business software from his or her own individual computer. Desktop applications like Microsoft Word or Adobe Acrobat are installed directly on employee computers and business applications are installed on back end servers.
- Main disadvantage of desktop computing is that it isn't remotely accessible.

## 2. Client-Server Computing model :

- In client server computing, the clients requests a resource and the server provides that resource. 
- A server may serve multiple clients at the same time while a client is in contact with only one server. 
- Both the client and server usually communicate via a computer network but sometimes they may communicate internally within the same network.
![Client-server computing model](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5flm3ujtfgldcx7v98xd.PNG)

**Characteristics of Client Server Computing:**
- The client server computing works with a system of request and response. The client sends a request to the server and the server responds with the desired information.
- A server can only accommodate a limited number of client requests at a time. So it uses a system based to priority to respond to the requests.
- Denial of Service attacks hinders server ability to respond to authentic client requests by increasing the Cpu utilization of server with false requests.
- An example of a client server computing system is a web server. It returns the web pages to the clients that requested them. 

**Advantages of Client Server Computing :**
- All the required data is concentrated in the server. So it is easy to protect the data and provide authorization and authentication.
- The server need not be located physically close to the clients. Yet the data can be accessed efficiently.
- It is easy to replace, upgrade or relocate the nodes in the client server model because all the nodes are independent and request data only from the server.

**Disadvantages of Client Server Computing :**
- If all the clients simultaneously request data from the server, it may get overloaded. This may lead to latency in the network.
- If the server fails for any reason, then requests of the clients can't be fulfilled.
- The cost of setting and maintaining a client server model are quite high.

## 3. Cluster Computing :

![cluster computing](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8fi6uq1pip7csxaxnqi5.png)
- Cluster computing is a collection of tightly or loosely connected computers that work together so that they act as a single entity. 
- The connected computers execute operations all together thus creating the idea of a single system. The clusters are generally connected through fast local area networks (LANs).
- Cluster computing gives a relatively inexpensive, unconventional to the large server or mainframe computer solutions.
- It resolves the demand for content criticality and process services in a faster way. Many organizations and IT companies are implementing cluster computing to augment their scalability, availability, processing speed and resource management at economic prices.
![cluster computing model](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0sercw5eo0lzki3cl5fl.png)

**Load Balancing Clusters :**
- This Cluster distributes all the incoming traffic/requests for resources from nodes that run the same programs and machines.
- In this Cluster model, all the nodes are responsible for tracking orders, and if a node fails, then the requests are distributed amongst all the nodes available. Such a solution is usually used on web server farms.
![Load Balancer Cluster](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2ggfdyc0gylkob7dd64l.PNG)

**High Availability (HA) and Failover Clusters:** 

- The basic idea in this form of Cluster is that if a node fails, then applications and services can be made available to other nodes. 
- These types of Clusters serve as the base for critical missions, mails, files, and application servers.
![HA Cluster](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hibm29ukhhwecqoa2bq4.png)

## Advantages of Cluster Computing :

**High Performance :** 

The systems offer better and enhanced performance than that of mainframe computer networks.

**Easy to manage :**

Cluster Computing is manageable and easy to implement.

**Scalable :**

Resources can be added to the clusters accordingly.

**Expandability :**

Computer clusters can be expanded easily by adding additional computers to the network. Cluster computing is capable of combining several additional resources or the networks to the existing computer system.

**Availability :**

The other nodes will be active when one node gets failed and will function as a proxy for the failed node. This makes sure for enhanced availability.

**Flexibility :**

It can be upgraded to the superior specification or additional nodes can be added.

## Disadvantages of Cluster Computing :
 
**High cost :**

It is not so much cost-effective due to its high hardware and its design.

**Problem in finding fault :**

It is difficult to find which component has a fault.

**More space is needed :**

Infrastructure may increase as more servers are needed to manage and monitor.  

## 4. Grid Computing :

![Grid computing](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m0pdeovqolyeznpdfbic.png)
- Grid computing is the practice of leveraging multiple computers, often geographically distributed but connected by networks, to work together to accomplish joint tasks. 
- It is typically run on a “data grid,” a set of computers that directly interact with each other to coordinate jobs.
- Grid computing works by running specialized software on every computer that participates in the data grid. The software acts as the manager of the entire system and coordinates various tasks across the grid. 
- Specifically, the software assigns subtasks to each computer so they can work simultaneously on their respective subtasks.
- After the completion of subtasks, the outputs are gathered and aggregated to complete a larger-scale task. 
- The software lets each computer communicate over the network with the other computers so they can share information on what portion of the subtasks each computer is running, and how to consolidate and deliver outputs.

## 5. What is Cloud Computing?
![cloud computing](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7olcnmhnxjvqig2eo765.png)
- Cloud computing is an internet-based computing service in which large groups of remote servers are networked to allow centralized data storage, and online access to computer services or resources.
- Using cloud computing, organizations can use shared computing and storage resources rather than building, operating, and improving infrastructure on their own.
- Cloud computing is a model that enables the following features:
1. Users can provision and release resources on-demand
2. Resources can be scaled up or down automatically, depending on the load.
3. Resources are accessible over a network with proper security.
4. Cloud service providers can enable a pay-as-you-go model, where customers are charged based on the type of resources and per usage.

## Cloud Computing Models
![cloud computing model](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uuuan2eutkeach3m59zb.png)
**Types of Clouds :**
![Types of cloud](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cdg1vq0l1glze5z90l4q.png)
- There are three types of clouds - Public, Private, and Hybrid cloud. 

**Public Cloud**
- In public cloud, the third-party service providers make resources and services available to their customers via Internet. Customer’s data and related security is with the service 
providers’ owned infrastructure. 

**Private Cloud**

- A private cloud also provides almost similar features as public cloud, but the data and services are managed by the organization or by the third party only for the customer’s organization. In this type of cloud, major control is over the infrastructure so security related issues are minimized. 

**Hybrid Cloud**

- A hybrid cloud is the combination of both private and public cloud. The decision to run on private or public cloud usually depends on various parameters like sensitivity of data and
applications, industry certifications and required standards, regulations, etc.

## Cloud Service Models :

![cloud service models](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7yfd6f82oka8wm5o2esq.png)
There are three types of service models in cloud - IaaS, PaaS, and SaaS. 

**IaaS:** 
- IaaS stands for "Infrastructure as a Service". 
- It provides users with the capability to provision processing, storage, and network connectivity on demand. 
- Using this service model, the customers can develop their own applications on these resources. 

**PaaS:**

- PaaS stands for "Platform as a Service". 
- Here, the service provider provides various services like databases, queues, workflow engines, e-mails, etc. to their customers. 
- The customer can then use these components for building their own applications. The services, availability of resources and data backup are handled by the service provider that helps
the customers to focus more on their application's functionality.

**SaaS:**
- SaaS stands for Software as a Service. 
- As the name suggests, here the third-party providers provide end-user applications to their customers with some administrative 
capability at the application level, such as the ability to create and manage their users. 
- Also some level of customizability is possible such as the customers can use their own corporate logos, colors, etc. 

## Advantages of Cloud Computing:

- **Cost-Efficient:** 

- Building our own servers and tools is time-consuming as well as expensive as we need to order, pay for, installing, and configure expensive hardware, long before we need it. However, using cloud computing, we only pay for the amount we use and when we use the computing resources. In this manner, cloud computing is cost efficient.

- **Reliability:** 

- A cloud computing platform provides much more managed, reliable 
and consistent service than an in-house IT infrastructure. 
- It guarantees 24x7 and365 days of service. If any of the server fails, then hosted applications and services can easily be migrated to any of the available servers.

- **Unlimited Storage:** 

- Cloud computing provides almost unlimited storage capacity,
i.e., we need not worry about running out of storage space. 
- We can easily increase our current storage space availability. We can access as much or as little as we need. We can also decrease our storage space as per our requirement and cost of storage.

- **Backup & Recovery:** 

- Storing data in the cloud, backing it up and restoring the 
same is relatively easier than storing it on a physical device. 
- The cloud service providers also have enough technology to recover our data, so there is the convenience of recovering our data anytime.

- **Easy Access to Information:** 

- Once you register yourself in cloud, you can access 
your account from anywhere in the world provided there is internet connection at that point. 
- There are various storage and security facilities that vary with the account type chosen. 

## Disadvantages of Cloud Computing:

- **Security issues:**

- Security is the major issue in cloud computing. The cloud service providers implement the best security standards and industry certifications, however, storing data and important 
files on external service providers always bears a risk. 
- AWS cloud infrastructure is designed to be the most flexible and secured cloud network. 
- It provides scalable and highly reliable platform that enables customers to deploy applications and data quickly and securely. 

- **Technical issues:**

- As cloud service providers offer services to number of clients each day, sometimes the system can have some serious issues leading to business processes temporarily being suspended. 
- Additionally, if the internet connection is offline then we will not be able to access any of the applications, server, or data from the cloud.