0% found this document useful (0 votes)
16 views93 pages

Cloud Lecture - 2024

Doc

Uploaded by

aabcdwxyzzz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views93 pages

Cloud Lecture - 2024

Doc

Uploaded by

aabcdwxyzzz
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 93

Introduction to

Cloud Computing
Fundamentals of Cloud Computing
Introduction

What is cloud computing?


Cloud computing refers to the delivery of computing services
over the internet, including storage, processing power, and
software applications.

It allows users to access resources and services on-


demand, without the need for physical infrastructure
or local servers.
Characteristics of Cloud Computing

Key Characteristics of Cloud Computing


• On-Demand Self-Service: Users can provision resources and services
as needed, without requiring human interaction with service
providers.
• Broad Network Access: Services are accessible over the internet via
standard protocols and devices.
• Resource Pooling: Computing resources are pooled together to serve
multiple users, allowing for efficient utilization and scalability.
• Rapid Elasticity: Resources can be scaled up or down quickly to meet
changing demands.
• Measured Service: Cloud service usage is measured, monitored, and
billed based on actual consumption.
Cloud Deployment Models
Cloud Deployment Models

Public Cloud

• Services are provided over a public


network and available to anyone who
wants to use them.
• It is a cost-effective option for
businesses and individuals looking for
scalability and flexibility.
• Public cloud providers, such as AWS,
Azure, and GCP, offer a wide range
of services accessible to the general
public.
Public Cloud
Advantage of Public Cloud

• Minimal Investment - As a pay-per-use service, there is no large upfront cost


and is ideal for businesses who need quick access to resources

• No Hardware Setup - The cloud service providers fully fund the entire
Infrastructure

• Location independency and flexibility

• No Infrastructure Management - This does not require an in-house team to


utilize the public cloud.

• Infrastructure Management is not required: Using the public cloud does not
necessitate infrastructure management.

• No maintenance: The maintenance work is done by the service provider (not


users).

• Dynamic Scalability: To fulfill your company’s needs, on-demand resources are


accessible.
Limitations of Public Cloud

• Data Security and Privacy Concerns - Since it is accessible to all, it


does not fully protect against cyber-attacks and could lead to
vulnerabilities.

• Reliability Issues - Since the same server network is open to a


wide range of users, it can lead to malfunction and outages

• Low customization:- It is accessed by many public so it can’t be


customized according to personal requirements
Cloud Deployment Models

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.

Data Security and Privacy: It’s suitable for storing corporate


information to which only authorized staff have access. By
segmenting resources within the same infrastructure, improved
access and security can be achieved.

Improve performance: This approach is designed to work with


legacy systems that are unable to access the public cloud.

Customization: Unlike a public cloud deployment, a private cloud


allows a company to tailor its solution to meet its specific needs.
Disadvantages of the Private Cloud Model

Costly: Private clouds are more costly as they provide personalized


facilities.

Restricted area of operation.

Skilled people

Less scalable: Private clouds are scaled within a certain range as


there is less number of clients.
Cloud Deployment Models

Hybrid Cloud

• Combines public and private cloud


environments, allowing for flexibility
and data sharing between the two.
• Organizations can leverage the
benefits of both public and private
clouds, ensuring optimal resource
allocation.
• Hybrid cloud deployments enable
workload portability and seamless
integration between different
environments.
Hybrid Cloud

Benefits of Hybrid Cloud

Cost-Effectiveness - The overall cost of a hybrid solution decreases since it


majorly uses the public cloud to store data.

Security - Since data is properly segmented, the chances of data theft from
attackers are significantly reduced.

Flexibility - With higher levels of flexibility, businesses can create custom


solutions that fit their exact requirements

Limitations of Hybrid Cloud

Complexity - It is complex setting up a hybrid cloud since it needs to integrate


two or more cloud architectures

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

• Community cloud is a deployment model


where infrastructure and services are
shared among a specific community or
group of organizations.
• It caters to the needs of a particular
community, such as government
agencies, educational institutions, or
research organizations.
• Community cloud provides a cost-
effective solution while addressing
specific requirements and compliance
standards of the community.
Community Cloud Model

Advantages of the Community Cloud Model

Cost Effective: It is cost-effective because the cloud is shared by multiple


organizations or communities.

Security: Community cloud provides better security.

Shared resources: It allows you to share resources, infrastructure, etc. with


multiple organizations.

Collaboration and data sharing: It is suitable for both collaboration and data
sharing.

Disadvantages of the Community Cloud Model

