0% found this document useful (0 votes)
82 views83 pages

Cloud Computing Devops AND Docker

This document discusses cloud computing concepts including virtualization, types of cloud computing models (-as-a-service), Docker, DevOps, and cloud characteristics. Virtualization allows multiple virtual machines to run on one physical server. Common cloud models are Infrastructure as a Service (IaaS), Platform as a Service (PaaS), Software as a Service (SaaS), and Container as a Service (CaaS). Key cloud computing characteristics include elasticity, scalability, high availability, and pay-per-use billing.

Uploaded by

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

Cloud Computing Devops AND Docker

This document discusses cloud computing concepts including virtualization, types of cloud computing models (-as-a-service), Docker, DevOps, and cloud characteristics. Virtualization allows multiple virtual machines to run on one physical server. Common cloud models are Infrastructure as a Service (IaaS), Platform as a Service (PaaS), Software as a Service (SaaS), and Container as a Service (CaaS). Key cloud computing characteristics include elasticity, scalability, high availability, and pay-per-use billing.

Uploaded by

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

CLOUD COMPUTING

DEVOP S
AND
DOCKE R
Its cloud everywhere
• Virtualization, Cloud, Types of Clouds and
its Fundamentals

CONTENTS • *-as-a-Service
• Docker
• DevOps
• Historically every application was run
individually on a different physical server
SERVERS • Today, just from one machine, we can run
N applications with the help of
Virtualization
VIRTUALIZATION
• A virtual machine is a software computer that, like a
physical computer, runs an operating system and
applications. The hypervisor serves as a platform for
running virtual machines and allows for the
consolidation of computing resources.
• Each virtual machine contains its own virtual, or
software-based, hardware, including a virtual CPU,
memory, hard disk, and network interface card.
V I RT U A L I Z AT I O N • Software called the hypervisor is installed on the
physical hardware in a virtualized datacenter, and
acts as a platform for virtual machines. 
• The hypervisor provides physical hardware resources
dynamically to virtual machines as needed to support
the operation of the virtual machines.
• The hypervisor allows virtual machines to operate
with a degree of independence from the underlying
physical hardware.
V I RT U A LI Z AT I ON

Virtual Machine 1 Virtual Machine 2 Virtual Machine N


User software User software User software
Email Server Facebook App App A App X

Data Web Ruby on


Java Rails App B App Y
base Server

Linux Guest OS

Virtual Machine Monitor (Hypervisor)

Hardware
• Virtualization can increase IT agility, flexibility and
scalability while creating significant cost savings.
Greater workload mobility, increased performance
and availability of resources, automated operations –
they’re all benefits of virtualization that make IT simpler
to manage and less costly to own and operate.
• Reduced capital and operating costs.
• Minimized or eliminated downtime.
B E N E F I T S  O F • Increased IT productivity, efficiency, agility and
V I RT U A L I Z AT I O N responsiveness.
• Faster provisioning of applications and resources.

• Greater business continuity and disaster recovery.

• Simplified data center management.

• Availability of a true Software-Defined Data Center


• Types of cloud
• Cloud models
• Cloud basics
• Scalability
• Elasticity
• High Availability

CLOUD • Fault Tolerance


• Disaster Recovery
• Load Balancing
• Clustering
• Self-service
• Per-usage metered and
billed
• Customization
• Virtualization means delivering useful
functions while hiding how internals work
• Being fully virtualized, computing must allow
computers to be built from distributed
components
CLOUD • e.g., processing, storage, data, and
COMPUTING IN A software resources

NUTSHELL • Cluster, grid, and now, cloud computing, have


all aimed at allowing access to large amounts
of computing power in a fully virtualized
manner
• By aggregating resources
• By offering a single system view
DEPLOYMENT MODELS OF A CLOUD
ON-PREMISES VS CLOUD COMPUTING
PROS AND CONS
*-AS-A-SERVICE

