Beginning with the Cloud
Tags: aws, cloud, cloudskills, beginners
Published: 2023-03-28 17:08:57

Are you guys ready?

<img width="100%" style="width:100%" src="https://media.giphy.com/media/xUySTUZ8A2RJBQitEc/giphy.gif">

Let's go...

---

### Scenario before the cloud

We all know that organizations, enterprises, and companies cannot do without large-scale computing systems and services.

There was a time when data centers used to provide the computing services and infrastructure required by these entities, which were rented out to them usually on a fixed tenure basis; some companies even had their own data centers.

It worked fine but there were a few problems...

- **Wasteful usage of resources** 
- **No flexibility based on customer's need**
- **Higher prices**

The infrastructure was such that catered to the need of most organizations.

Why is this a problem? 

Let's say you are a small enterprise that requires 240 GB of RAM and 1470 TB of ROM and 3 VMs for all your systems on a yearly basis. Since the data center industry was centered around the bigger players in the market, so all of its services were optimized accordingly, taking into consideration the size of your enterprise it offers you its cheapest plan that includes 500 GB of RAM along with 5000 TB of memory with 10 VMs.

Now in such a scenario, you are compelled to spend on resources that you don't require. This means no flexibility based on customers' needs. Also, this led to wasteful usage of computing resources that could be used by other entities along with the time and money of the organization and the data center.

- **Geographical barriers**

Let's take the case of Spotify, to expand its services to say south-east Asia then would require it to rent out or set up new data-centers at various south-east Asian regions.

This means increase in the number of data centers along with the operational and maintenance costs.

This is a sure hindrance to entities with less capital and workforce.

- **Delay to get stuff going**

Creating a new data center requires time, and it becoming ready for operations requires even more ticks of the clock. Managing it requires an army of skilled personnel.

This leads to delay in reaching to the customer and again loss of time and money.

---

## What is the Cloud?

All of this lead to the need of creation of a technology that allowed entities to remotely access computing resources, infrastructure and service. This is known as cloud computing.

The definition that received industry-wide acceptance was composed by the National Institute of Standards and Technology (NIST). 

> Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model is composed of five essential characteristics, three service models, and four deployment models.

*Keywords:*

* Model
* Ubiquitous (Omnipresent)
* Convenient (Remote)
* On-demand
* Distributed Computing (Decentralized)
* Shared Configurable Computing Resources be it physical or virtual (E.g. - Networks, Servers, Storage, Applications, Services)
* Internet Based

*Explanation:*

1. Configurable Computing Resources -> the resources can be aligned according to the users needs.

2. Shared Configurable Computing Resources -> the resources are provided from a common pool.

3. On-demand -> the user can ask for resources whenever he/she needs it. This provides flexibility to the user.

4. Convenient -> the user can access the resources from anywhere across the globe provided internet is present there. (Ubiquitous and Internet Based)

5. Distributed Computing is a fashion of computing in which multiple software components run on multiple computers, but as a single system, to fulfill a common objective. These systems are connected via a network and share a common memory.

6. Internet-based -> that all the services are provided via the internet. **The backbone of the entire cloud technology is the internet.**

---

## Reason for creation of cloud

The needs are primarily business oriented.

1. **Capacity Planning**

Capacity Planning is nothing but..

> How much resource does an organization need in order to fulfill its users demands as well as minimize expenditure in present as well as future?

A more formal definition would be...

> Capacity planning is the process of determining and fulfilling future demands of an organization’s IT resources, products, and services. Within this context, capacity represents the maximum amount of work that an IT resource is capable of delivering in a given period of time. 

Organizations need to carefully plan the capacity of an IT resource and its demand, as it can lead to either system becoming inefficient i.e. over-provisioning or unable to fulfill user's needs i.e. under-provisioning.

This is challenging task as it requires estimating peak-usage requirements and timings.

Capacity planning with data centers is a pain as it requires foreseeing and doing extensive planning before resource allocation.

Cloud solves this problem by providing the feature for scaling up (increasing) and scaling down (decreasing) resources as per needs.

---

## Advantages of Cloud Computing

- **Pay as per use**

Most cloud service providers (CSPs) provide pay as per use convenience. This mean a user will be charged only for the services he/she uses and the amount of time for which he/she uses a service.

- **Remotely available**

As previously stated the cloud technology is entirely internet based so all the resources, infrastructure and services can be accessed anywhere provided there is a high bandwidth internet connection available.

- **Flexible as per need**
 
The user can change their plans and services based on their needs whenever they need.

- **Covers a larger geography**

Most CSP have a large number of data centers at key locations all around the globe so deploying the services to a different locations is easier.

- **Very less to no downtime**

The CSPs work tirelessly to keep their downtimes as low as possible.

