Cloud Computing Notes
Cloud Computing Notes
INFRASTRUCTURE SERVICES:
STORAGE APPLICATIONS:
Cloud service providers provide various applications in the field of art,
business, data storage and backup services, education, entertainment,
management, social networking, etc.
The most widely used cloud computing applications are given below -
1. Art Applications
Cloud computing offers various art applications for quickly and easily
design attractive cards, booklets, and images
2. Business Applications
Business applications are based on cloud service providers. Today, every
organization requires the cloud business application to grow their business. It
also ensures that business applications are 24*7 available to users.
5. Entertainment Applications
Entertainment industries use a multi-cloud strategy to interact with the target
audience. Cloud computing offers various entertainment applications such as
online games and video conferencing.
DATABASE SERVICES:
Like SaaS, PaaS, and IaaS of cloud computing, we can consider DBaaS (also
known as Managed Database Service) as a cloud computing service. It allows
users associated with database activities to access and use a cloud database
system without purchasing it.
1. DBaaS and cloud databases come under Software as a Service (SaaS)
whose demand is growing so fast
2. Database as a Service (DBaaS) is self-service/on-demand database
consumption coupled with automation of operations.
3. As we know cloud computing services are like pay-per-use so DBaaS is
also based on the same payment structure like how much you will use
just pay for your usage.
4. This DBaaS provides the same function as standard traditional and
relational database models.
5. Using DBaaS, organizations can avoid database configuration,
management, degradation, and security.
6. DBaaS consists of an info manager element, that controls all underlying
info instances via API.
7. This API is accessible to the user through a management console,
typically an online application, that the user might use to manage and
assemble the info and even provision or deprovision info instances.
Characteristics of SaaS:
o Web-based Delivery: SaaS apps can be accessed from anywhere with an
internet connection because they are supplied over the internet, often
through a web browser. Users no longer need to install and maintain
software programs on their local machines as a result.
o Multiple Users or "tenants" can access SaaS applications from a single
instance of the program thanks to the concept of multi-tenancy. As a
result, the provider can serve several clients with the same application
without administering unique program instances for every client.
o Automatic Updates: SaaS providers are in charge of keeping the
software up to date and making sure that everyone has access to the
newest features and security patches. Users are no longer required to
manually install updates or fixes as a result.
o Scalable: SaaS systems are scalable, which can readily grow or shrink in
response to user demand. This frees up enterprises from worrying about
infrastructure or licensing fees and lets them add or remove users as
needed.
Paas:
Platform as a Service | PaaS
Platform as a Service (PaaS) provides a runtime environment. It allows
programmers to easily create, test, run, and deploy web applications. You can
purchase these applications from a cloud service provider on a pay-as-per-use
basis and access them using an Internet connection. In PaaS, back-end
scalability is managed by the cloud service provider, so end-users do not need
to worry about managing the infrastructure.
Iaas:
Iaas is also known as Hardware as a Service (HaaS). It is one
of the layers of the cloud computing platform. It allows
customers to outsource their IT infrastructures, such as
servers, networking, processing, storage, virtual machines,
and other resources. Customers access these resources on
the Internet using a pay-as-per-use model.
In traditional hosting services, IT infrastructure was rented
out for a specific period of time, with pre-determined
hardware configuration. The client paid for the configuration
and time, regardless of the actual use. With the help of the
IaaS cloud computing platform layer, clients can dynamically
scale the configuration to meet changing requirements and
are billed only for the services actually used.
The IaaS cloud computing platform layer eliminates the need
for every organization to maintain its IT infrastructure.
IaaS is offered in three models: public, private, and hybrid
cloud. The private cloud implies that the infrastructure
resides at the customer's premise. In the case of the public
cloud, it is located at the cloud computing platform vendor's
data center, and the hybrid cloud is a combination of the two
in which the customer selects the best of both public cloud
and private cloud.
Computing: To provision virtual machines (VMs) for end
users, IaaS providers offer virtual central processing units
(CPUs) and virtual main memory. As a result, users may run
their workloads and apps on the provider's infrastructure
without having to worry about managing the underlying
hardware.
Storage: Back-end storage services are provided by IaaS
providers, enabling users to store and access their files and
data. This offers scalable and trustworthy storage solutions
for a variety of use cases and can include block storage,
object storage, or file storage alternatives.
Network: IaaS providers provide networking tools, including
routers, switches, and bridges for the VMs through Network
as a Service (NaaS). This enables connectivity and
communication between VMs and other resources while also
allowing customers to create and maintain their network
architecture within the IaaS environment.
Advertisement
Load balancers: Infrastructure-layer load balancing services
are provided by IaaS providers. Incoming network traffic is
split up among many virtual machines (VMs) or resources by
load balancers, resulting in effective resource management
and excellent application and service availability.
Security: Security features and services are frequently offered
by IaaS providers as part of their offering. To safeguard data
and resources housed on the IaaS platform, this can include
network security, firewall configurations, access controls,
encryption, and other security measures.
Backup and disaster recovery services are provided by some
IaaS providers, enabling customers to create backup copies of
their data and software and put recovery plans in place in the
event of data loss or system problems. This promotes
business continuity and data security.
Monitoring and Management: IaaS suppliers provide tools
and services for monitoring and controlling the resources and
infrastructure. This can involve managing VMs, storage, and
network configurations using management panels or APIs, as
well as measuring resource utilization, automating scaling,
and monitoring performance.
Idaas:
ENABLING TECHNOLOGIES:
The main technologies that enable cloud computing are virtualization, automation, and
service-oriented architecture (SOA):
• Virtualization: Uses software called a hypervisor to create virtual instances of
servers, storage, and other resources. This allows multiple cloud environments to
run on a single physical server.
• Automation: Provides users with the ability to provision resources, connect
services, and deploy workloads without direct intervention from the cloud
provider's IT staff.
• Service-oriented architecture (SOA): A major cloud computing technology.
Other technologies that enable cloud computing include grid computing and utility
computing.
Cloud computing services can be deployed in three different ways: public cloud, private
cloud, and hybrid cloud:
• Public cloud
Services are delivered over the public internet and are owned and operated by third-
party cloud service providers.
• Private cloud
Services are delivered over a private network and are owned and operated by
enterprises.
• Hybrid cloud
Services are delivered over a combination of public and private networks and use a mix
of on-premises and third-party resources.
TYPES OF VIRTUALIZATIONS:
Types of Virtualization:
1. Hardware Virtualization.
2. Operating system Virtualization.
3. Server Virtualization.
4. Storage Virtualization.
1) Hardware Virtualization:
When the virtual machine software or virtual machine manager (VMM) is directly
installed on the hardware system is known as hardware virtualization.
The main job of hypervisor is to control and monitoring the processor, memory and
other hardware resources.
After virtualization of hardware system we can install different operating system on it
and run different applications on those OS.
Usage:
Hardware virtualization is mainly done for the server platforms, because controlling
virtual machines is much easier than controlling a physical server.
2) Operating System Virtualization:
When the virtual machine software or virtual machine manager (VMM) is installed on
the Host operating system instead of directly on the hardware system is known as
operating system virtualization.
Usage:
Operating System Virtualization is mainly used for testing the applications on different
platforms of OS.
3) Server Virtualization:
When the virtual machine software or virtual machine manager (VMM) is directly
installed on the Server system is known as server virtualization.
Usage:
Server virtualization is done because a single physical server can be divided into
multiple servers on the demand basis and for balancing the load.
4) Storage Virtualization:
Storage virtualization is the process of grouping the physical storage from multiple
network storage devices so that it looks like a single storage device.
Storage virtualization is also implemented by using software applications.
Usage:
Storage virtualization is mainly done for back-up and recovery purposes.
DESKTOP VIRTUALIZATION:
MEMORY VIRTUALIZATION:
Hyper-V
A Microsoft product that allows users to create and manage virtual machines on
Windows-based systems. It's available as a stand-alone product or as a feature of
Windows Server.
•
VirtualBox
An open source virtualization platform that runs on Windows, Linux, Macintosh, and
Solaris hosts. It supports a large number of guest operating systems.
VMware ESXi
A virtualization platform used for server virtualization, storage, networking, and
security. It's used by businesses of all sizes.
VMware Workstation
A virtualization software that allows users to create, manage, and run multiple virtual
machines on their desktop or laptop. It's designed primarily for professional use.
•
XenServer
An open source virtualization platform that offers near-native performance and best-in-
class VM density.
Denodo
A data virtualization tool that offers data integration, data management and data
delivery.
IBM
A data virtualization platform that can help simplify the data modeling process.
UNIT-3
SAAS AND PAAS
SAAS SOLUTIONS:
A Service-Oriented Architecture or SOA is a design pattern which is designed
to build distributed systems that deliver services to other applications
through the protocol. It is only a concept and not limited to any
programming language or platform.
What is Service?
A service is a well-defined, self-contained function that represents a unit of
functionality. A service can exchange information from another service. It is
not dependent on the state of another service. It uses a loosely coupled,
message-based communication model to communicate with applications
and other services.
Service Connections
The figure given below illustrates the service-oriented architecture. Service
consumer sends a service request to the service provider, and the service
provider sends the service response to the service consumer. The service
connection is understandable to both the service consumer and service
provider.
Service-Oriented Terminologies:
Let's see some important service-oriented terminologies:
o Services - The services are the logical entities defined by one or more
published interfaces.
o Service provider - It is a software entity that implements a service
specification.
o Service consumer - It can be called as a requestor or client that calls a
service provider. A service consumer can be another service or an end-
user application.
o Service locator - It is a service provider that acts as a registry. It is
responsible for examining service provider interfaces and service
locations.
o Service broker - It is a service provider that pass service requests to
one or more additional service providers.
Characteristics of SOA:
The services have the following characteristics:
o They are loosely coupled.
o They support interoperability.
o They are location-transparent
o They are self-contained.
Components of service-oriented architecture:
The service-oriented architecture stack can be categorized into two parts -
functional aspects and quality of service aspects.
Functional aspects
The functional aspect contains:
o Transport - It transports the service requests from the service
consumer to the service provider and service responses from the
service provider to the service consumer.
o Service Communication Protocol - It allows the service provider and
the service consumer to communicate with each other.
o Service Description - It describes the service and data required to
invoke it.
o Service - It is an actual service.
o Business Process - It represents the group of services called in a
particular sequence associated with the particular rules to meet the
business requirements.
o Service Registry - It contains the description of data which is used by
service providers to publish their services.
Quality of Service aspects
The quality-of-service aspects contains:
o Policy - It represents the set of protocols according to which a service
provider makes and provide the services to consumers.
o Security - It represents the set of protocols required for identification
and authorization.
o Transaction - It provides the surety of consistent result. This means, if
we use the group of services to complete a business function, either
all must complete or none of the complete.
o Management - It defines the set of attributes used to manage the
services.
Advantages of SOA:
SOA has the following advantages:
o Easy to integrate - In a service-oriented architecture, the integration is
a service specification that provides implementation transparency.
o Manage Complexity - Due to service specification, the complexities get
isolated, and integration becomes more manageable.
o Platform Independence - The services are platform-independent as
they can communicate with other applications through a common
language.
o Loose coupling - It facilitates to implement services without impacting
other applications or services.
o Parallel Development - As SOA follows layer-based architecture, it
provides parallel development.
o Available - The SOA services are easily available to any requester.
o Reliable - As services are small in size, it is easier to test and debug
them.
Understanding Iaas:
IMPROVING PERFORMANCE:
Load balancing is an essential technique used in cloud computing to
optimize resource utilization and ensure that no single resource is
overburdened with traffic. It is a process of distributing workloads across
multiple computing resources, such as servers, virtual machines, or
containers, to achieve better performance, availability, and scalability.
1. In cloud computing, load balancing can be implemented at various
levels, including the network layer, application layer, and database
layer. The most common load balancing techniques used in cloud
computing are:
2. Network Load Balancing: This technique is used to balance the
network traffic across multiple servers or instances. It is implemented
at the network layer and ensures that the incoming traffic is
distributed evenly across the available servers.
3. Application Load Balancing: This technique is used to balance the
workload across multiple instances of an application. It is implemented
at the application layer and ensures that each instance receives an
equal share of the incoming requests.
4. Database Load Balancing: This technique is used to balance the
workload across multiple database servers. It is implemented at the
database layer and ensures that the incoming queries are distributed
evenly across the available database servers.
Load balancing helps to improve the overall performance and reliability of
cloud-based applications by ensuring that resources are used efficiently and
that there is no single point of failure. It also helps to scale applications on
demand and provides high availability and fault tolerance to handle spikes in
traffic or server failures.
Cloud Computing
provides more storage
Traditional Computing
space and servers as well
provides less storage as
as more computing power
compared to cloud
Storage and so that applications and
computing.
Computing software run must faster
Power and effectively.
Traditional Computing
requires own team to
Cloud service is served by
maintain and monitor
provider’s support team.
Maintenance system that will need a lot of
and Support time and efforts.
Software is offered as an
Software in purchased
on-demand service (SaaS)
individually for every user
Software that can be accessed
and requires to be updated
Delivery through subscription
periodically.
Model service.
Disaster recovery and business continuity in the cloud" refers to a strategy where
organizations leverage cloud computing services to back up critical data and
applications, allowing them to quickly restore operations and maintain business
functions even in the event of a major disruption like a natural disaster, system failure,
or cyber attack, essentially minimizing downtime and data loss by utilizing the cloud's
scalability and redundancy features.
Key points about cloud-based disaster recovery and business continuity:
• Data replication:
Cloud providers automatically replicate data across geographically dispersed data
centers, ensuring access to critical information even if a primary location is affected.
• Rapid restoration:
By storing data in the cloud, businesses can quickly restore applications and systems to
a functional state with minimal downtime.
• Scalability:
Cloud services can be easily scaled up to meet increased demand during a disaster,
allowing businesses to handle surges in activity.
• Cost-effective:
Compared to traditional disaster recovery methods, cloud-based solutions can be more
cost-efficient by eliminating the need for dedicated hardware and physical data
centers.
How cloud technology supports business continuity:
• Automated backups:
Cloud platforms enable automatic data backups, ensuring regular snapshots of critical
information are available for recovery.
• High availability architectures:
Cloud providers often implement high availability features like load balancing and
failover mechanisms to maintain service even during outages.
• Virtualized environments:
Cloud allows for the creation of virtualized environments that can be easily replicated
and migrated to different locations if needed.
Important considerations for cloud disaster recovery:
• Data sovereignty:
Understand where your cloud provider stores data and comply with relevant
regulations regarding data location.
• Recovery time objectives (RTO):
Define how quickly your systems need to be operational after a disaster.
• Testing and drills:
Regularly test your disaster recovery plan to ensure it is effective and identify any
potential issues.
• Cloud provider selection:
Choose a reliable cloud provider with robust disaster recovery capabilities and a strong
track record.
The sort and shuffle occur on the output of Mapper and before the reducer.
When the Mapper task is complete, the results are sorted by key,
partitioned if there are multiple reducers, and then written to disk. Using
the input from each Mapper <k2,v2>, we collect all the values for each
unique key k2. This output from the shuffle phase in the form of <k2,
list(v2)> is sent as input to reducer phase.
Usage of MapReduce
o It can be used in various application like document clustering,
distributed sorting, and web link-graph reversal.
o It can be used for distributed pattern-based searching.
o We can also use MapReduce in machine learning.
o It was used by Google to regenerate Google's index of the World Wide
Web.
o It can be used in multiple computing environments such as multi-
cluster, multi-core, and mobile environment.
INTRODUCTION TO HADOOP:
Hadoop is an open-source framework from Apache and is used to store
process and analyse data which are very huge in volume. Hadoop is written
in Java and is not OLAP (online analytical processing). It is used for
batch/offline processing. It is being used by Facebook, Yahoo, Google,
Twitter, LinkedIn and many more. Moreover, it can be scaled up just by
adding nodes in the cluster.
Modules of Hadoop
1. HDFS: Hadoop Distributed File System. Google published its paper GFS
and on the basis of that HDFS was developed. It states that the files
will be broken into blocks and stored in nodes over the distributed
architecture.
2. Yarn: Yet another Resource Negotiator is used for job scheduling and
manage the cluster.
3. Map Reduce: This is a framework which helps Java programs to do the
parallel computation on data using key value pair. The Map task takes
input data and converts it into a data set which can be computed in
Key value pair. The output of Map task is consumed by reduce task and
then the out of reducer gives the desired result.
4. Hadoop Common: These Java libraries are used to start Hadoop and
are used by other Hadoop modules.
Hadoop Architecture
The Hadoop architecture is a package of the file system, MapReduce engine
and the HDFS (Hadoop Distributed File System). The MapReduce engine can
be MapReduce/MR1 or YARN/MR2.
A Hadoop cluster consists of a single master and multiple slave nodes. The
master node includes Job Tracker, Task Tracker, NameNode, and DataNode
whereas the slave node includes DataNode and TaskTracker.