Limited Scalability: Community cloud is relatively less scalable as many


organizations share the same resources according to their collaborative
interests.
Comparative Analysis of Cloud Deployment Models

Factors Public Private Community Hybrid

Setup and ease of Easy Requires professional Requires professional Requires professional
IT Team IT Team IT Team
use

Data Security Low High Very High High


and Privacy

Scalability and High High Fixed requirements High


flexibility

Cost- Most affordable Most expensive Cost is distributed Cheaper than private
among members but more expensive
Effectiveness
than public

Reliability Low High Higher High


Service Models

Infrastructure as a Service (IaaS)

IaaS provides virtualized computing


resources over the internet. Users have
control over the operating systems, storage,
and networking components.

They can provision and manage virtual


machines (VMs), storage, and networks
according to their requirements. Examples of
IaaS providers include AWS EC2, Azure
Virtual Machines, and Google Compute
Engine.
There are the following characteristics of IaaS -

Resources are available as a service

Services are highly scalable

Dynamic and flexible

GUI and API-based access

Automated administrative tasks

Example: DigitalOcean, Amazon Web Services (AWS), Microsoft Azure, Google


Compute Engine (GCE)
Advantages of IaaS:

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.

Maintenance: There is no need to manage the underlying data center or the


introduction of new releases of the development or underlying software. This
is all handled by the IaaS Cloud Provider.
Disadvantages of laaS :

Limited control over infrastructure: IaaS providers typically manage the


underlying infrastructure and take care of maintenance and updates, but
this can also mean that users have less control over the environment and
may not be able to make certain customizations.

Security concerns: Users are responsible for securing their own data and
applications, which can be a significant undertaking.

Limited access: Cloud computing may not be accessible in certain regions


and countries due to legal policies.
Service Models

Platform as a Service (PaaS)

PaaS offers a platform for developing,


testing, and deploying applications.
Users can focus on application development
without worrying about infrastructure
management.
PaaS providers manage the underlying
infrastructure, including servers, storage, and
networking.
Developers can leverage pre-configured
environments, development frameworks, and
deployment tools.
Examples of PaaS providers include Heroku,
Google App Engine, and AWS Elastic
Beanstalk.
Platform as a Service (PaaS)

PaaS cloud computing platform is created for the programmer to develop, test,
run, and manage the applications.

Characteristics of PaaS

Accessible to various users via the same development application.

Integrates with web services and databases.

Builds on virtualization technology, so resources can easily be scaled up or down


as per the organization's need.

Support multiple languages and frameworks.

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.

Cost-Effective: It charges for the services provided on a per-use basis thus


eliminating the expenses one may have for on-premises hardware and
software.

Efficiently managing the lifecycle: It is designed to support the complete


web application lifecycle: building, testing, deploying, managing, and updating.

Efficiency: It allows for higher-level programming with reduced complexity


thus, the overall development of the application can be more effective.
Disadvantages of Paas:

Limited control over infrastructure: PaaS providers typically manage the


underlying infrastructure and take care of maintenance and updates, but this
can also mean that users have less control over the environment and may
not be able to make certain customizations.

Dependence on the provider: Users are dependent on the PaaS provider


for the availability, scalability, and reliability of the platform, which can be a
risk if the provider experiences outages or other issues.

Limited flexibility: PaaS solutions may not be able to accommodate certain


types of workloads or applications, which can limit the value of the solution
for certain organizations.
Service Models

Software as a Service (SaaS)

SaaS delivers software applications over the


internet on a subscription basis.
Users can access and use applications
directly through a web browser or APIs.
The provider hosts and manages the
underlying infrastructure, application, and
data.
Users can typically customize certain aspects
of the application to fit their needs.
Examples of SaaS include Salesforce,
Microsoft Office 365, and Google
Workspace.
Characteristics of SaaS

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.

There are the following characteristics of SaaS -

Managed from a central location

Hosted on a remote server

Accessible over the internet

Users are not responsible for hardware and software updates. Updates are
applied automatically.

The services are purchased on the pay-as-per-use basis

Example: You tube, email, Zoom, facebook


Advantages of SaaS

Cost-Effective: Pay only for what you use.

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.

Accessibility: We can Access app data from anywhere.

Automatic updates: Rather than purchasing new software, customers rely on a


SaaS provider to automatically perform the updates.

Scalability: It allows the users to access the services and features on-demand.
Disadvantages of Saas :

Limited customization: SaaS solutions are typically not as customizable as on-premises


software, meaning that users may have to work within the constraints of the SaaS
provider’s platform and may not be able to tailor the software to their specific needs.

Dependence on internet connectivity: SaaS solutions are typically cloud-based, which


means that they require a stable internet connection to function properly. This can be
problematic for users in areas with poor connectivity or for those who need to access
the software in offline environments.

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

IaaS Paas 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.

It is used by network architects. It is used by developers. It is used by 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

ENIAC - Electronic Numerical Integrator and Computer

1946 the World’s 1st General Purpose


2011-07-04 Computer
Future 33
of Cloud
- Mobile Cloud
History 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:

• It is a composition of multiple independent systems but all of them are depicted as a


single entity to the users.

• The purpose of distributed systems is to share resources and also use them effectively
and efficiently.

• Distributed systems possess characteristics such as scalability, concurrency, continuous


availability, heterogeneity, and independence in failures.

• 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.

• But these were very expensive.

• To reduce this cost, cluster computing came as an alternative to mainframe technology.


Cluster computing:

• In 1980s, cluster computing came as an alternative to mainframe computing.

• 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.

• Thus. cloud computing is often referred to as “Successor of grid computing”.


Virtualization:

• 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

• Virtualization is a technique, which allows to share single physical instance of


an application or resource among multiple organizations or tenants
(customers).

• The virtual environment can be anything, such as a single instance or a


combination of many operating systems, storage devices, network application
servers, and other environments.
Virtualization
Virtualization

• Types of Virtualization

 Hardware virtualization

 Server virtualization

 Storage virtualization

 Operating system virtualization

 Data Virtualization
Hypervisor

• A hypervisor is a form of virtualization software used in Cloud hosting to divide


and allocate the resources on various pieces of hardware.

• The program which provides partitioning, isolation, or abstraction is called a


virtualization hypervisor.

• A hypervisor is sometimes also called a virtual machine manager(VMM).


VIRTUALIZATION REFERENCE MODEL
VIRTUALIZATION REFERENCE MODEL

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

2) Hardware Abstraction Level (HAL)

3) Operating System Level

4) Library Level (User Level API)

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.

• The basic emulation method is through code interpretation. An interpreter


program interprets the source instructions to target instructions one by one. One
source instruction may require tens or hundreds of native target instructions to
perform its function.

• 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

• Hardware-level virtualization is performed right on top of the bare hardware.


On the one hand, this approach generates a virtual hardware environment
for a VM.

• 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

• OS-level virtualization creates isolated containers on a single physical server and


the OS instances to utilize the hard-ware and software in data centers.

• 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.

• It is also used, to a lesser extent, in consolidating server hardware by moving


services on separate hosts into containers or VMs on one server.
Library Support Level

• Most applications use APIs exported by user-level libraries rather


than using lengthy system calls by the OS. Since most systems
provide well-documented APIs, such an interface becomes
another candidate for virtualization.

• Virtualization with library interfaces is possible by controlling the


communication link between applications and the rest of a
system through API hooks.
User-Application Level

• Virtualization at the application level virtualizes an application as a VM. On a


traditional OS, an application often runs as a process.

• Therefore, application-level virtualization is also known as process-level


virtualization. The most popular approach is to deploy high level language
(HLL)

• VMs. In this scenario, the virtualization layer sits as an application program


on top of the operating system, and the layer exports an abstraction of a VM
that can run programs written and compiled to a particular abstract machine
definition.

• 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 acts as a reference model for cloud computing.

• 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)

• 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.

• The different characteristics of SOA are as follows :


o Provides interoperability between the services.
o Provides methods for service encapsulation, service discovery, service
composition, service reusability and service integration.
o Facilitates QoS (Quality of Services) through service contract based on
Service Level Agreement (SLA).
o Provides location transparency with better scalability and availability.
o Ease of maintenance with reduced cost of application development and
deployment.
Utility computing:

• 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 architecture refers to the design and structure of cloud computing


environments, including the arrangement of components and the relationships
between them.
• It involves various elements that work together to deliver cloud services and
ensure reliability, scalability, and security.
Cloud Architecture

NIST Architecture of Cloud


Cont…

• Cloud Consumer: An individual or organization that engages in a business partnership


with Cloud Providers and utilizes their services.

• Cloud Provider: A person, organization, or entity that is accountable for offering services
to individuals or entities who are interested in them.

• Cloud Auditor: A party capable of conducting an impartial evaluation of cloud services,


as well as assessing the performance, security, and operations of the cloud implementation.

• 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.

• Cloud Carrier: An intermediary that facilitates the connectivity and transportation of


cloud services from Cloud Providers to Cloud Consumers.
Cloud Architecture Best Practices

• 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.

• Maximize Performance: Optimize computing resources by continuously monitoring business


demands and technological requirements. Efficiently manage and allocate resources to maintain
optimal performance levels.

• 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

Benefits of Cloud Computing Architecture :

•overall cloud computing system should simpler

•Improves data processing requirements

•Providing high security

•Makes it more modularized

•Results in better disaster recovery

•Gives good user accessibility

•Reduces operating costs

•High reliability

•Scalability
AWS vs Azure vs Google cloud

AWS AZURE GCP

– Wide range of services – Strong focus on hybrid – Strong focus on data


and features cloud analytics and machine learning

– Established and – Strong integration


– Strong security features
trusted provider with Microsoft products

Pros – Large and active user – Good integration with – Custom machine types and
community third-party tools live migration of VMs

– Good support for


– Flexible pricing
open-source – Good support for containers
options
technologies

– Some services may not be as


– Complex pricing – Some services may be
mature as those offered by
structure more expensive
AWS and Azure
Cons – Some services may
– Steep learning curve – May not be as widely used as
have limited regions or
for some services AWS and Azure
availability
Tool AWS Azure Google Cloud

Virtual machines EC2 Azure Virtual Machines Compute Engine

Container Azure Kubernetes Google Kubernetes


ECS
orchestration Service (AKS) Engine (GKE)
Serverless functions AWS Lambda Azure Functions Cloud Functions
Elastic Load Balancer
Load balancing Azure Load Balancer Network Load Balancer
(ELB)
Azure Content Delivery
Content delivery CloudFront Cloud CDN
Network
Azure SQL Database, Cloud SQL, Cloud
Database services RDS, DynamoDB, Aurora
Cosmos DB Datastore, Bigtable
BigQuery, Cloud Data
Analytics Redshift, Kinesis Azure Synapse Analytics
Fusion

Machine learning SageMaker, Rekognition Azure Machine Learning Cloud AI Platform

Identity and access Cloud Identity, Identity


IAM Azure Active Directory
management Platform
Monitoring and Azure Monitor, Log
CloudWatch, X-Ray Stackdriver
logging Analytics
Conclusion

• 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.

• Cloud computing presents a transformative approach to computing, offering cost-effective


solutions, scalability, and flexibility for organizations across various industries. By leveraging
the benefits of cloud computing and aligning with the appropriate deployment and service
models, organizations can drive innovation, improve efficiency, and adapt to evolving
business needs.
Dockers Containers and Virtual Machines

Docker Containers Virtual Machines

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.

Each VM has its own copy of an operating system


They don’t contain a guest OS for each container
along with the application and necessary binaries,
and rely on the underlying OS kernel, which
which makes it significantly larger and it requires
makes the containers lightweight.
more resources.

Containers share resources with other containers


They provide Hardware-level process isolation
in the same host OS and provide OS-level process
and are slow to boot.
isolation.
Dockers Containers and Virtual Machines
Advantages of Docker

There are the following advantages of Docker -

It runs the container in seconds instead of minutes.

It uses less memory.

It provides lightweight virtualization.

It does not a require full operating system to run applications.

It uses application dependencies to reduce the risk.

Docker allows you to use a remote repository to share your


container with others.

It provides continuous deployment and testing environment.


• Hadoop is an open source framework from Apache and is used to store, analyze and
processing large amounts of data in a distributed computing environment.

• 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.

• In January 2006, MapReduce development started on the Apache Nutch which


consisted of around 6000 lines coding for it and around 5000 lines coding for HDFS. In
April 2006 Hadoop 0.1.0 was released.
Hadoop
• Its framework is based on Java programming with some native code in C and shell
scripts.

• It is being used by Facebook, Yahoo, Google, Twitter, LinkedIn and many more.

• It can be scaled up just by adding nodes in the cluster.

• It is designed to handle big data and is based on the MapReduce programming model,
which allows for the parallel processing of large datasets.

Hadoop has two main components:

• 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.

• YARN (Yet Another Resource Negotiator): This is the resource management


component of Hadoop, which manages the allocation of resources (such as CPU and
memory) for processing the data stored in HDFS.
Hadoop
Hadoop has several key features that make it well-suited for big data processing:

•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.

•Fault-Tolerance: Hadoop is designed to be highly fault-tolerant, meaning it can continue to