- **Provides agility to the organization**

Enterprises need to be agile to adapt based on internal and external factors. In cloud context, this means scaling up and down based on demands of the hour.

Earlier the organization needed to anticipate and plan before hand for the peak usage time and workload, but that's no longer the case all thanks to cloud.

- **User's needs**

With increase in usage and advent of ever evolving new technologies data storage has become of prime importance. The users can now store their data directly in the cloud. This decreases hardware demand and cost from the user's side.

- **Cost Reduction**

There are two costs which the company need to account for:
1. Cost of acquiring new infrastructure
2. Cost of its ownership and maintenance

Other costs:
• **technical personnel** required to keep the environment operational
• **upgrades and patches that introduce additional testing and deployment cycles**
• utility bills and capital expense investments for **power and cooling**
• **security and access control** measures that need to be maintained and enforced to protect infrastructure resources
• **administrative and accounts staff** that may be required to keep track of licenses and support arrangements

Cloud gives the organizations a complete relief from all these.

- **Mobility**
Cloud provides mobility to both the employees who are working on-premise or remotely. All they require is a fast enough internet connection and a web browser to get going. This also promotes seamless collaboration among different teams.

- **Backup and Recovery**
The CSP's provide excellent data backup and recovery mechanisms using redundancy of user data.

- **Automatic software integration and quick deployments**
The cloud provides facilities for faster and smoother deployment of software.

## Disadvantages of Cloud Computing

- **Vendor Lock-in**

This means an organization is using a CSP's tools and services so extensively that migrating to a different CSP becomes expensive and lossy.

In such cases the organization has no option but to pay the prices the CSP demands even if its not in the best interest of the company.

- **Total dependence on the internet**

As stated before the entire cloud computing depends on high speed internet to function effectively. This acts a single point of failure for the entire system.

- **Downtime**

Thought less probable, yet there are chances of some technical issue from the CSP which may lead to a downtime for the business an hence losses.

- **Insecure and incomplete data deletion**

It is possible that the data requested for deletion may not get deleted. It happens either because extra copies of data are stored but are not available or disk destroyed also stores data from other tenants.

- **Performance may vary**

When you are working in a cloud environment, your application is running on the server which simultaneously provides resources to other businesses. Any greedy behavior or [DDOS attack](https://www.guru99.com/ultimate-guide-to-dos-attacks.html) on your tenant could affect the performance of your shared resource.

- **Isolation**

Failure of isolation mechanism that separates storage, memory, routing between the different tenants.

- **Security**

Since data management and infrastructure management in cloud is provided by third-party, it is always a risk to handover the sensitive unencrypted information to such providers.

Refer this for more: https://www.geeksforgeeks.org/issues-in-cloud-computing/

---

## Applications of Cloud

1. **Facebook, Dropbox, and Gmail:**
This is the cloud most of us are familiar with. We use this for storing our files. Social media platforms also use cloud heavily to store their data.

2. **Government**
The government uses cloud to maintain a database of its citizens. This data provides them the required statistics to make the best decisions.

3. **Big Data Analytics**
Big Data Analytics is a closely related to cloud computing as the data we deal with in clouds are usually humongous in size and numbers. This can be dealt with using tools and methods of Big Data. Cloud computing helps data scientists analyze various data patterns, insights for better predictions and decision making. 

4. **Business Processes**
Nowadays, many business processes like emails, ERP, CRM, and document management have become cloud-based services. SaaS has become the most vital method for enterprises. Some examples of SaaS include Salesforce, HubSpot.

5. **Health Care**
The idea of creating a patients diagnostic and medical history
has elevated the incorporation of cloud in medical and healthcare sectors, for easy global access to a patients records.

6. **Education**
Cloud computing is also useful in educational institutions for distance learning. It offers various services for universities, colleges, professors, and teachers to reach thousands of students all around the world. Companies like Google and Microsoft offer various services free of charge to faculties, teachers, professors, and students from various learning institutions. Various educational institutions across the world use these services to improve their efficiency and productivity.

---

## Popular cloud service providers
- Amazon Web Services (AWS)
- Microsoft Azure
- Google Cloud Platform (GCP)
- Alibaba Cloud
- IBM Cloud
- Salesforce
- SAP

---

<img width="100%" style="width:100%" src="https://media.giphy.com/media/MQ4bWOjn8C9tT2dzIb/giphy.gif">

---

Here are my socials if you want to connect or share your valuable feedback:
- Twitter: www.twitter.com/tathagat_h
- LinkedIn: www.linkedin.com/in/harshittathagat
- Github: www.github.com/harshit82

Please do contact me, if you would like to add something to the blog or rectify any mistakes. Your feedback will help me improve.

Thanks for reading.