Cloud Computing

Cloud computing is the delivery of computing services over the internet.
Computing services include common IT infrastructure such as virtual machines, storage, databases, and networking.
Cloud services also expand the traditional IT offerings to include things like Internet of Things [IoT], machine learning [ML], and artificial intelligence [AI].

Private Cloud:

It’s a cloud [delivering IT services over the internet] that’s used by a single entity.
Private cloud provides much greater control for the company and its IT department.
However, it also comes with greater cost and fewer of the benefits of a public cloud deployment.

Public Cloud:

A public cloud is built, controlled, and maintained by a third-party cloud provider.
With a public cloud, anyone that wants to purchase cloud services can access and use resources.

Hybrid Cloud:

A hybrid cloud environment can be used to allow a private cloud to surge for increased, temporary demand by deploying public cloud resources.
Hybrid cloud can be used to provide an extra layer of security.
For example, users can flexibly choose which services to keep in public cloud and which to deploy to their private cloud infrastructure.

Public | Private | Hybrid

Public Cloud: Private Cloud: Hybrid Cloud:
No capital expenditures to scale up Organizations have complete control over resources and security Provides the most flexibility
Applications can be quickly provisioned and deprovisioned Data is not collocated with other organizations data Organizations determine where to run their applications
Organizations pay only for what they use Hardware must be purchased for startup and maintenance Organizations control security, compliance, or legal requirements
Organizations don’t have complete control over resources and security Organizations are responsible for hardware maintenance and updates

Multi-Cloud:

In a multi-cloud scenario, you use multiple public cloud providers.
Maybe you use different features from different cloud providers.
Or maybe you started your cloud journey with one provider and are in the process of migrating to a different provider.

High Availability And Scalability In The Cloud:

High Availability - When you’re deploying an application, a service, or any IT resources, it’s important the resources are available when needed.
High availability focuses on ensuring maximum availability, regardless of disruptions or events that may occur.

Scalability - Refers to the ability to adjust resources to meet demand.
If you suddenly experience peak traffic and your systems are overwhelmed,
the ability to scale means you can add more resources to better handle the increased demand.

Vertical Scaling - If you were developing an app and you needed more processing power,
you could vertically scale up to add more CPUs or RAM to the virtual machine.
Conversely, if you realized you had over-specified the needs, you could vertically scale down by lowering the CPU or RAM specifications.

Horizontal Scaling - If you suddenly experienced a steep jump in demand, your deployed resources could be scaled out [either automatically or manually].
For example, you could add additional virtual machines or containers, scaling out.
In the same manner, if there was a significant drop in demand, deployed resources could be scaled in [either automatically or manually], scaling in.

Infrastructure as a Service [IaaS]

Infrastructure as a service [IaaS] is the most flexible category of cloud services,
as it provides you the maximum amount of control for your cloud resources.
In an IaaS model, the cloud provider is responsible for maintaining the hardware, network connectivity [to the internet], and physical security.
You’re responsible for everything else:
operating system installation, configuration, and maintenance, network configuration, database and storage configuration, and so on.
With IaaS, you’re essentially renting the hardware in a cloud datacenter, but what you do with that hardware is up to you.
Some common scenarios where IaaS might make sense include:
Lift-and-shift migration - You’re setting up cloud resources similar to your on-prem datacenter,
and then simply moving the things running on-prem to running on the IaaS infrastructure.
Testing and development - You have established configurations for development and test environments that you need to rapidly replicate.
You can start up or shut down the different environments rapidly with an IaaS structure, while maintaining complete control.

Platform as a Service [PaaS]

Platform as a service [PaaS] is a middle ground between renting space in a datacenter [infrastructure as a service]
and paying for a complete and deployed solution [software as a service].
In a PaaS environment, the cloud provider maintains the physical infrastructure, physical security, and connection to the internet.
They also maintain the operating systems, middleware, development tools, and business intelligence services that make up a cloud solution.
In a PaaS scenario, you don't have to worry about the licensing or patching for operating systems and databases.
Some common scenarios where PaaS might make sense include:
Development framework - PaaS provides a framework that developers can build upon to develop or customize cloud-based applications.
Similar to the way you create an Excel macro, PaaS lets developers create applications using built-in software components.
Cloud features such as scalability, high-availability, and multi-tenant capability are included, reducing the amount of coding that developers must do.
Analytics or business intelligence - Tools provided as a service with PaaS allow organizations to analyze and mine their data, finding insights and patterns and predicting outcomes to improve forecasting, product design decisions, investment returns, and other business decisions.

Software as a Service [SaaS]

Software as a service [SaaS] is the most complete cloud service model from a product perspective.
With SaaS, you’re essentially renting or using a fully developed application.
Email, financial software, messaging applications, and connectivity software are all common examples of a SaaS implementation.
While the SaaS model may be the least flexible, it’s also the easiest to get up and running.
It requires the least amount of technical knowledge or expertise to fully employ.
Some common scenarios for SaaS are:
Email & messaging, Business productivity applications, Finance and expense tracking.

Shared Responsibilityu Modle:

Responsibilities get shared between the cloud provider and the consumer.
When using a cloud provider, you’ll always be responsible for:
The accounts and identities of the people, services, and devices within your organization.
Devices that are allowed to connect to your cloud.
The information and data stored in the cloud.
Your service model will determine responsibility for things like:
Identity and infrastructure.
Operating systems.
Network Controls.
Applications.

Azure Shared Responsibility Model:

AWS Shared Responsibility Model:

GCP Shared Responsibility Model: