cloud computing
cloud computing
Unit 1
Cloud Computing means storing and accessing the data and programs on remote servers that
are hosted on the internet instead of the computer's hard drive or local server. Cloud computing
is also referred to as Internet-based computing, it is a technology where the resource is provided
as a service through the Internet to the user. The data that is stored can be files, images,
documents, or any other storable document.
How Cloud Computing Works?
Cloud computing helps users in easily accessing computing resources like storage and
processing over the internet rather than local hardware. Here we are discussing how it works in
a nutshell:
• Infrastructure: Cloud computing depends on remote network servers hosted on
internet for store, manage, and process the data.
• On-Demand Access: Users can access cloud services and resources based on-
demand they can scale up or down the without having to invest for physical
hardware.
• Types of Services: Cloud computing offers various benefits such as cost saving,
scalability, reliability and accessibility it reduces capital expenditures, improves
efficiency.
Three major milestones have led to Cloud computing: mainframe computing, cluster computing,
and Grid computing.
• High Reliability and Availability – Very low downtime; built for critical operations.
• Scalability – Can handle thousands of users and massive workloads simultaneously.
• Security – Strong inbuilt security features for sensitive data.
• Performance – Excellent at handling large-scale transaction processing.
• Centralized Management – Easier to monitor and control from one system.
Definition:
Key Concepts:
Features:
• Platform-independent services
• Uses standard protocols (HTTP, XML, WSDL)
• Interoperability between different systems
• Encourages reusability and flexibility
Examples:
Disadvantages:
Definition:
Utility-Oriented Computing treats computing resources (like processing power, storage, and
network) as metered services, similar to public utilities (electricity, water). Users pay as they go
and only for what they use.
Key Concepts:
Features:
Examples:
Advantages:
• Dependence on providers
• Data privacy and security concerns
• Latency in remote access
• Billing complexity for variable usage
• Key Services:
o EC2 (Elastic Compute Cloud):
▪ Provides customizable virtual hardware for deploying systems.
▪ Supports various configurations (GPU, cluster instances).
▪ Instances can be deployed via:
▪ AWS Web Console
▪ Web Service APIs (for multiple languages)
▪ Features:
▪ Save running instance as an image.
▪ Use custom templates for new deployments.
o S3 (Simple Storage Service):
▪ On-demand persistent storage.
▪ Data stored in buckets (containers of binary objects).
▪ Supports large objects (files to disk images).
▪ Enriched with metadata.
• Additional Services:
o Networking
o Caching
o DNS
o Databases (SQL/NoSQL)
2. Google AppEngine
3. Microsoft Azure
• Structure: Based on roles, which define application logic and deployment units.
o Web Role: For web applications.
o Worker Role: For background processing and workloads.
o Virtual Machine Role: Customizable computing environments with OS-level
control.
• Additional Services:
o Storage (relational and blob)
o Networking
o Caching
o Content Delivery Network (CDN)
6. Manjrasoft Aneka
Type: PaaS
Company: Netflix
Use Case: Global video streaming
Problem: Needed to scale rapidly to serve millions of users worldwide, manage huge storage
needs, and ensure high availability.
Solution:
• Used Amazon EC2 for compute power to transcode and stream content.
• Used Amazon S3 to store thousands of video files with global accessibility.
• Leveraged CloudFront (CDN) and Elastic Load Balancer for global performance and
reliability.
Result: Achieved high availability, rapid global expansion, and scalable infrastructure.
Result: Handled traffic spikes (like during pandemic lockdowns) and served content to global
users efficiently without infrastructure worries.
Company: BMW
Use Case: Connected Car Platform
Problem: Needed a scalable, secure platform to connect cars with intelligent cloud services.
Solution:
Result: Created a real-time, connected experience for users with predictive maintenance,
navigation, and driving insights.
Company: Facebook
Use Case: User data processing and analytics
Problem: Required to analyze massive data sets (user clicks, likes, posts) every day.
Solution:
Result: Improved coordination during emergencies and boosted donor engagement through
targeted campaigns.
Result: Reduced rendering time from 3 days to 3 hours, enabling faster design iterations and
cost savings.
Parallel and distributed computing
Unit 2
It helps to:
Hardware: At the very bottom layer, computer and network hardware constitute the physical
infrastructure; these components are directly managed by the operating system that provides the
basic services for: inter-process communication, process scheduling and management, and
resource management in terms of file system and local devices.
Operating system: The use of well-known standards at the operating system, and even more at
the hardware and network levels, allows easy harnessing of heterogeneous components and
their organization into a coherent and uniform system. For example, network connectivity
between different devices is controlled by standards, which allow them to interact seamlessly. At
the operating system level, inter-process communication services are implemented on top of
standardized communication protocols such as TCP/IP and UDP.
Middleware: The middleware layer leverages such services to build a uniform environment for
the development and deployment of distributed applications. This layer supports the
programming paradigms for distributed systems. By relying on the services offered by the
operating system, the middleware develops its own protocols, data formats, and programming
language or frameworks for the development of distributed applications.
Applications: The top of the distributed system stack is represented by the applications and
services designed and developed to use the middleware. These can serve several purposes and
often expose their features in the form of graphical user interfaces accessible locally or through
the Internet via a Web browser. For example, in the case of Cloud computing system, the use of
Web technologies is strongly preferred not only to interface distributed applications with the end
user but also to provide platform services aimed at building distributed systems.
Client-server architecture
As the name suggests, client-server architecture consists of a client and a server. The server is
where all the work processes are, while the client is where the user interacts with the service and
other resources (remote server). The client can then request from the server, and the server will
respond accordingly. Typically, only one server handles the remote side; however, using multiple
servers ensures total safety.
The system is much more stable and secure, even though it isn’t as fast as a server. The
disadvantages of a distributed system are its single point of failure and not being as scalable as a
server.
In general, multiple clients are interested in such services and the server must be appropriately
designed to server requests coming from different clients efficiently. This consideration has
implications on both client design and server design. For the client design, we identify two major
models:
Thin-client Model. In this model, the load of data processing and transformation is put on the
server side, and the client has a light implementation that is mostly concerned with retrieving and
returning the data it is being asked for, with no considerable further processing.
Fat-client Model. In this model, the client component is also responsible for processing and
transforming the data before returning it back to the user, while the server features a relatively
light implementation mostly concerned with the management of access to the data.
If a new node wishes to provide services, it can do so in two ways. One way is to register with a
centralized lookup server, which will then direct the node to the service provider. The other way
is for the node to broadcast its service request to every other node in the network, and whichever
node responds will provide the requested service.
Virtualization
Unit 3
Virtualization is a large umbrella of technologies and concepts that are meant to provide an
abstract environment—whether virtual hardware or an operating system—to run applications.
there is the ability of a computer program—or more in general a combination of software and
hardware—to emulate an executing environment separate from the one that hosts such program.
For example, running Windows OS on top of virtual machine, which itself is running on Linux OS.
Virtualization is a broad concept and it refers to the creation of a virtual version of something,
whether this is hardware, software environment, storage, or network. In a virtualized
environment, there are three major components: guest, host, and virtualization layer.
The guest represents the system component that interacts with the virtualization layer rather
than with the host as it would normally happen.
The host represents the original environment where the guest is supposed to be managed.
The virtualization layer is responsible for recreating the same or a different environment where
the guest will operate.
Characteristics:
Increased Security: The ability to control the execution of a guest in a completely transparent
manner opens new possibilities for delivering a secure, controlled execution environment. The
virtual machine represents an emulated environment in which the guest is executed.
Managed Execution: Virtualization of the execution environment does not only allow increased
security but a wider range of features can be implemented. In particular, sharing, aggregation,
emulation, and isolation are the most relevant.
Portability: In the case of a hardware virtualization solution, the guest is packaged into a virtual
image that, in most of the cases, can be safely moved and executed on top of different virtual
machines. In the case of programming level virtualization, as implemented by the JVM or the .NET
runtime, the binary code representing application components (jars or assemblies). portability
allows having your own system always with you and ready to use, given that the re quired virtual
machine manager is available. This requirement is in general less stringent than having all the
applications and services you need available anywhere you go.
• Virtualization covers a wide range of emulation techniques that are applied to different
areas of computing.
• A classification of these techniques helps us better understand their characteristics and
use .
• The first classification discriminates against the service or entity that is being emulated.
• Virtualization is mainly used to emulate execution environments, storage, and networks.
• Among these categories, execution virtualization constitutes the oldest, most popular,
and most developed area. Therefore, it deserves major investigation and a further
categorization.
• We can divide these execution virtualization techniques into two major categories by
considering the type of host they require.
• Process-level techniques are implemented on top of an existing operating system, which
has full control of the hardware.
• System-level techniques are implemented directly on hardware and do not require - or
require a minimum of support from - an existing operating system
• Within these two categories we can list various techniques that offer the guest a different
type of virtual computation environment:
• bare hardware
• operating system resources
• low-level programming language
• application libraries.
• Execution virtualization :
• Execution virtualization includes all techniques that aim to emulate an execution
environment that is separate from the one hosting the virtualization layer.
• All these techniques concentrate their interest on providing support for the
execution of programs, whether these are the operating system, a binary
specification of a program compiled against an abstract machine model, or an
application. Therefore, execution virtualization can be implemented directly on top
of the hardware by the operating system, an application, or libraries dynamically or
statically linked to an application image
• Hardware-level virtualization:
• Hardware-level virtualization is a virtualization technique that provides an abstract
execution environment in terms of computer hardware on top of which a guest
operating system can be run .
• Hardware-level virtualization is also called system virtualization, since it provides
ISA to virtual machines, which is the representation of the hardware interface of a
system.
• Hardware-level virtualization is also called system virtualization .
• Hypervisors :
• A fundamental element of hardware virtualization is the hypervisor, or virtual
machine manager (VMM). It recreates a hardware environment in which
guest operating systems are installed. There are two major types of
hypervisors: Type I and Type II .
• Type I : hypervisors run directly on top of the hardware. Therefore, they take
the place of the operating systems and interact directly with underlying
hardware . This type of hypervisor is also called a native virtual machine
since it runs natively on hardware .
Type I
• Full virtualization : Full virtualization refers to the ability to run a program, most likely
an operating system, directly on top of a virtual machine and without any modification,
as though it were run on the raw hardware. To make this possible, virtual machine
manager are required to provide a complete emulation of the entire underlying
hardware .
• Application-level virtualization :
• The application-level virtualization is used when there is a desire to virtualize only one
application .
• Application virtualization software allows users to access and use an application from
a separate computer than the one on which the application is installed .
• Other types of virtualizations
• Other than execution virtualization, other types of virtualizations provide an abstract
environment to interact with. These mainly cover storage, networking, and client/server
interaction .
Pros of Virtualization
Cons of Virtualization
• High Initial Investment: While virtualization reduces costs in the long run, the initial
setup costs for storage and servers can be higher than a traditional setup.
• Complexity: Managing virtualized environments can be complex, especially as the
number of VMs increases.
• Security Risks: Virtualization introduces additional layers, which may pose security
risks if not properly configured and monitored.
• Learning New Infrastructure: As Organization shifted from Servers to Cloud. They
required skilled staff who can work with cloud easily. Either they hire new IT staff
with relevant skill or provide training on that skill which increase the cost of
company.
• Data can be at Risk: Working on virtual instances on shared resources means that
our data is hosted on third party resource which put's our data in vulnerable
condition. Any hacker can attack on our data or try to perform unauthorized access.
Without Security solution our data is in threaten situation.
What is Containerization?
Containerization is the process of packing an application together with all its dependencies into
a container in order to allow the application to run consistently from one computing environment
to another, in simple terms containerization involves using the host OS kernel to run many
isolated instances of applications on the same machine, making it very lightweight and efficient
in deploying applications.
Unit 4
1. Public Cloud
• Public clouds are managed by third parties which provide cloud services over the
internet to the public, these services are available as pay-as-you-go billing models.
• They offer solutions for minimizing IT infrastructure costs and become a good option
for handling peak loads on the local infrastructure. Public clouds are the go-to option
for small enterprises, which can start their businesses without large upfront
investments by completely relying on public infrastructure for their IT needs.
• The fundamental characteristics of public clouds are multitenancy. A public cloud is
meant to serve multiple users, not a single customer. A user requires a virtual
computing environment that is separated, and most likely isolated, from other users.
Examples: Amazon EC2, IBM, Azure, GCP
Unit 5
Real-World Examples:
Challenges Ahead
Historical Perspective
Key Milestones:
1. Storage Systems
2. Programming Platforms
Storage Systems
Why traditional DBMS fail:
Key Technologies:
Programming Platforms
Limitations of traditional parallel programming:
Enter: MapReduce
Key Features:
• Two phases:
1. Map: Extracts key-value pairs.
2. Reduce: Aggregates values with the same key.
• Developers focus on data transformation logic, not infrastructure.
Benefits:
• Handles:
o Data locality
o Load balancing
o Fault tolerance
• Scales to thousands of nodes.
Variants:
• Dryad / DryadLINQ
• Twister (iterative MapReduce)
• Sawzall
• MapReduce-Merge
Popular Frameworks:
Unit 6
This chapter evaluates why cloud computing matters, by analyzing its unique attributes, costs,
behavioral and economic implications, and obstacles.
These users benefit from scalability, large datasets, and ubiquitous access.
4. Laws of Cloudonomics (Joe Weinman)
• CostCLOUD Formula:
Includes:
• SLAs define:
o Uptime (e.g., 99.95% for Azure)
o Latency and performance
o Response times
o Warranties and penalties
• Enforceability varies:
o May need legal review (some are not legally binding).
o Large customers may negotiate better SLAs.
• Example: Microsoft Azure publishes SLAs for each component separately
• Traditional software licensing (e.g., per-machine) doesn't fit cloud's dynamic provisioning.
• Cloud models demand:
o Granular, usage-based licensing.
o Better license tracking across multiple tenants.
o Flexibility in provisioning and deprovisioning instances
Introduction to Cloud Security
Unit 7
• Cloud computing brings valuable features but also serious security challenges.
• Key issue: Shared systems and outsourced operations increase complexity.
• Security tools and mechanisms must adapt to multi-tenant, virtualized environments.
• Auditing
• Data integrity
• e-Discovery for legal compliance
• Privacy
• Recovery
• Regulatory compliance
3. Security Boundaries
• IaaS: Least built-in security; most responsibility lies with the customer.
• PaaS: Middleware and runtime security by vendor; app and UI security by customer.
• SaaS: Vendor responsible for entire stack; highest level of built-in security.
5. Security Mapping
6. Securing Data
Encryption:
• Important for regulatory compliance (e.g., ISO/IEC 27001, SAS70 Type II).
• Clients must ensure:
o Contracts allow auditing
o Third-party services also comply
o Evidence is collected for legal purposes
o SLA clauses are clear on security obligations
Standards Used: