Cloud Computing
Tags: cloud, cloudcomputing, aws
Published: 2023-02-15 08:27:04

## What is cloud computing?

The term "cloud computing" has been popular in the IT industry for many years. Cloud computing is rapidly expanding, and many organizations consider it a critical strategy. It has changed the landscape of how businesses operate on a larger scale, providing significant business and technical advantages and benefits that cannot be ignored. In recent years, cloud computing has expanded at an exponential rate. To fully grasp cloud computing, we must first understand some existing technology upon which cloud computing is built.

**Virtualization** enables the installation of multiple virtual machines (VMs), each running a separate operating system and applications, on a single physical server. The VMs all run concurrently, unaware of each other's existence while sharing the underlying hardware resources. A hypervisor is used to accomplish this.

**A hypervisor** is a piece of software that allows multiple virtual machines (VMs) to be installed on the same host. It sits between the physical server hardware and the virtual machines. Its role is to create a shared pool of virtual hardware resources that each of them can access. Any request to the hardware is routed through the hypervisor, which then handles the access, ensuring that the hardware resources are shared among all other VMs as configured.

**The following are some of the advantages of virtualization:**

- There is a decrease in capital expenditure. Because less hardware is needed.
- Allows you to provision multiple VMs on a single host.
- Because there is less hardware, operating costs are reduced.
- Your data center requires less space, power, and cooling.
- Reduced footprint in your data center because your server hardware takes up less space.

The terms compute resources, storage resources, databases resources, and networks resources are essential for understanding cloud computing. What does each of these mean?

**Compute resources**

Provide the brains for your workload to be processed. This includes everything needed to process a run request from applications and services.

**Storage resources**

Merely allow you to keep your data. A storage resource is any resource that allows you to store your data in the cloud.

**Database resources**

Enable you to store structured sets of data that your applications can use. SQL Server, Oracle, and MySQL are examples of popular database engines.

**Network resources**

Allow all other resources, such as computing, storage, and databases, to communicate with one another.

So, how do we define Cloud computing?

`Cloud computing is a remote virtual pool of on-demand shared resources that provides computing, storage, database, and network services at scale.`

## Cloud deployment models

**Public cloud**

A Public Cloud model is one in which a vendor makes available shared infrastructure such as compute, storage, database, and network resources that can be provisioned on demand and typically accessed over the internet for public use. The consumer will not know the exact physical location of their data, but they will be able to specify the geographic region in which it resides to aid with data latency depending on which will provide the best overall performance for them. All backup and maintenance of physical location services such as power calling, as well as physical maintenance of hosts such as hardware failures, will be handled by the Cloud vendor and appear to be invisible to the end user.

**Private cloud**

A Private Cloud differs from a Public Cloud in that the infrastructure is privately hosted, managed, and owned by the company that uses it, allowing for greater and more direct control over its data. This architecture may be used by businesses that want to keep a tighter grip on security control. As a result, the hardware is typically kept on-site. The same Cloud principles are used in the design, such as virtualization, creating a pool of shared computer storage and network resources, scalability, and on-demand provision. This approach necessitates a larger capital outlay to acquire the host and the physical data center. Furthermore, additional resources, such as operations and maintenance of this equipment, resulting in a higher operational cost than the Public Cloud model.

**Hybrid cloud**

A hybrid Cloud is a model that combines public and private clouds. This model is suitable for seasonal burst traffic as well as disaster recovery. A hybrid model is established when a network link is configured between the Private Cloud and services in the Public Cloud, effectively extending the Private Cloud's logical internal network.

This combines the advantages of the public and private models and enables you to architect your services in the most appropriate model. However, keep in mind that they share the same drawbacks as both solutions. Hybrid Clouds are typically used for short-term configurations, such as testing and development, and can often serve as a transitional state for enterprises before moving service to a purely cloud-based environment.

**Community cloud**

The only difference between a community deployment model and a private deployment model is the set of users. Whereas a private cloud server is owned by a single company, a community cloud is shared by several organizations with similar backgrounds.

