CC Notes
CC Notes
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.
Hybrid Cloud: Combines public and private clouds, allowing seamless data and application movement.
Service Models:
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.
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.
It enables you to deliver everything from simple cloud-based apps to sophisticated, cloud-
enabled enterprise applications.
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:
Some providers offer development options for computers, mobile devices, and
browsers, making cross-platform apps quicker to develop.
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.
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.
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:
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.
Challenge: Cloud services may experience downtime or disruptions. Ensuring high availability
and reliability is crucial.
Challenge: Data loss due to hardware failures, accidental deletions, or system errors.
Impact: Loss of critical data can disrupt operations and harm business continuity.
Challenge: Balancing scalability with performance optimization. Scaling too aggressively can
impact performance.
Vendor Lock-In:
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:
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:
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.
AWS S3:
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:
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.
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:
Cost Savings:
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 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.
Paravirtualization:
In paravirtualization, the guest OS is not fully isolated but partially isolated from the
virtualization layer and hardware.
Key Characteristics:
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:
Hardware Interface:
Hardware Interface refers to the connection between different pieces of electronic equipment or
between a person and a computer.
Examples:
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.
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).
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.
Types of Hypervisors:
Type 1 (Bare-Metal):
Type 2 (Hosted):
Use Cases:
Examples include:
Budget Alerts: Setting budget thresholds and receiving alerts when exceeded.
Hygiene Policies:
Examples include:
Compliance Policies:
Examples include:
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.
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.
Cons: May lead to poor resource utilization if long-running tasks arrive first.
Description: SJF schedules VMs based on their execution time (job length).
Priority Scheduling:
Max-Min Scheduling:
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.
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.
MapReduce divides a large computation task into smaller sub-tasks that can be processed in parallel.
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.
Simplicity: Developers can write code in languages like Java, C++, or Python.
Use Cases:
Example:
MapReduce would:
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.