Defining of Cloud: In cloud computing, the term "cloud" refers to a network of remote servers hosted on the Internet
that store, manage, and process data rather than using a local server or a personal computer. The "cloud" essentially
acts as a virtualized pool of computing resources (such as processing power, storage, and applications) that can be
accessed and used over the internet.
NIST Model:
The NIST Cloud Computing Reference Architecture is a framework developed by the National Institute of Standards
and Technology (NIST) to define the various components and stakeholders involved in cloud computing environments.
The NIST Cloud Computing Reference Architecture (NIST SP 500-292) helps organizations understand how cloud
services are structured and interact.
Key Components of the NIST Cloud Computing Model:
NIST defines the cloud computing environment using five main cloud computing service models and deployment
models, and outlines the roles of different actors in the architecture.
1. Cloud Service Models:
These models define the different levels at which cloud services are provided to users:
• Infrastructure as a Service (IaaS):
o Provides basic computing infrastructure like virtual machines, storage, and networking on-demand.
o Examples: AWS EC2, Google Compute Engine, Microsoft Azure.
• Platform as a Service (PaaS):
o Provides a platform that allows developers to build, deploy, and manage applications without managing
the underlying hardware or operating system.
o Examples: Google App Engine, Microsoft Azure App Services.
• Software as a Service (SaaS):
o Delivers fully functional software applications over the internet, which users can access through a
browser or app without needing to manage the underlying infrastructure.
o Examples: Gmail, Dropbox, Microsoft Office 365.
• Function as a Service (FaaS) (sometimes considered part of Serverless Computing):
o Allows users to execute code in response to events without provisioning or managing servers.
o Example: AWS Lambda, Google Cloud Functions.
2. Cloud Deployment Models:
These models describe how cloud resources are deployed and managed, depending on the user needs and
organizational requirements:
• Public Cloud:
o The cloud resources are owned and operated by third-party cloud service providers and made available
to the general public.
o Example: Amazon Web Services (AWS), Microsoft Azure, Google Cloud.
• Private Cloud:
o The cloud infrastructure is dedicated to a single organization, either hosted on-premises or by a third-
party provider.
o Example: A private data center used for exclusive enterprise workloads.
• Hybrid Cloud:
o A combination of public and private clouds, allowing data and applications to be shared between them
for greater flexibility and optimization of existing infrastructure.
o Example: A company using a private cloud for sensitive data and a public cloud for less-critical
applications.
• Community Cloud:
o A multi-tenant cloud infrastructure shared by several organizations with similar interests or concerns
(e.g., regulatory compliance).
o Example: A cloud used by several government agencies for specific shared services.
Platform as a Service (PaaS) is a cloud computing model that provides a platform and environment for developers to
build, deploy, and manage applications without handling the underlying infrastructure (e.g., servers, storage,
networking).
Key Features:
• Development Tools: Includes tools for coding, databases, and version control.
• Managed Infrastructure: Cloud provider manages servers, storage, and scaling.
• Middleware: Provides frameworks and runtime environments (e.g., Java, .NET).
• Scalability: Automatically adjusts resources based on demand.
• Automatic Updates: Cloud provider handles maintenance and updates.
Benefits:
• Faster Development: Focus on coding, not infrastructure.
• Cost-Efficiency: Pay-as-you-go model, no need for heavy upfront investments.
• Flexibility: Customizable tools and frameworks.
• Automatic Scaling: Adapts resources based on traffic.
Examples:
• Google App Engine
• Microsoft Azure App Services
• Heroku
Software as a Service (SaaS) is a cloud computing model where software applications are delivered over the internet,
eliminating the need for users to install, maintain, or manage them locally. SaaS providers host and manage the
software, and users access it through a web browser or app on a subscription or pay-per-use basis.
Key Features:
• Accessibility: Accessible from any device with an internet connection, offering flexibility and mobility.
• No Installation: Users don’t need to install or maintain the software; it's hosted and managed by the provider.
• Automatic Updates: Providers manage updates, security patches, and maintenance.
• Scalability: SaaS platforms can scale easily to accommodate growing user needs or traffic.
• Subscription-Based: Typically offered on a subscription model, reducing upfront costs.
Benefits:
• Cost-Effective: No need for hardware investment or software installation, lowering IT overhead.
• Ease of Use: Simple to use with user-friendly interfaces.
• Collaboration: Many SaaS tools facilitate collaboration among users, especially for remote teams.
• Security: Providers often ensure high-level security, backups, and data protection.
Examples of SaaS:
• Google Workspace (formerly G Suite) – Tools like Gmail, Docs, Drive, etc.
• Salesforce – CRM software.
• Microsoft 365 – Office applications (Word, Excel, etc.) delivered online.
• Dropbox – Cloud storage and file-sharing service.
Infrastructure as a Service (IaaS) is a cloud computing model that provides virtualized computing resources over the
internet. It allows businesses to rent IT infrastructure—such as virtual machines, storage, and networking—on a pay-as-
you-go basis, rather than owning and managing physical hardware.
Key Features:
• Virtualized Resources: Provides virtual machines (VMs), storage, networking, and other infrastructure
components.
• Scalability: Resources can be quickly scaled up or down based on demand.
• Self-Service: Users can provision and manage infrastructure resources through a web portal or API.
• Pay-As-You-Go: Charges are based on usage, meaning you only pay for the resources you consume.
• High Availability: IaaS providers offer uptime guarantees and reliability through redundancy and data backup.
Benefits:
• Cost-Effective: Eliminates the need for purchasing and maintaining physical hardware.
• Flexibility: Choose and configure resources as needed, including compute power, storage, and networking.
• Scalability: Easily scale resources up or down as business requirements change.
• Focus on Core Business: Free up internal IT resources by outsourcing infrastructure management to the
provider.
Examples of IaaS Providers: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP)
Characteristics of Cloud Computing:
Cloud Computing has several defining characteristics that differentiate it from traditional computing models. These
characteristics make cloud computing more flexible, scalable, and cost-efficient for users.
Key Characteristics of Cloud Computing:
1. On-Demand Self-Service: Users can provision and manage cloud resources (e.g., storage, processing power)
automatically without needing human intervention from the service provider.
2. Broad Network Access: Cloud services are accessible over the internet through standard devices like laptops,
smartphones, and tablets from anywhere, at any time.
3. Resource Pooling: Cloud providers pool computing resources to serve multiple customers. Resources such as
storage, processing power, and memory are dynamically allocated and reassigned based on demand.
4. Rapid Elasticity: Cloud resources can be quickly scaled up or down to accommodate changing workloads,
ensuring optimal performance and cost-efficiency.
5. Measured Service: Cloud computing follows a pay-as-you-go model, where resources are billed based on usage
(e.g., storage, processing, bandwidth), providing cost efficiency and flexibility.
6. Multi-Tenancy: Multiple customers (tenants) share the same physical resources, but data and applications are
isolated and protected from each other.
7. High Availability and Reliability: Cloud services are designed for high uptime with built-in redundancy and
backup systems, minimizing downtime.
Partitioning of Virtual Private Server (VPS) Instances refers to the process of dividing physical server resources into
smaller, isolated virtual environments, where each VPS runs its own operating system and applications independently.
This partitioning allows multiple virtual machines (VMs) to run on a single physical server, sharing the underlying
hardware resources but remaining isolated from each other.
Key Concepts of VPS Partitioning:
1. Hypervisor:
o A hypervisor is responsible for partitioning a physical server into multiple virtual machines (VMs). It
manages the allocation of resources such as CPU, memory, storage, and networking between the VMs.
o There are two types of hypervisors:
▪ Type 1 (Bare-metal): Runs directly on the physical hardware (e.g., VMware ESXi, Microsoft
Hyper-V).
▪ Type 2 (Hosted): Runs on top of an existing operating system (e.g., VirtualBox, VMware
Workstation).
2. Resource Allocation:
o Each VPS is allocated specific amounts of resources such as:
▪ CPU: A portion of the physical CPU cores.
▪ RAM: A fixed amount of memory.
▪ Storage: Partitioned storage (often in the form of virtual disk images).
▪ Networking: A virtualized network interface connected to the physical server’s network.
3. Isolation:
o VPS instances are isolated from each other, meaning that the actions or failures in one VPS do not affect
others. Each VPS has its own operating system, file system, and software environment.
o Isolation is achieved using virtualization technologies, which ensure that processes, memory, and file
systems are kept separate across different virtual machines.
4. Virtualized Resources:
o The resources (CPU, RAM, storage, etc.) provided to each VPS are virtualized, allowing for efficient
sharing of the underlying physical hardware. The hypervisor ensures that each VPS only uses its
allocated resources and cannot exceed them.
5. Scalability:
o VPS partitioning makes it easy to scale the environment up or down by adjusting the amount of
allocated resources (e.g., more CPU power or additional RAM) or adding/removing VPS instances.
6. Management and Control:
o Each VPS typically comes with its own control panel, allowing users to manage the operating system,
applications, and configurations independently of other VPS instances on the same physical server.
Abstraction
• Definition: Abstraction is the process of hiding complex implementation details and showing only the essential
features of an object or system. It simplifies interactions with complex systems by focusing on higher-level
functionalities.
• Purpose: To reduce complexity and allow users or applications to interact with simpler representations of
complex systems.
• Example:
o In programming, a function provides an abstract interface to perform a task without needing to know
the details of how the task is executed.
Key Features of Abstraction:
• Hides complexity: The internal workings of a system or object are hidden from the user.
• Simplifies interaction: Users focus only on essential operations.
• Encapsulation: Combines data and functions, providing an interface while hiding implementation details.
Virtualization
• Definition: Virtualization is the technology that creates a virtual (rather than actual) version of resources, such
as virtual machines (VMs), operating systems, storage devices, or network resources. It allows multiple virtual
environments to run on a single physical machine, isolating them from each other.
• Purpose: To optimize resource usage, improve scalability, and enable easier management of hardware
resources.
• Example:
o Virtual Machines (VMs): Multiple VMs can run on a single physical server, each with its own operating
system and applications.
Key Features of Virtualization:
• Resource Sharing: Allows multiple operating systems or environments to share the same physical hardware.
• Isolation: Each virtual environment is isolated from others, meaning one VM’s failure doesn’t affect others.
• Flexibility: Easily scale up or down by adding/removing virtual environments.
• Efficient Resource Utilization: Maximizes the use of underlying hardware by allocating resources dynamically to
different virtual environments.
Types of Virtualization:
1. Hardware Virtualization:
o Definition: Virtualizes physical hardware resources (CPU, memory, storage).
o Types:
▪ Type 1 (Bare-metal): Runs directly on physical hardware (e.g., VMware ESXi).
▪ Type 2 (Hosted): Runs on top of an existing OS (e.g., VMware Workstation).
2. Operating System Virtualization (Containerization):
o Definition: Isolates applications in containers using the host OS kernel.
o Examples: Docker, Kubernetes.
3. Storage Virtualization:
o Definition: Abstracts storage resources into a single virtual pool for easier management.
o Examples: VMware vSphere Storage, IBM SAN.
4. Network Virtualization:
o Definition: Creates virtual networks independent of physical network hardware.
o Examples: VMware NSX, Cisco ACI.
5. Desktop Virtualization:
o Definition: Runs desktop environments on a central server for remote access.
o Examples: VMware Horizon, Citrix XenDesktop.
6. Application Virtualization:
o Definition: Runs applications without installing them on local devices.
o Examples: Microsoft App-V, Citrix XenApp.
7. Memory Virtualization:
o Definition: Virtualizes system memory to allocate it dynamically to VMs.
o Examples: VMware Transparent Page Sharing.
8. CPU Virtualization:
Definition: Allocates physical CPU resources to virtual CPUs for better utilization. Examples: Intel VT-x, AMD-V.