Cloud Architecture
Cloud Architecture
A frontend platform
A backend platform
A cloud-based delivery model
A network (internet, intranet, or intercloud)
On the other hand, the back end refers to the cloud architecture
components that make up the cloud itself, including computing
resources, storage, security mechanisms, management, and
more.
There are three main types of cloud architecture you can choose
from: public, private, and hybrid.
A binary code that might need additional layers to run can now
run on an x86 machine or with some tweaking, even on x64
machines. ISA helps make this a hardware-agnostic virtual
machine.
This level helps form the virtual machine and manages the
hardware through virtualization.
This way multiple users can use the same hardware with
numerous instances of virtualization at the same time.
IBM had first implemented this on the IBM VM/370 back in 1960.
It is more usable for cloud-based infrastructure.
Thus, it is no surprise that currently, Xen hypervisors are using
HAL to run Linux and other OS on x86 based machines.
4.Library Level
5.Application Level
1. Hypervisors:
o Type 1 (Bare-Metal) Hypervisors: These hypervisors run directly on
the physical hardware without a host operating system. They are
used in enterprise environments for their high performance and
efficiency. Examples include VMware ESXi and Microsoft Hyper-V.
o Type 2 (Hosted) Hypervisors: These hypervisors run on top of a host
operating system and are typically used in desktop or development
environments. Examples include Oracle VirtualBox and VMware
Workstation.
2. Containers:
o Containers provide lightweight virtualization by packaging
applications and their dependencies together. They share the host OS
kernel but run in isolated user spaces. Docker is the most popular
containerization tool, and Kubernetes is commonly used for
orchestrating containers.
Virtualization Tools
1. Management Tools:
o VMware vCenter: Centralized management of VMware vSphere
environments, allowing for efficient control of multiple virtual
machines and hosts.
o Microsoft System Center Virtual Machine Manager (SCVMM):
Manages Hyper-V environments, providing tools for deploying,
configuring, and managing VMs.
2. Orchestration Tools:
o Kubernetes: Manages the deployment, scaling, and operations of
containerized applications. It automates the distribution and
scheduling of containers across a cluster.
o OpenStack: An open-source cloud platform that controls large pools
of compute, storage, and networking resources.
3. Automation Tools:
o Ansible: Automates IT operations, including configuration
management, application deployment, and task automation.
o Terraform: Allows for infrastructure as code, enabling the creation,
management, and updating of infrastructure resources in a
repeatable manner.
4. Monitoring Tools:
o Prometheus: Collects and stores metrics from applications and
infrastructure, providing powerful querying and alerting capabilities.
o Nagios: Monitors systems, networks, and infrastructure, alerting
administrators to potential issues.
Virtualization Mechanisms
1. Hardware Virtualization Extensions:
o Intel VT-x and AMD-V: These CPU extensions improve virtualization
performance by offloading certain virtualization tasks to the
hardware, reducing overhead.
2. Paravirtualization:
o Paravirtualization modifies the guest OS to communicate directly
with the hypervisor, enhancing performance by reducing the need for
full hardware emulation. The Xen hypervisor uses paravirtualization
techniques.
3. Emulation:
o Emulation simulates hardware so that software designed for one
type of hardware can run on another. QEMU is a popular emulator
that can simulate different CPU architectures.
4. Snapshotting:
o Snapshotting captures the state of a VM or container at a specific
point in time. This is useful for backups, recovery, and testing changes
without permanent alterations.
5. Live Migration:
o Live migration involves moving a running VM or container from one
physical host to another with minimal downtime. Technologies like
VMware vMotion and KVM support live migration.
6. Virtual Networks:
o Software-Defined Networking (SDN): Decouples the network control
plane from the data plane, allowing for more flexible and dynamic
network management. OpenFlow and VMware NSX are examples of
SDN technologies.
o Virtual LANs (VLANs): Segregate network traffic in virtualized
environments, providing security and improving network
performance.
7. Storage Virtualization:
o Storage Area Networks (SAN): Consolidate storage resources into a
single pool, making them easier to manage and allocate. VMware
vSAN and NetApp ONTAP are examples of storage virtualization
solutions.
CPU virtualization
CPU virtualization allows multiple operating systems and applications to
run on a single physical machine by sharing the CPU's resources. The
primary component managing this is the hypervisor, which can be of two
types: Type 1 (bare-metal) and Type 2 (hosted). Type 1 hypervisors, like
VMware ESXi and Microsoft Hyper-V, run directly on the hardware,
providing high performance and efficiency. Type 2 hypervisors, such as
Oracle VirtualBox, run on top of an existing operating system, suitable for
desktop and development environments.
Each virtual machine (VM) is allocated one or more virtual CPUs (vCPUs),
which the hypervisor schedules and manages. Techniques used in CPU
virtualization include full virtualization, where the hypervisor completely
simulates the hardware, allowing unmodified guest operating systems to
run. Paravirtualization involves modifying the guest OS to interact more
efficiently with the hypervisor, improving performance.
Key Concepts
1. Virtual Memory:
o Each VM operates with its own virtual memory space, which appears
to be contiguous and exclusive to that VM. The hypervisor or host
operating system maps these virtual memory addresses to the actual
physical memory addresses.
2. Hypervisor:
o The hypervisor is responsible for managing memory allocation and
ensuring isolation between VMs. It handles memory allocation,
mapping, and swapping between physical and virtual memory.
Techniques
1. Paging:
o Memory is divided into fixed-size pages, and the hypervisor maps
these pages from virtual memory to physical memory. This allows for
efficient use of memory and easier management of memory
allocation.
2. Memory Overcommitment:
o The hypervisor can allocate more virtual memory to VMs than the
available physical memory. This is possible because not all VMs use
their allocated memory simultaneously. Techniques like ballooning
and swapping help manage overcommitted memory.
3. Ballooning:
o A balloon driver within the guest OS can "inflate" to consume
memory, which the hypervisor can then reclaim and allocate to other
VMs that need it more.
4. Swapping:
o When physical memory is exhausted, the hypervisor can move less
frequently used data to disk storage (swap space) to free up physical
memory for more active VMs.
1. Hypervisors:
o VMware ESXi: Uses techniques like TPS and memory compression to
optimize memory usage.
o Microsoft Hyper-V: Manages memory allocation dynamically,
allowing for efficient utilization and high performance.
o KVM (Kernel-based Virtual Machine): An open-source hypervisor
that leverages Linux kernel features for memory management.
Benefits
1. Isolation:
o Each VM's memory is isolated from others, enhancing security and
stability. Memory virtualization ensures that one VM cannot directly
access another VM's memory.
2. Efficiency:
o Memory virtualization allows for more efficient use of physical
memory through techniques like paging, ballooning, and transparent
page sharing, reducing waste and improving performance.
3. Scalability:
o Memory virtualization supports the creation and management of
large numbers of VMs on a single physical host, making it essential
for cloud computing and data center operations.
2. Direct Assignment:
o Some I/O devices can be directly assigned to VMs, bypassing the
hypervisor. This provides near-native performance but reduces
flexibility and management features.
Techniques
1. Device Emulation:
o The hypervisor emulates standard I/O devices that guest VMs
recognize. This ensures compatibility across different guest OSs and
hardware configurations.
2. Para-virtualization:
o Guest VMs use para-virtualized drivers provided by the hypervisor to
communicate with virtualized I/O devices, improving performance
and reducing overhead compared to full virtualization.
1. Hypervisors:
o VMware ESXi: Supports various I/O virtualization techniques like
para-virtualization and direct I/O passthrough.
o Microsoft Hyper-V: Provides capabilities for virtualizing network
adapters, storage controllers, and other I/O devices.
2. Virtual I/O Controllers:
o These are software-based controllers provided by the hypervisor,
managing access and communication between VMs and physical I/O
devices.
Benefits
1. Resource Efficiency:
o I/O virtualization optimizes the use of physical I/O devices, enabling
multiple VMs to share them without compromising performance or
security.
2. Isolation:
o Each VM's access to I/O resources is isolated, ensuring that one VM
cannot interfere with or access another VM's I/O operations.
3. Flexibility:
o Virtualizing I/O devices provides flexibility in managing and scaling
virtualized environments, supporting dynamic resource allocation
and workload migration.
Resource Management
1. CPU and Memory Allocation:
o Allocation Policies: Define how CPU and memory resources are
distributed among VMs or containers within the cluster.
o Overcommitment: Techniques like memory ballooning and CPU
overcommitment allow more efficient utilization of physical
resources.
2. Storage Management:
o Virtual Storage: Manage virtual disks and storage volumes allocated
to each VM or container.
o Storage Virtualization: Pool storage resources and allocate
dynamically based on workload requirements.
3. Network Management:
o Virtual Networks: Create isolated networks for VMs or containers,
ensuring secure communication and efficient data transfer.
o Bandwidth Management: Allocate network bandwidth to prioritize
traffic and optimize performance.
4. Load Balancing:
o Traffic Distribution: Distribute incoming network traffic or workload
across multiple VMs or containers to optimize resource usage and
ensure high availability.
o Application-Level Load Balancers: Route requests based on
application-specific criteria to improve performance and reliability.
Benefits
Use Cases
Unit-IV
features of cloud and grid platforms
Cloud Platforms
1. On-Demand Self-Service:
o Users can provision and manage computing resources (e.g., virtual
machines, storage) without human intervention from the service
provider.
2. Broad Network Access:
o Services are accessible over the network and can be accessed through
standard mechanisms, enabling diverse client devices (e.g., laptops,
smartphones) to use cloud services.
3. Resource Pooling:
o Computing resources are pooled to serve multiple consumers using a
multi-tenant model, with different physical and virtual resources
dynamically assigned and reassigned according to demand.
4. Rapid Elasticity:
o Resources can be scaled up or down quickly and automatically to
accommodate changes in demand. This elasticity provides the ability
to scale out during peak times and scale in during periods of low
demand.
5. Measured Service:
o Cloud systems automatically control and optimize resource use by
leveraging a metering capability at some level of abstraction
appropriate to the type of service (e.g., storage, processing,
bandwidth, active user accounts). Resource usage can be monitored,
controlled, and reported, providing transparency for both the provider
and consumer of the utilized service.
6. Examples:
o Amazon Web Services (AWS), Microsoft Azure, Google Cloud
Platform (GCP)
Grid Platforms
computing
architecture.
In cloud computing,
While in grid computing, resources
resources are used in
are used in collaborative pattern.
centralized pattern.
In cloud computing,
While in grid computing, the users do
the users pay for the
not pay for use.
use.
Cloud computing is a
While grid computing is a low
high accessible
accessible service.
service.
It is highly scalable as
While grid computing is low scalable
compared to grid
in comparison to cloud computing.
computing.
It can be accessed
While it is accessible through grid
through standard web
middleware.
protocols.
Cloud computing is
Grid computing is based on
based on service-
application-oriented.
oriented.
1. Cloud Computing :
Cloud computing refers to providing on demand IT
resources/services like server, storage, database, networking,
analytics, software etc. over internet. It is a computing
technique that delivers hosted services over the internet to its
users/customers. Cloud computing provides services such as
hardware, software, networking resources through internet.
Some characteristics of cloud computing are providing shared
pool of configurable computing resources, on-demand service,
pay per use, provisioned by the Service Providers etc.
It is classified into 4 different types such as
Public Cloud
Private Cloud
Community Cloud
Hybrid Cloud
2. Distributed Computing :
Distributed computing refers to solve a problem over
distributed autonomous computers and they communicate
between them over a network. It is a computing technique
which allows to multiple computers to communicate and work
to solve a single problem. Distributed computing helps to
achieve computational tasks more faster than using a single
computer as it takes a lot of time. Some characteristics of
distributed computing are distributing a single task among
computers to progress the work at same time, Remote
Procedure calls and Remote Method Invocation for distributed
computations.
It is classified into 3 different types such as
Distributed Computing Systems
Distributed Information Systems
Distributed Pervasive Systems
Advantages
Disadvantages
Advantages
Disadvantages
Single computer is
2. Uses multiple computers
required
Multiple processors
Multiple computers perform
3. perform multiple
multiple operations
operations
Microsoft Azure:
Key Services for Programming:
o Azure Virtual Machines: Scalable VMs for running applications and
workloads.
o Azure Functions: Serverless computing, executes code in response to
events.
o Azure Blob Storage: Scalable object storage for unstructured data.
o Azure SQL Database: Fully managed relational database service.
o Cosmos DB: Globally distributed, multi-model NoSQL database.
Programming Support:
o SDKs: Azure SDKs for languages including .NET, Java, Node.js,
Python, Ruby, PHP, and Go.
o Infrastructure as Code (IaC): Azure Resource Manager (ARM)
templates for defining infrastructure as code.
o Development Tools: Visual Studio, Visual Studio Code, Azure
DevOps for CI/CD, and Azure CLI.
Deployment and Management:
o Azure App Services: Platform for building and hosting web apps,
RESTful APIs, and mobile backends.
o Azure Portal: Web-based interface for managing Azure resources.
o Azure CLI: Command-line tools for managing Azure services.
Emerging Cloud Software Environments:
Kubernetes:
o Description: Open-source platform for automating deployment,
scaling, and operations of application containers.
o Key Features: Container orchestration, automatic bin packing, self-
healing, service discovery and load balancing, automated rollouts and
rollbacks, secret and configuration management.
o Integration: Compatible with multiple cloud providers and on-
premises infrastructure.
OpenStack:
o Description: Open-source cloud computing platform for building and
managing public and private clouds.
o Key Features: Modular architecture with components for compute
(Nova), storage (Swift, Cinder), networking (Neutron), and identity
(Keystone).
o Usage: Popular for private clouds, hybrid clouds, and as a basis for
public cloud services.
Serverless Computing:
o Platforms: AWS Lambda, Azure Functions, Google Cloud
Functions.
o Description: Execution model where the cloud provider runs the
server, dynamically manages resource allocation, and charges only for
the time the code is running.
o Key Features: No server management, automatic scaling, built-in
fault tolerance, and pay-per-use pricing model.
o Use Cases: Event-driven applications, microservices, real-time data
processing, and backend services.
Storage Systems
Evolution of Storage Technology:
Storage Models:
Block Storage: Provides raw storage volumes that can be attached to
virtual machines. Commonly used for databases and applications requiring
low-latency access.
File Storage: Manages data as files in a hierarchical structure. Suitable for
file sharing and storage of documents, images, and other files.
Object Storage: Stores data as objects, each with a unique identifier. Ideal
for storing large amounts of unstructured data such as multimedia files,
backups, and logs.
File Systems and Databases☹ (short type)
HDFS (Hadoop Distributed File System): Designed for high throughput and large
data sets, used in Hadoop.
Ceph: A scalable, distributed storage system providing object, block, and file storage.
Specific Technologies:
1. Google File System (GFS): Designed for large-scale data processing, supports high
fault tolerance and handles large files.
2. Apache Hadoop:
o HDFS: Distributed file system for storing large data sets.
o MapReduce: Programming model for parallel processing of large data sets.
3. BigTable: A distributed storage system for managing structured data, designed to
scale to very large sizes.
4. Megastore: Google’s storage system that combines the scalability of NoSQL
databases with the consistency of traditional databases.
5. Amazon S3: Scalable object storage service offering high availability, durability, and
security.
File Systems and Databases
File Systems
Databases
SQL Databases:
MySQL:
o Description: Open-source relational database management system.
o Features: ACID compliance, support for various storage engines,
replication, partitioning, and strong security features.
o Usage: Web applications, data warehousing, and e-commerce
platforms.
PostgreSQL:
o Description: Open-source relational database system known for its
robustness and advanced features.
o Features: ACID compliance, support for complex queries, JSON data
types, full-text search, and extensibility.
o Usage: Enterprise applications, geographic information systems (GIS),
and data analysis.
Oracle:
o Description: Commercial relational database management system
known for its advanced features and performance.
o Features: ACID compliance, clustering, partitioning, advanced
security features, support for large databases, and extensive tools for
data management.
o Usage: Large enterprises, financial institutions, and mission-critical
applications.
NoSQL Databases:
MongoDB:
o Description: Document-oriented NoSQL database.
o Features: Schema flexibility, horizontal scalability, high availability
through replication, and support for complex queries.
o Usage: Content management systems, real-time analytics, and
mobile applications.
Cassandra:
o Description: Wide-column store NoSQL database designed for high
availability and scalability.
o Features: Decentralized architecture, linear scalability, fault
tolerance, and support for large volumes of data across multiple data
centers.
o Usage: Real-time big data applications, IoT, and social media
analytics.
DynamoDB:
o Description: Fully managed NoSQL database service provided by
Amazon Web Services.
o Features: Automatic scaling, high availability, low latency, support for
key-value and document data models.
o Usage: Web applications, gaming, IoT applications, and serverless
computing.
2. Ceph:
o Description: Scalable, distributed storage system providing object,
block, and file storage.
o Features: High performance, high availability, self-healing, and
automatic data distribution.
o Usage: Cloud infrastructure, data centers, and enterprises needing
scalable and reliable storage solutions.
Specific Technologies
2. Apache Hadoop:
o Components:
HDFS: Distributed file system designed for storing large data
sets across multiple machines.
MapReduce: Programming model for processing large data sets
with a distributed algorithm.
o Features: Scalability, fault tolerance, designed for batch processing.
o Usage: Big data analytics, data processing workflows, and data
warehousing.
3. BigTable:
o Description: Distributed storage system for managing structured
data, designed to scale to very large sizes.
o Features: Sparse, distributed, multi-dimensional sorted map,
optimized for high read and write throughput.
o Usage: Used by Google applications such as web indexing, Google
Earth, and Google Finance.
4. Megastore:
o Description: Google’s storage system combining the scalability of
NoSQL databases with the consistency of traditional databases.
o Features: Partitioned data storage, synchronous replication, support
for ACID transactions.
o Usage: Applications requiring high availability, strong consistency,
and scalability, such as Google App Engine applications.