*-AS-A-SERVICE
• Infrastructure as a Service (IaaS) :
It provides only a base infrastructure
(Virtual machine, Software Define
Network, Storage attached). End user
have to configure and manage platform
and environment, deploy applications
on it.
• AWS (EC2), GCP (CE), Microsoft
CLOUD Azure (VM)
COMPUTING • Software as a Service (SaaS) : It is
sometimes called to as “on- demand
MODELS software”. Typically accessed by users using a
thin client via a web browser. In SaaS
everything can be managed by vendors:
applications, runtime, data, middleware, OSes,
virtualization, servers, storage and
networking, End users have to use it.
• GMAIL is Best example of SaaS.
• Platform as a Service (PaaS): It
provides a platform allowing end user to
develop, run, and manage applications
without the complexity of building and
maintaining the infrastructure.
• Google App Engine, CloudFoundry,
CLOUD Heroku, AWS (Beanstalk)

COMPUTING • Container as a Service (CaaS): Is a form


of container-based virtualization in which
MODELS container engines, orchestration and the
underlying compute resources are delivered
to users as a service from a cloud provider.
• Google Container Engine(GKE), AWS
(ECS), Azure (ACS) and Pivotal (PKS)
• Self-service
• Per-usage metered and billed
• Elasticity
• Scalability
• High Availability
CLOUD BASICS • Fault Tolerance
• Disaster Recovery
• Load Balancing
• Clustering
• Customization
• Consumers of cloud computing services
expect on-demand
• Nearly instant access to resources
SELF-SERVICE • Clouds must allow self-service access
• Customers can request, customize, pay, and
use services without intervention of human
operators
• Cloud computing eliminates up-front commitment by users
• Allowing them to request and use only the necessary
amount
• Services must be priced on a short-term basis, e.g., by the
hour

PER-USAGE • Allowing users to release (and not pay for) resources as


soon as they are not needed

METERING AND • Clouds must allow efficient trading of service

BILLING • Such as pricing, accounting, and billing


• Metering should be done accordingly for different types of
service
• e.g., storage, processing, and bandwidth
• Usage is promptly reported
• Thus providing greater transparency
• Cloud computing gives the illusion of
infinite computing resources available on
demand
• Users expect clouds to rapidly provide
resources in any quantity at any time
ELASTICITY • The additional resources can be
• Provisioned, possibly automatically, when
an application load increases
• Released when load decreases
• Scale up and down
• Scalability refers to the idea of a system in which
every application or piece of infrastructure can be
expanded to handle increased load.
• There are two types of scalability
• Vertical
• Vertical is often thought of as the “easier” of the
two methods. When scaling a system vertically, you
SCAL ABILITY add more power to an existing instance. This can
mean more memory (RAM), faster storage such as
Solid State Drives (SSDs), or more powerful
processors (CPUs).
• Horizontal
• Horizontal scaling is slightly more complex. When
scaling your systems horizontally, you generally add
more servers to spread the load across multiple
machines.
• A high availability cluster is a group of
servers that support server applications
which can be utilized with a minimal
amount of downtime when any server
node fails or experiences overload.
HIGH
AVAIL ABILITY • You may require a high availability
clusters for any of the reasons like load
balancing, failover servers, and backup
system. The most common types of
Cluster configuration are active-active and
active-passive.
• Fault tolerance in cloud computing is largely the same
(conceptually) as in private or hosted environments.
• Meaning that it simply means the ability of your
infrastructure to continue providing service to
underlying applications even after the failure of one or
more component pieces in any layer.
• In cloud computing that can be because you have
autoscaling in the same datacenter and/or across
FAULT TOLERANCE geographic zones. You still need to configure some
facility for your infrastructure to use to continue to
function during failure or maintenance. Your build and
orchestration engine for example may monitor number
of users or connections or sessions and, seeing those
exceed available resources (whether or not the
resources were exceeded out of sheer volume OR out of
failure of one or more previously healthy components),
will then spin up additional resources locally or remotely
to continue servicing that load.
• Cloud load balancing is the process of
distributing workloads and computing
resources in a cloud computing
environment. Load balancing allows
enterprises to manage application or
LOAD BAL ANCING workload demands by allocating resources
among multiple computers, networks or
servers. Cloud load balancing involves
hosting the distribution of workload traffic
and demands that reside over the
Internet.
• Cloud disaster recovery (cloud DR) is a backup and
restore strategy that involves storing and
maintaining copies of electronic records in a cloud
computing environment as a security measure.
• The goal of cloud DR is to provide an organization
with a way to recover data and/or implement failover
in the event of a man-made or natural catastrophe
DISASTER • Failover, failback keys to cloud recovery.