operate even in the presence of hardware failures.

•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.

2.Drill- It consists of user-defined functions and is used for data exploration.

3.Storm- It allows real-time processing and streaming of data.

4.Spark- It contains a Machine Learning Library(MLlib) for providing enhanced machine


learning and is widely used for data processing. It also supports Java, Python, and Scala.

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 is the process of distributing workloads across


computing resources in a cloud computing environment and carefully
balancing the network traffic accessing those resources. It's a fully
distributed, software-defined managed service, which is capable of
handling many protocols, such as HTTPS, TCP, Secure Sockets Layer (SSL)
and User Datagram Protocol (UDP).
Benefits of load balancing in cloud computing

Cloud load balancing plays a crucial role in cloud computing and offers several
benefits. Common benefits of cloud load balancing include the following:

Improved performance. To prevent any one server from becoming overloaded,


load balancing divides incoming traffic across several servers. This keeps any one
server from acting as a bottleneck and optimizes the use of available resources and
also increases response times and overall system performance.

Enhanced scalability. Cloud load balancing facilitates seamless scalability within


cloud environments. As resource demands surge, extra servers can be incorporated
into the server pool, with the load balancer effectively distributing the workload.
This capability empowers the system to manage heightened traffic and meet
expanding user requirements adeptly.

High availability. Load balancing ensures application and service availability by


redirecting traffic to operational servers if one fails, minimizing downtime and
providing uninterrupted service. This is especially beneficial for disaster
recovery scenarios.
Benefits of load balancing in cloud computing

Easier automation. Cloud balancing enhances automation by enabling businesses


to provide insight into applications in almost real time and apply predictive
analytics to foresee possible bottlenecks.

Reduced costs. Organizations can save money by deploying software-based load


balancing in the cloud as it's cheaper than installing, housing, configuring and
maintaining on-premises load balancing machines.

Improved reliability. Cloud load balancing improves reliability as applications are


hosted across various global hubs. For example, if a snowstorm causes a power
outage to happen in the northeastern U.S., the cloud load balancer can redirect
traffic from cloud resources hosted in that region to resources located in other
parts of the country.
Benefits of load balancing in cloud computing

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:

Limited customization. Cloud-based load balancing is generally less customizable


and manageable, requiring businesses to depend on the cloud provider for
management. For example, adjusting or fine-tuning load balancer settings might be
limited for businesses using load balancing in the cloud.
Disadvantages of load balancing in cloud computing

Setup complexity. It can be challenging to set up load balancing in cloud


computing, particularly when working with large-scale systems. Careful
preparations and planning might be needed to ensure it functions properly.

Cost. If specialized hardware or software is used for cloud load balancing, it


can add to the overall cost of cloud computing. The traffic volume and
complexity of the setup can also be added to the pricing.

Potential security issues. If not configured properly, load balancing can


introduce security risks such as enabling unauthorized access or exposing
sensitive data of customers.

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

Cloud load balancing algorithms are essential components of cloud computing


environments because they assure optimal resource use. These algorithms are often
divided into two categories: static and dynamic.

Static algorithms

In cloud computing, static load balancing techniques distribute traffic without


considering each server's present condition. These algorithms are usually applied to
systems where load variation is negligible.

Common static algorithms in cloud computing include the following:

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.

Common dynamic algorithms used in cloud computing include the following:

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

Round robin with weighted response time. This method weighs


servers according to their response timings. Servers with shorter
response times have greater weights and are more likely to accept
client requests.

Least bandwidth. This algorithm directs requests to servers that


have recently consumed the least amount of bandwidth.
Service level agreements in Cloud computing

A Service Level Agreement (SLA) is the bond for performance negotiated


between the cloud services provider and the client.

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:

•Availability of the Service (uptime)

•Latency or the response time

•Service components reliability

•Each party accountability

•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.

Enforce penalties for SLA Violation: If the service provider is found to be in


violation of the SLA, penalties can be imposed as outlined in the agreement.
These penalties can include financial penalties, reduced service level objectives,
or termination of the agreement.
Advantages of SLA

Improved communication: A better framework for communication between the


service provider and the client is established through SLAs, which explicitly outline the
degree of service that a customer may anticipate. This can make sure that everyone is
talking about the same things when it comes to service expectations.

Increased accountability: SLAs give customers a way to hold service providers


accountable if their services fall short of the agreed-upon standard. They also hold
service providers responsible for delivering a specific level of service.

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.

You might also like