0% found this document useful (0 votes)
12 views

CC Notes

Cloud computing notes for MPHIL
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views

CC Notes

Cloud computing notes for MPHIL
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

CLOUD COMPUTING

Abdul Qayoom Jat


CODEBOT Net2Apps
Network-centric computing:
Network-centric computing refers to a set of principles that enhance the delivery, scalability, and functionality of
information systems by utilizing computer networks and their components.

Network-Centric Computing leverages the power of the Internet to provide an environment for data,
applications, and infrastructure on demand.

It allows you to manage everything from one interface without worrying about hardware or server management
issues.

it’s an evolution of Software as a Service (SaaS), where applications and data are accessed remotely via the
network.

network-centric computing allows organizations to focus on their core business needs while fully virtualizing
their IT footprint and taking advantage of modern networking technologies.

Cloud computing:
Cloud computing is the on-demand availability of computing resources (such as storage and infrastructure) as
services over the internet.

Deployment Models:

Public Cloud: Services are provided by third-party vendors over the internet. Shared by multiple
organizations.

Private Cloud: Dedicated to a single organization, often hosted on-premises.

Hybrid Cloud: Combines public and private clouds, allowing seamless data and application movement.

Service Models:

Infrastructure as a Service (IaaS):

Offers compute and storage services. It provides virtualized computing resources, allowing you
to scale up or down as needed.

IaaS is a type of cloud computing service that offers essential compute, storage, and networking
resources on demand, on a pay-as-you-go basis.

It’s one of the four types of cloud services, along with Software as a Service (SaaS), Platform as a
Service (PaaS), and serverless.

With IaaS, you can:

Reduce maintenance of on-premises data centers.

Save money on hardware costs.

Gain real-time business insights.

IaaS solutions provide the flexibility to scale IT resources up and down based on
demand.

They also help you quickly provision new applications and increase the reliability of your
underlying infrastructure.
Advantages of IaaS:

Reduces Capital Expenditures: Eliminates the cost of configuring and managing physical
data centers.

Optimizes Costs: Pay only for the resources you use.

Scalability: Quickly scale up or down based on demand.

Flexibility: Bypass the complexity of buying and managing physical servers.

Platform as a Service (PaaS):

Provides a develop-and-deploy environment for building cloud applications. Developers can


focus on coding without worrying about infrastructure management.

PaaS is a complete development and deployment environment in the cloud.

It enables you to deliver everything from simple cloud-based apps to sophisticated, cloud-
enabled enterprise applications.

Here’s what it includes:

Infrastructure: Servers, storage, and networking.

Middleware: Development tools, business intelligence (BI) services, and database


management systems.

PaaS supports the complete web application lifecycle: building, testing, deploying,
managing, and updating.

You purchase resources from a cloud service provider on a pay-as-you-go basis and
access them securely over the Internet.

Advantages of PaaS:

Cut Coding Time:

PaaS development tools reduce coding time by providing pre-coded application


components (e.g., workflow, security features).

Add Capabilities Without Staff Increase:

PaaS components enhance your development team’s capabilities without hiring


additional staff.

Develop for Multiple Platforms Easier:

Some providers offer development options for computers, mobile devices, and
browsers, making cross-platform apps quicker to develop.

Software as a Service (SaaS):

Delivers applications as services. Users access software over the internet without installing or
maintaining it locally.

SaaS allows users to connect to and use cloud-based applications over the Internet.
Common examples include email, calendaring, and office tools (such as Microsoft Office 365).

With SaaS, you purchase a complete software solution on a pay-as-you-go basis from a cloud
service provider.

Users connect to the app over the Internet, usually via a web browser.

All underlying infrastructure, middleware, app software, and data reside in the service provider’s
data center.

Advantages of SaaS:

Access to Sophisticated Apps: Even large enterprise applications become affordable for
organizations lacking resources to manage infrastructure and software.

Pay Only for Usage: Costs automatically scale based on usage.

Free Client Software: Most SaaS apps run directly from web browsers without additional
software installation.

Easy Workforce Mobilization: Users access SaaS apps and data from any Internet-
connected device.

How It Works:

Cloud computing is based on the concept of sharing on-demand resources over the internet.

Companies or individuals pay to access a virtual pool of shared resources (compute, storage, networking)
located on remote servers managed by service providers.

Advantages:

Scalability: Organizations can scale efficiently without maintaining physical data centers.

Cost-Efficiency: Pay only for what you use.

Flexibility: Quickly adapt to changing needs.

Security: Common components ensure data safety.

