Cloud Lecture - 2024
Cloud Lecture - 2024
Cloud Computing
Fundamentals of Cloud Computing
Introduction
Public Cloud
• No Hardware Setup - The cloud service providers fully fund the entire
Infrastructure
• Infrastructure Management is not required: Using the public cloud does not
necessitate infrastructure management.
Private Cloud
• Infrastructure is dedicated to a single
organization and may be located on-
premises or off-premises.
• Private cloud environments are
designed to meet specific security,
compliance, or performance
requirements.
• They offer enhanced control,
customization, and privacy but
require significant upfront investment.
Advantages of the Private Cloud Model
Better Control: You are the sole owner of the property. You gain
complete command over service integration, IT operations, policies,
and user behavior.
Skilled people
Hybrid Cloud
Security - Since data is properly segmented, the chances of data theft from
attackers are significantly reduced.
Specific Use Case - This model makes more sense for organizations that have
multiple use cases or need to separate critical and sensitive data
Cloud Deployment Models
Community Cloud
Collaboration and data sharing: It is suitable for both collaboration and data
sharing.
Setup and ease of Easy Requires professional Requires professional Requires professional
IT Team IT Team IT Team
use
Cost- Most affordable Most expensive Cost is distributed Cheaper than private
among members but more expensive
Effectiveness
than public
Cost-Effective: Eliminates capital expense and reduces ongoing cost and IaaS
customers pay on a per-user basis, typically by the hour, week, or month.
Website hosting: Running websites using IaaS can be less expensive than
traditional web hosting.
Security: The IaaS Cloud Provider may provide better security than your
existing software.
Security concerns: Users are responsible for securing their own data and
applications, which can be a significant undertaking.
PaaS cloud computing platform is created for the programmer to develop, test,
run, and manage the applications.
Characteristics of PaaS
Example: Google App engine, AWS Elastic Beanstalk, Windows Azure, Heroku,
Advantages of PaaS:
Simple and convenient for users: It provides much of the infrastructure and
other IT services, which users can access anywhere via a web browser.
SaaS is also known as "on-demand software". It is a software in which the applications are
hosted by a cloud service provider. Users can access these applications with the help of
internet connection and web browser.
Users are not responsible for hardware and software updates. Updates are
applied automatically.
Reduced time: Users can run most SaaS apps directly from their web browser
without needing to download and install any software. This reduces the time spent
in installation and configuration and can reduce the issues that can get in the way
of the software deployment.
Scalability: It allows the users to access the services and features on-demand.
Disadvantages of Saas :
Security concerns: SaaS providers are responsible for maintaining the security of the
data stored on their servers, but there is still a risk of data breaches or other security
incidents.
Limited control over data: SaaS providers may have access to a user’s data, which can
be a concern for organizations that need to maintain strict control over their data for
regulatory or other reasons.
Difference between IaaS, PaaS, and SaaS
It provides a virtual data center to store It provides virtual platforms and tools to It provides web software and apps to
information and create platforms for create, test, and deploy apps. complete business tasks.
app development, testing, and
deployment.
It provides access to resources such as It provides runtime environments and It provides software as a service to the
virtual machines, virtual storage, etc. deployment tools for applications. end-users.
IaaS provides only Infrastructure. PaaS provides Infrastructure+Platform. SaaS provides Infrastructure+Platform
+Software.
Difference between IaaS, PaaS, and SaaS
Benefits of Cloud
• Cost Savings: Pay for what you use, with no upfront infrastructure costs.
• Scalability: Easily scale resources up or down based on demand.
• Flexibility: Access resources and applications from anywhere with an internet
connection.
• Reliability: Cloud providers typically offer high uptime and data redundancy.
• Collaboration: Enable seamless collaboration and data sharing among teams.
Common Cloud Computing Use Cases
• Data Storage and Backup: Store and back up large amounts of data securely.
• Software Development and Testing: Rapidly create and deploy applications in
a scalable environment.
• Web and Mobile Applications: Host web and mobile applications in the cloud
for global accessibility.
• Big Data Analytics: Process and analyze vast amounts of data using cloud
resources.
• Disaster Recovery: Maintain data backups and recovery plans in the cloud for
business continuity.
The Evolution of Computing
34
Evolution of Cloud Computing
Cloud computing is all about renting computing services. This idea first came in the 1950s.
In making cloud computing what it is today, five technologies played a vital role. These are
distributed systems and its peripherals, virtualization, web 2.0, service orientation, and
utility computing.
Distributed Systems:
• The purpose of distributed systems is to share resources and also use them effectively
and efficiently.
• But the main problem with this system was that all the systems were required to be
present at the same geographical location.
• Thus to solve this problem, distributed computing led to three more types of computing
and they were-Mainframe computing, cluster computing, and grid computing.
Mainframe computing:
• Mainframes which first came into existence in 1951 are highly powerful and reliable
computing machines.
• These are responsible for handling large data such as massive input-output operations.
Even today these are used for bulk processing tasks such as online transactions etc.
• These systems have almost no downtime with high fault tolerance. After distributed
computing, these increased the processing capabilities of the system.
• Each machine in the cluster was connected to each other by a network with high
bandwidth.
• These were way cheaper than those mainframe systems. These were equally capable of
high computations. Also, new nodes could easily be added to the cluster if it was
required.
• Thus, the problem of the cost was solved to some extent but the problem related to
geographical restrictions still pertained. To solve this, the concept of grid computing
was introduced.
•
Grid computing:
• In 1990s, the concept of grid computing was introduced. It means that different
systems were placed at entirely different geographical locations and these all were
connected via the internet.
• These systems belonged to different organizations and thus the grid consisted of
heterogeneous nodes. Although it solved some problems but new problems emerged
as the distance between the nodes increased.
• The main problem which was encountered was the low availability of high bandwidth
connectivity and with it other network associated issues.
• It was introduced nearly 40 years back. It refers to the process of creating a virtual
layer over the hardware which allows the user to run multiple instances
simultaneously on the hardware.
• It is a key technology used in cloud computing. It is the base on which major cloud
computing services such as Amazon EC2, VMware vCloud, etc work on. Hardware
virtualization is still one of the most common types of virtualization.
Virtualization
• Types of Virtualization
Hardware virtualization
Server virtualization
Storage virtualization
Data Virtualization
Hypervisor
1. GUEST:
The guest represents the system component that interacts with the
virtualization layer rather than with the host, as would normally happen. Guests
usually consist of one or more virtual disk files, and a VM definition file. Virtual
Machines are centrally managed by a host application that sees and manages
each virtual machine as a different application.
2. HOST:
The host represents the original environment where the guest is supposed to be
managed. Each guest runs on the host using shared resources donated to it by
the host. The operating system, works as the host and manages the physical
resource management, and the device support.
3. VIRTUALIZATION LAYER:
The virtualization layer is responsible for recreating the same or a different
environment where the guest will operate. It is an additional abstraction layer
between a network and storage hardware, computing, and the application
running on it. Usually it helps to run a single operating system per machine
which can be very inflexible compared to the usage of virtualization.
Implementation Levels of Virtualization In Cloud Computing
1) Instruction Set Architecture Level (ISA) ISA virtualization can work through ISA
emulation
5) Application Level.
Instruction Set Architecture Level
• At the ISA level, virtualization is performed by emulating a given ISA by the ISA of
the host machine. For example, MIPS binary code can run on an x86-based host
machine with the help of ISA emulation.
• With this approach, it is possible to run a large amount of legacy binary code
written for various processors on any given new hardware host machine.
Instruction set emulation leads to virtual ISAs created on any hardware machine.
• Obviously, this process is relatively slow. For better performance, dynamic binary
translation is desired. This approach translates basic blocks of dynamic source
instructions to target instructions. The basic blocks can also be extended to
program traces or super blocks to increase translation efficiency. Instruction set
emulation requires binary translation and optimization. A virtual instruction set
architecture (V-ISA) thus requires adding a processor-specific software translation
layer to the compiler.
Hardware Abstraction Level
• On the other hand, the process manages the underlying hardware through
virtualization. The idea is to virtualize a computer’s resources, such as its
processors, memory, and I/O devices.
Operating System Level
• The containers behave like real servers. OS-level virtualization is commonly used
in creating virtual hosting environments to allocate hardware resources among a
large number of mutually distrusting users.
• Any program written in the HLL and compiled for this VM will be able to run
on it. The Microsoft .NET CLR and Java Virtual Machine (JVM) are two good
examples of this class of VM.
Web 2.0:
• It is the interface through which the cloud computing services interact with the
clients.
• It is because of Web 2.0 that we have interactive and dynamic web pages. It also
increases flexibility among web pages.
• Popular examples of web 2.0 include Google Maps, Facebook, Twitter, etc.
Needless to say, social media is possible because of this technology only. It gained
major popularity in 2004.
Service orientation:
• It supports low-cost, flexible, and evolvable applications. Two important concepts were
introduced in this computing model.
• These were Quality of Service (QoS) which also includes the SLA (Service Level
Agreement) and Software as a Service (SaaS).
Service-Oriented Architecture (SOA)
• It is a computing model that defines service provisioning techniques for services such
as compute services along with other major services such as storage, infrastructure, etc
which are provisioned on a pay-per-use basis.
Architecture of Cloud Computing
Cloud Architecture
• Cloud Provider: A person, organization, or entity that is accountable for offering services
to individuals or entities who are interested in them.
• Cloud Broker: An entity responsible for managing the utilization, performance, and
delivery of cloud services. Additionally, they act as mediators between Cloud Providers
and Cloud Consumers, negotiating relationships between the two parties.
• Up-front Planning: Prioritize up-front planning to understand capacity needs and avoid
unexpected production glitches. Continuously test performance during the architecture design
phase.
• Security First: Implement robust security measures to protect against unauthorized access.
Safeguard all layers of the cloud infrastructure through data encryption, patch management, and
strict security policies. Consider adopting zero-trust security models for enhanced protection in
hybrid and multi-cloud environments.
• Disaster Recovery Readiness: Automate recovery processes to minimize costly downtime and
ensure swift recovery from service disruptions. Implement monitoring mechanisms to track
capacity and utilize redundant networks for a highly available architecture.
• Cost Optimization: Leverage automated processes, managed service providers, and utilization
tracking to reduce unnecessary cloud computing expenses. Regularly review and optimize
resource allocation to ensure cost-effectiveness.
Architecture of Cloud Computing
•High reliability
•Scalability
AWS vs Azure vs Google cloud
Pros – Large and active user – Good integration with – Custom machine types and
community third-party tools live migration of VMs
• Cloud computing enables the delivery of computing services over the internet, eliminating the
need for local infrastructure.
• Key characteristics of cloud computing include on-demand self-service, broad network access,
resource pooling, rapid elasticity, and measured service.
• Deployment models include public, private, and hybrid clouds, offering flexibility and data
sharing options.
• Service models such as IaaS, PaaS, and SaaS provide virtualized computing resources,
platform for application development, and software delivery respectively.
• Cloud computing offers benefits like cost savings, scalability, flexibility, reliability, and
enhanced collaboration.
Docker Containers contain binaries, libraries, and Virtual Machines (VMs) run on Hypervisors, which
configuration files along with the application allow multiple Virtual Machines to run on a single
itself. machine along with its own operating system.
• Hadoop is commonly used in big data scenarios such as data warehousing, business
intelligence, and machine learning. It’s also used for data processing, data analysis, and
data mining. It enables the distributed processing of large data sets across clusters of
computers using a simple programming model.
• Apache Software Foundation is the developers of Hadoop, and it’s co-founders are
Doug Cutting and Mike Cafarella.
• It’s co-founder Doug Cutting named it on his son’s toy elephant. In October 2003 the
first paper release was Google File System.
• It is being used by Facebook, Yahoo, Google, Twitter, LinkedIn and many more.
• It is designed to handle big data and is based on the MapReduce programming model,
which allows for the parallel processing of large datasets.
• HDFS (Hadoop Distributed File System): This is the storage component of Hadoop,
which allows for the storage of large amounts of data across multiple machines. It is
designed to work with commodity hardware, which makes it cost-effective.
•Distributed Storage: Hadoop stores large data sets across multiple machines, allowing for
the storage and processing of extremely large amounts of data.
•Scalability: Hadoop can scale from a single server to thousands of machines, making it
easy to add more capacity as needed.
•Data locality: Hadoop provides data locality feature, where the data is stored on the same
node where it will be processed, this feature helps to reduce the network traffic and improve
the performance
•High Availability: Hadoop provides High Availability feature, which helps to make sure
that the data is always available and is not lost.
Hadoop
Hadoop has several key features that make it well-suited for big data processing:
•Flexible Data Processing: Hadoop’s MapReduce programming model allows for the
processing of data in a distributed fashion, making it easy to implement a wide variety of
data processing tasks.
•Data Integrity: Hadoop provides built-in checksum feature, which helps to ensure that the
data stored is consistent and correct.
•Data Replication: Hadoop provides data replication feature, which helps to replicate the
data across the cluster for fault tolerance.
•Data Compression: Hadoop provides built-in data compression feature, which helps to
reduce the storage space and improve the performance.
•YARN: A resource management platform that allows multiple data processing engines like
real-time streaming, batch processing, and interactive SQL, to run and process data stored
in HDFS.
Hadoop Distributed File System
It has distributed file system known as HDFS and this HDFS splits files into blocks and
sends them across various nodes in form of large clusters. Also in case of a node failure,
the system operates and data transfer takes place between the nodes which are facilitated
by HDFS.
Some common frameworks of Hadoop
1.Hive- It uses HiveQl for data structuring and for writing complicated MapReduce in
HDFS.
5.Pig- It has Pig Latin, a SQL-Like language and performs data transformation of
unstructured data.
6.Tez- It reduces the complexities of Hive and Pig and helps in the running of their codes
faster.
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.
Load Balancing
Cloud load balancing plays a crucial role in cloud computing and offers several
benefits. Common benefits of cloud load balancing include the following:
Health checks. Cloud domain name system (DNS) load balancers automatically
do routine maintenance to ensure that upstream servers are operating properly
and automatically steer traffic toward healthy origin servers.
Enhanced security. Cloud load balancing can lessen the effects of security
attacks by distributing incoming traffic between multiple servers and avoiding
overloading any one server. Furthermore, load balancers can be set up to handle
SSL termination, which decrypts encrypted traffic before passing it on to the
web servers. This can enhance efficiency by preventing the server from
expending extra CPU cycles required for traffic decryption. If the load balancer
happens to be in the same data center as the web servers, then this can reduce
security risks as well.
Disadvantages of load balancing in cloud computing
While cloud-based load balancing provides numerous benefits, it does come with
certain drawbacks. Common disadvantages of cloud load balancing include the
following:
Lack of visibility. Some load balancing options might provide limited cloud
visibility into the underlying infrastructure of the cloud computing
environment, which can make it difficult to troubleshoot issues and optimize
performance.
Cloud load balancing techniques and algorithms
Static algorithms
Round robin. The round robin algorithm distributes traffic equally among all servers in
a group, either randomly or in a predetermined order.
Weighted round robin. This algorithm distributes weight to servers based on their
capabilities. Servers with higher weights handle a greater share of client requests.
Cloud load balancing techniques and algorithms
Least connection. To equally balance the workload, this algorithm routes client
requests to the server with the least active connections.
IP hash. The IP hash algorithm determines the server to send the request to
based on the client's IP address. It ensures that the requests from the same clients
are consistently directed to the same server.
Dynamic algorithms
Dynamic load balancing distributes traffic based on the health of each server.
These algorithms are made to adjust to shifting workloads and guarantee
effective use of available resources.
Least connection. This algorithm sends client requests to the server that has the
fewest active connections at the time of the request as it intends to distribute the
workload evenly among the servers.
Cloud load balancing techniques and algorithms
Earlier, in cloud computing all Service Level Agreements were negotiated between
a client and the service consumer.
Nowadays, with the initiation of large utility-like cloud computing providers, most
Service Level Agreements are standardized until a client becomes a large
consumer of cloud services.
Service level agreements are also defined at different levels which are mentioned
below:
•Customer-based SLA
•Service-based SLA
•Multilevel SLA
Service level agreements in Cloud computing
Few Service Level Agreements are enforceable as contracts, but mostly are agreements
or contracts which are more along the lines of an Operating Level Agreement (OLA) and
may not have the restriction of law.
It is fine to have an attorney review the documents before making a major agreement to
the cloud service provider.
Service Level Agreements usually specify some parameters which are mentioned
below:
•Warranties
Steps in SLA Lifecycle
Steps in SLA Lifecycle
Discover service provider: This step involves identifying a service provider that
can meet the needs of the organization and has the capability to provide the
required service. This can be done through research, requesting proposals, or
reaching out to vendors.
Define SLA: In this step, the service level requirements are defined and agreed
upon between the service provider and the organization. This includes defining
the service level objectives, metrics, and targets that will be used to measure the
performance of the service provider.
Establish Agreement: After the service level requirements have been defined, an
agreement is established between the organization and the service provider
outlining the terms and conditions of the service. This agreement should include
the SLA, any penalties for non-compliance, and the process for monitoring and
reporting on the service level objectives.
Steps in SLA Lifecycle
Monitor SLA violation: This step involves regularly monitoring the service level
objectives to ensure that the service provider is meeting their commitments. If
any violations are identified, they should be reported and addressed in a timely
manner.
Terminate SLA: If the service provider is unable to meet the service level
objectives, or if the organization is not satisfied with the service provided, the
SLA can be terminated. This can be done through mutual agreement or through
the enforcement of penalties for non-compliance.
Better alignment with business goals: SLAs make sure that the service being given is
in line with the goals of the client by laying down the performance goals and service
level requirements that the service provider must satisfy.
Reduced downtime: SLAs can help to limit the effects of service disruptions by
creating explicit protocols for issue management and resolution.
Better cost management: By specifying the level of service that the customer can
anticipate and providing a way to track and evaluate performance, SLAs can help to
limit costs. Making sure the consumer is getting the best value for their money can be
made easier by doing this.
Disadvantages of SLA
Complexity: SLAs can be complex to create and maintain, and may require
significant resources to implement and enforce.
Rigidity: SLAs can be rigid and may not be flexible enough to accommodate
changing business needs or service requirements.
Limited service options: SLAs can limit the service options available to the
customer, as the service provider may only be able to offer the specific services
outlined in the agreement.
Limited liability: SLAs are not legal binding contracts and often limited the liability
of the service provider in case of service failure.