If all of the participating organizations have the same security, privacy, and performance requirements, this multi-tenant data center architecture can help these businesses improve their efficiency, as in joint projects. A centralized cloud simplifies project planning, management, and execution. All users contribute to the costs. Its advantages include improved security, privacy, and dependability, as well as ease of data sharing and collaboration. Among the shortcomings are, They are expensive when compared to the public deployment model, and they are rarely used. Fixed storage and bandwidth capacity sharing

## Key cloud concepts to understand

**On-demand resourcing**
Essentially, this means that when you want to provision a resource in the cloud, it is almost immediately available for you to allocate where and when you need it. No more waiting for hardware to be ordered, installed, cabled, and configured before using it.

**Security**
Security is one of the most debated topics in cloud computing, and many businesses are still concerned about its security. However, public cloud vendors such as Amazon Web Services and Microsoft Azure are regarded as more secure than your own data center. This is because they must adhere to global compliance programs across multiple industries and use the shared responsibility model. The vendor will maintain an exceptionally high level of security for the cloud's underlying infrastructure, and it is up to you, the end user, to architect security in the cloud using the tools, services, and applications available.

**Scalability**
Cloud computing allows you to rapidly scale your environment's resources up and down, as well as in and out, based on the needs and demands of your application and services. Scaling up and down effectively changes the power and performance of an instance, possibly by using one with more CPU or memory power. When you scale in and out, you are simply increasing or decreasing the number of instances in your fleet of compute resources.

**Economy of scale**
Because of the large scale of resources provided by public cloud options, which are optimized and shared amongst different businesses, you as the end user benefit from incredibly reduced resource costs when compared to traditional hosting.

**Flexibility and Elasticity**
Cloud computing gives your design approach tremendous flexibility and elasticity. You can have as many or as few resources as you need. You decide how much, how long, and on what scale you want it. Because you have so many options, you can fully customize your environment to exactly how you want and need it, with only the resources you need.

**Growth**
Provides organizations with the ability to grow by utilizing a diverse set of resources and services. When combined with the on-demand component, your growth constraints are significantly reduced when compared to a traditional on-premises environment. Growth entails being able to easily reach customers by provisioning resources across the cloud vendor's global network.

**Utility-based metering**
Many cloud services charge you only for what you use. This implies If you only run an instance for two hours and then shut it down, you only pay for two hours' worth of compute resources. You only have to pay for resources when you use them.

**Shared infrastructure**
Virtualized hosts are used in the cloud. As a result, multiple tenants may have instances running on the same piece of hardware. This significantly reduces the amount of physical hardware required, resulting in less power, cooling, and space in the data center.

**Highly Available**

Many of the core services provided by the public cloud and its underlying infrastructure are designed to be replicated across different geographic zones and regions. Having data automatically copied to multiple locations allows you to ensure the durability and availability of your data and services without having to configure or architect for this resilience.

## Cloud Service Models

There are several cloud-based models we will focus on the main tree models

**Software as a service (SaaS)**
Software as a service enables the delivery of a widely distributed and accessible application. It is centrally hosted in the cloud, and there is no need to install any software on your local device to use it.

**Platform as a service (PasS)**
You have more management and control with this service offering because you have access to an application framework that sits on top of the operating system and up. Because the underlying architecture, host hardware, network components, and operating system are typically managed and supported by the vendor, this is an excellent deployment service for developers. allows developers to concentrate on building great new apps on top of the platform.

**Infrastructure as a service (IaaS)**
It is a model for self-service management of remote data center infrastructures. It provides Internet-based virtualized computing resources. Customization and management at the highest level are provided. as it enables you to architect your portion of the cloud by configuring a virtual network that is separate from other networks and allows you to deploy any resources you require. You can also configure instances starting with the operating system and going up to the installed operating system. Companies purchase IaaS on a consumption model rather than purchasing hardware. Companies can use this model to add, delete, or reconfigure IT infrastructure on the fly. The underlying host, however, is still managed by the vendor for maintenance and security.

## Other cloud service models to consider include:

- Network as a service (NaaS)
- Backup as a service (BaaS)
- Database as a service (DBaaS)
- Communications as a service (CAAS)
- Storage as a service (STaaS)