Challenges for cloud computing:

Cloud computing brings immense benefits, but it also comes with its share of challenges. Let’s explore
some of the common hurdles faced in the world of cloud computing:

Data Security and Privacy:

Challenge: Ensuring data security and privacy is critical. While cloud service providers offer
assurances, it’s your responsibility to manage user authentication, data encryption, and access
control.

Impact: Breaches can lead to revenue loss, reputation damage, and decreased trust among
users1.

Cost Management:

Challenge: Despite the “Pay As You Go” model, costs can escalate due to under-optimized
resources, unused instances, or sudden spikes in usage.
Impact: Uncontrolled costs affect the overall budget and financial planning.

Downtime and Service Reliability:

Challenge: Cloud services may experience downtime or disruptions. Ensuring high availability
and reliability is crucial.

Impact: Downtime affects business continuity and user experience.

Data Loss and Recovery:

Challenge: Data loss due to hardware failures, accidental deletions, or system errors.

Impact: Loss of critical data can disrupt operations and harm business continuity.

Scalability and Performance:

Challenge: Balancing scalability with performance optimization. Scaling too aggressively can
impact performance.

Impact: Poor performance affects user satisfaction and productivity.

Vendor Lock-In:

Challenge: Dependence on a specific cloud provider’s ecosystem.

Impact: Switching providers becomes complex and costly.

Lack of Cloud Expertise:

Challenge: Organizations need skilled professionals to manage cloud environments effectively.

Impact: Insufficient expertise can lead to misconfigurations and security vulnerabilities

Amazon Web Services (AWS):


Amazon Web Services (AWS) is the world’s most comprehensive cloud platform, offering a broad set of global
cloud-based products and services.

In 2006, AWS began offering IT infrastructure services as web services, pioneering cloud computing.

AWS empowers organizations to innovate, lower costs, and become more agile by leveraging cloud-based
services.

Benefits of AWS:

Reliability: Highly reliable and scalable infrastructure.

Cost Savings: Eliminates the need for upfront hardware procurement.

Agility: Instantly provision resources and deliver results faster.

Security: Provides a secure and compliant platform.

AWS instances:

An instance is a virtual server with a well specified set of resources including: CPU cycles, main memory,
secondary storage, communication and I/O bandwidth.
The user selects the region and availability zone for the virtual server and chooses an instance type from
a limited menu.

An instance's DNS name indicates its private IP address for internal EC2 communication and public IP
address for communication outside the internal Amazon network, like with the instance's launcher.

Network Address Translation (NAT) converts external IP addresses to internal ones, assigning a public IP
address for an instance's lifetime. An instance can request an elastic IP address, a static public IP address
from the availability zone pool.

AWS EC2:

Amazon Elastic Compute Cloud (Amazon EC2), commonly known as EC2, is a fundamental service within
Amazon Web Services (AWS).

Amazon EC2 provides on-demand, scalable computing capacity in the AWS Cloud.

It allows you to launch virtual servers (known as instances) as needed, configure security, networking,
and manage storage.

Amazon EC2 provides flexible, resizable compute capacity in the cloud, allowing you to build and scale
applications without upfront hardware costs.

Use Cases:

Hosting websites and web applications.

Running batch processing jobs.

Machine learning and data analytics.

Development and testing environments.

AWS EBS:

Amazon Elastic Block Store (Amazon EBS) provides block-level storage volumes for use with Amazon EC2
instances.

Amazon EBS provides durable and scalable block storage for your EC2 instances.

Use Cases:

Primary Storage: EBS volumes are well-suited for use as the primary storage for file systems,
databases, or applications requiring fine-grained updates.

Random Reads/Writes: Suitable for database-style applications relying on random reads and
writes.

Throughput-Intensive Workloads: Also ideal for throughput-intensive applications with


continuous reads and writes.

AWS S3:

Amazon S3 is a versatile and reliable storage service used by organizations worldwide.

Amazon Simple Storage Service (Amazon S3), commonly known as S3, is an object storage service
provided by Amazon Web Services (AWS).
Amazon S3 is an industry-leading scalable object storage service.

Purpose: It allows you to store and retrieve any amount of data securely and efficiently.

Use Cases:

Data Lakes: Store and analyze large datasets for analytics.

Websites: Host static websites with S3.

Backup and Restore: Backup critical data to S3.

Archiving: Archive infrequently accessed data cost-effectively.

Virtualization:
Virtualization in computing refers to the process of creating a virtual version of something, such as computer
hardware or storage devices.