RECOVERY • Effective cloud disaster recovery provides continuity


for services and the ability to fail over to a second
site if there is a hardware or software failure of IT
systems.
• Workloads are then failed back to their original
locations when the crisis is resolved. Failover
and failback can be automated.
SOFTWARE AS A SERVICE
• Definition: Software as a Service (SaaS),
a.k.a. on demand software, is a software
delivery model in which software and its
associated data are hosted centrally and
accessed using a thin-client, usually a
SOFTWARE AS web browser over the internet. –
A SERVICE Wikipedia

(SAAS) • Simply put, SaaS is a method for


delivering software that provides remote
access to software as a web based
service. The software service can be
purchased with a monthly fee and pay as
you go.
• SaaS is a model of software deployment
where an application is hosted as a
service provided to customers across the
Internet.
SOFTWARE AS • Saas alleviates the burden of software
maintenance/support but users relinquish
A SERVICE control over software versions and
(SAAS) requirements.
• Terms that are used in this sphere include
• Platform as a Service (PaaS) and
• Infrastructure as a Service (IaaS)
• REST is an architectural style which is based
on web-standards and the HTTP protocol.
• In a REST based architecture you have a REST
server which provides access to the resources.
• A REST client can access and modify the REST
resources.
WHAT IS REST • Every resource should support the HTTP
common operations. Resources are identified
by global IDs (which are typically URIs).
• REST allows that resources have different
representations e.g., text, XML,
JSON etc. The REST client can ask for a
specific representation via the HTTP protocol
• The PUT, GET, POST and DELETE methods are
typical used in REST based architectures. The
following table gives an explanation of these
operations.
• GET defines a reading access of the resource
without side-effects. The resource is never
changed via a GET request, e.g., the request
has no side effects (idempotent).
WHAT IS REST • POST updates an existing resource or creates a
new resource.
• PUT creates a new resource. It must also be
idempotent.
• DELETE removes the resources. The operations
are idempotent . They can get
repeated without leading to different
results.
• RESTFul web services are based on HTTP
methods and the concept of REST.
• A RESTFul web service defines the base
URI for the services, the supported MIME-
WHAT IS REST types (XML, text, JSON, user-defined, …​).
• It also defines the set of operations
(POST, GET, PUT, DELETE) which are
supported.
MICROSERVICE
S

•“The microservice architectural


style is an approach to
developing a single application
as a suite of small services, each
running in its own process and
communicating with lightweight
mechanisms, often an HTTP
resource API. These services are
built around business
capabilities and independently
deployable by fully automated
deployment machinery."

Martin Fowler
•Microservices is a variant of the service-oriented architecture (SOA)
architectural style that structures an application as a collection of 
loosely coupled services.

• In a microservices architecture, services should be fine-grained and the 


protocols should be lightweight. The benefit of decomposing an application
into different smaller services is that it improves modularity and makes the
MICROSE RVI CES application easier to understand, develop and test.

•It also parallelizes development by enabling small autonomous teams to


develop, deploy and scale their respective services independently. 

•It also allows the architecture of an individual service to emerge through


continuous refactoring.Microservices-based architectures enable 
continuous delivery and deployment
DOCKER
• History
• Background
• Pieces of Puzzle – Namespaces and control
groups
• Contaniers vs VM’s
• Why do we need a Docker
WHAT IS • Docker Terminology
DOCKER • Engine
• Network
• Images
• Container
• Registry
• Orchestration
• Docker is a platform for developers and
sysadmins to build, share, and
run applications with containers. The use
WHAT IS of containers to deploy applications is
called containerization. Containers are not
DOCKER new, but their use for easily deploying
applications is.
• Docker is a software technology providing operating-system-
level virtualization also known as containers, promoted by the
company Docker, Inc.