Virtualization enables the hardware resources of a single computer—processors, memory, storage, and more—
to be divided into multiple virtual computers called virtual machines (VMs).

Each VM runs its own operating system (OS) and behaves like an independent computer, even though it shares
the underlying physical hardware with other VMs.

VMs allow for more efficient utilization of physical computer resources.

Foundation of Cloud Computing:

Virtualization is the foundation of cloud computing.

It uses software to create an abstraction layer over computer hardware, allowing efficient resource
allocation.

Cloud providers use virtualization to serve users with existing physical hardware, while users can
purchase computing resources as needed and scale cost-effectively.

Benefits of Virtualization:

Resource Efficiency:

Before virtualization, each application server required its own dedicated physical CPU, resulting
in underused servers.

With virtualization, multiple applications run on a single physical computer without sacrificing
reliability.

Easier Management:

Software-defined VMs simplify management through automated deployment, configuration, and


security policies.

Admins can create consistent services without manual setup.

Cost Savings:

Virtualization maximizes hardware utilization, providing a greater return on investment.


Layering:

Layering is a common approach to manage system complexity.

Layering manages system complexity by minimizing interactions among subsystems, simplifying their
descriptions, and allowing independent design, implementation, and modification of individual
subsystems in a computer system.

Full Virtualization and Para – Virtualization:

Full virtualization offers compatibility with various guest operating systems and strong isolation, while
paravirtualization excels in performance by allowing direct communication with the hypervisor.

Full Virtualization:

Introduced by IBM in 1966, full virtualization is the first software solution for server
virtualization.

Key Characteristics:

Complete Isolation: Guest OS runs unmodified and is entirely isolated from the
virtualization layer and hardware.

Binary Translation: Uses binary translation and a direct approach for operations.

Examples: Microsoft and Parallels systems.

Pros and Cons:

Security: Less secure.

Performance: Slower than paravirtualization.

Portability: More portable and compatible.

Isolation: Provides the best isolation.

Paravirtualization:

In paravirtualization, the guest OS is not fully isolated but partially isolated from the
virtualization layer and hardware.

Key Characteristics:

API Interaction: Provides a different API for altered OS behavior.

Hypercalls: Uses hypercalls at compile time for operations.

Examples: Microsoft Hyper-V, Citrix Xen, etc.

Pros and Cons:

Security: More secure than full virtualization.

Performance: Faster in operation.

Portability: Less portable and compatible.

Isolation: Provides less isolation compared to full virtualization.


Interface:

Interfaces play a crucial role in enabling communication, interaction, and interoperability across various
domains.

Interface is the place where two systems, activities, or entities come together and affect each other.

Example:

The interface between technology and tradition.

The interface between business and government.

Hardware Interface:

Hardware Interface refers to the connection between different pieces of electronic equipment or
between a person and a computer.

Examples:

Network Interface: Allows communication between computers.

User Interface (Hardware): Buttons, screens, and controls on devices like smartphones
or appliances.

Software interface:

A Software interface defines how different software components or systems communicate with
each other.

Software interface specifies the methods, functions, and data structures that one component
exposes to others.

Examples of Software interfaces:

API (Application Programming Interface): Defines how software modules interact at the
source code level.

ABI (Application Binary Interface): Specifies the low-level binary interface between
compiled code and libraries.

User Interface (UI): The way information is presented to users and how they interact
with software (e.g., graphical user interfaces).

Virtual machine monitor (VMM / hypervisor):

A Virtual Machine Monitor (VMM), also known as a hypervisor, is software that creates and manages
virtual machines (VMs).

Hypervisors enable efficient virtualization, allowing multiple operating systems to coexist on a single
physical server.

Purpose:

A VMM allows one physical host computer to support multiple guest VMs.

It virtually shares the host’s resources, such as memory, processing power, and storage, among
the VMs.
Benefits:

Resource Isolation: VMs are isolated from each other, ensuring that one VM’s actions do not
affect others.

Efficient Utilization: Multiple VMs run on a single physical server, optimizing resource usage.

Portability: VMs can be easily moved between different servers.

Security: VMs are independent of the host hardware, enhancing security.

Types of Hypervisors:

Type 1 (Bare-Metal):

Installs directly on the hardware.

Provides strong isolation.

Examples: VMware vSphere, Microsoft Hyper-V, KVM.

Type 2 (Hosted):

Runs as software on an existing operating system.

Less isolation but easier to set up.

Examples: Oracle VirtualBox, VMware Workstation.

Use Cases:

Data centers, cloud computing, development, testing, and server consolidation.