• Docker provides an additional layer of abstraction and


automation of operating-system-level virtualization on Windows
and Linux.

• Docker uses the resource isolation features of the Linux kernel


such as cgroups and kernel namespaces, and a union-capable

DOCKER
layered file system to allow independent "containers" to run
within a single Linux instance, avoiding the overhead of
starting and maintaining virtual machines (VMs).

• Docker is a tool that can package an application and its


dependencies in a virtual container that can run on
any Linux server.

• Docker implements a high-level API to provide


lightweight containers that run processes in
isolation.
Architectures
Earlier and
processes incompatibiliti
es
B AC K G R O U N D

Increasing REST and


complexities microservices
• Initially Google came up with cgroups to
restrict usage of resources
CONTROL • Was added to Linux in later versions
GROUPS AND
• Namespaces – a concept to provide
NAMESPACES isolations
• Cgroups + Namespaces + Magic = Docker
DOCKER ENGINE
• Fundamentally, a container is nothing but a
running process, with some added
encapsulation features applied to it in order
to keep it isolated from the host and from
other containers.
• One of the most important aspects of
IMAGES AND container isolation is that each container
CONTAINERS interacts with its own, private filesystem;
this filesystem is provided by a
Docker image.
• An image includes everything needed to run
an application -- the code or binary,
runtimes, dependencies, and any other
filesystem objects required.
IMAGES AND
CONTAINERS
• A registry is a storage and content delivery
system, holding named Docker images, available
in different tagged versions.
• A Docker registry is a storage and distribution system
for named Docker images. The same image might have
multiple different versions, identified by their tags.
• A Docker registry is organized into Docker repositories ,
where a repository holds all the versions of a specific
REGISTRY image. The registry allows Docker users to pull images
locally, as well as push new images to the registry
(given adequate access permissions when applicable).
• By default, the Docker engine interacts with DockerHub
, Docker's public registry instance. However, it is
possible to run on-premise the open-source Docker
registry/distribution, as well as a commercially
supported version called Docker Trusted Registry .
There are other public registries available online.
Containerization is increasingly popular because containers
are:

Flexible: Even the most complex applications can be


containerized.

Lightweight: Containers leverage and share the host kernel,


making them much more efficient in terms of system
resources than virtual machines.
Portable: You can build locally, deploy to the cloud, and run
B E N E FIT S OF anywhere.
C ON TAIN E R IZATI O N
Loosely coupled: Containers are highly self sufficient and
encapsulated, allowing you to replace or upgrade one
without disrupting others.
Scalable: You can increase and automatically distribute
container replicas across a datacenter.

Secure: Containers apply aggressive constraints and


isolations to processes without any configuration required on
the part of the user
CLOUD FOUNDRY

CNCF

WHATS NEXT KUBERNETES

DEVOPS

Q/A
COMMON
TERMS &
DOCKER
COMMAND
S
CLOUD AND DEVOPS

the grandiloquence
• Legacy methodologies
• Work isolation
HISTORY • Stringent role definitions
• High dependency
• Manual Deployments
PRODUCTIVITY
OF DEVELOPERS
What is it about?
AND
THE RELIABILITY
OF OPERATIONS
RENAISSANCE
CONTRAST
GOALS OF DEVOPS

• Collaboration
• CICD – Speed, Scale, Serve
• Automation
• Reliability
• Standardization
ENABLERS

• Microservices
• Infrastructure as Code
• Cloud – and its scalability
• Automation technologies
MICROSERVICES

• an architectural style
• A smaller set of services working together that are-
• Atomic
• Loosely coupled
• Maintainable and testable
• Organized around business capabilities
• They enable rapid, frequent and reliable delivery of large, complex
applications.
• They also enable an organization to evolve its technology stack.
• https://www.ibm.com/developerworks/com
munity/blogs/RohitShetty/entry/fault_toler
REFERENCES ance_vs_high_availability?lang=en
• https://linuxacademy.com/blog/cloud/scala
bility-cloud-computing/
• Major Source – for Docker
https://docs.docker.com/engine/docker-ov
erview/

You might also like