Cloud Resource Management Policies:


Cloud Resource Management Policies refer to the strategies and rules that govern the allocation, utilization, and
administration of cloud resources within a computing environment. These policies ensure efficient use of
resources, cost management, security, and compliance with organizational goals and regulations.

Here are some aspects related to cloud resource management policies:

Cost Control Policies:

These policies aim to reduce cloud spending by optimizing resource usage.

Examples include:

Rightsizing: Adjusting resource sizes to match actual workload requirements.

Auto Scaling: Automatically adjusting resources based on demand.

Budget Alerts: Setting budget thresholds and receiving alerts when exceeded.

Hygiene Policies:

These focus on maintaining a clean and efficient cloud environment.

Examples include:

Resource Cleanup: Identifying and removing unused or stale resources.


Tagging Standards: Enforcing consistent resource tagging for better organization.

Access Control: Managing permissions to prevent unauthorized access.

Compliance Policies:

These ensure adherence to regulatory requirements and security standards.

Examples include:

Data Encryption: Requiring encryption for sensitive data.

Geolocation Restrictions: Controlling where data is stored.

Access Logging: Monitoring and auditing access to resources

Scheduling algorithms in VMs:

Scheduling involves resource sharing and multiplexing at multiple levels, with a scheduler deciding
resource allocation and duration, ensuring efficiency, fairness, and starvation-free performance.

The choice of scheduling algorithm depends on factors like workload characteristics, system goals, and
resource availability.

First Come, First Served (FCFS):

Description: FCFS is a non-preemptive scheduling algorithm where tasks are executed in the
order they arrive.

Operation: VMs are scheduled based on their arrival time, and the first VM to arrive is the first
to be executed.

Pros: Simple and easy to implement.

Cons: May lead to poor resource utilization if long-running tasks arrive first.

Shortest Job First (SJF):

Description: SJF schedules VMs based on their execution time (job length).

Operation: The VM with the shortest execution time is given priority.

Pros: Minimizes waiting time and improves overall throughput.

Cons: Requires knowledge of execution times in advance.

Priority Scheduling:

Description: Priority-based scheduling assigns priorities to VMs.

Operation: VMs with higher priority execute first.

Pros: Allows for task prioritization.

Cons: May lead to starvation if lower-priority VMs are consistently preempted.

Round Robin (RR):

Description: RR allocates time slices (quantum) to each VM in a cyclic manner.


Operation: VMs take turns executing for a fixed time slice, and then the next VM is scheduled.

Pros: Fair distribution of CPU time.

Cons: Overhead due to context switching.

Max-Min Scheduling:

Description: Max-Min aims to allocate resources fairly among VMs.

Operation: Initially, each VM gets an equal share of resources. If any VM has spare capacity, it is
distributed to VMs with the lowest allocation.

Pros: Ensures fairness.

Cons: Complexity in determining initial allocations.

MapReduce:
MapReduce is a fundamental tool for distributed data processing, enabling efficient analysis of large-scale data in
cloud environments.

MapReduce is a powerful programming paradigm used for efficient processing of large data sets in parallel over
distributed computing environments, especially within the context of cloud computing.

MapReduce is a programming model that enables massive scalability across hundreds or thousands of servers in
a Hadoop cluster.

It is the heart of Apache Hadoop, a popular open-source framework for distributed storage and processing of big
data.

How MapReduce Works:

MapReduce divides a large computation task into smaller sub-tasks that can be processed in parallel.

It consists of two main phases:

Map Phase: In this phase, input data is divided into chunks, and each chunk is processed
independently by a map function. The map function generates intermediate key-value pairs.

Reduce Phase: The intermediate key-value pairs are grouped by key, and a reduce function
processes each group to produce the final output.

Key Features:

Parallel Processing: MapReduce distributes the workload across multiple nodes, achieving parallelism.

Fault Tolerance: If a node fails, MapReduce automatically reruns the failed tasks on other nodes.

Scalability: It scales horizontally by adding more nodes to the cluster.

Simplicity: Developers can write code in languages like Java, C++, or Python.

Use Cases:

Batch Processing: Analyzing large datasets, log files, or historical data.

Search Engines: Generating inverted indices for search queries.


Recommendation Systems: Processing user behavior data to recommend products or content.

Data Transformation: Converting data from one format to another.

Example:

Suppose we want to count the occurrences of words in a large text corpus.

MapReduce would:

Divide the text into chunks.

Use the map function to extract words and emit (word, 1) pairs.

Group the pairs by word and use the reduce function to sum the counts.

You might also like