SlideShare a Scribd company logo
1 of 59
Containers
And
Docker
Cloud Administration
• Aside from the base hardware on which they
run, cloud infrastructures comprise hundreds
or thousands of virtual resources such as
compute and storage nodes
• Administration of virtual infrastructures, as
compared with hardware, is much more of a
software-oriented activity
Cloud Administration
• Increasingly, software has to be designed and
developed with the target deployment
environment closely in mind
• The term “DevOps” has come to mean the
close cooperation of developers and
operations engineers for the deployment and
running of multi-component application
stacks over complex virtualised environments
Interoperability
• A typical service comprises many layers of
interoperating components
• Each component has some arbitrary
version and configuration
Interoperability
• Each component has some arbitrary
number of dependencies on other
components and operating system
services and libraries
• A large number of permutations of easily
possible with just a small number of
components
Interoperability N x M problem
Static Website
Web Frontend
Background Workers
User DB
Analytics DB
Queue
Dev VM QA
Server
Single
Prod
Server
Online
Cluster
Public
Cloud
Dev
Laptop
Customer
Servers
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
? ? ? ? ? ? ?
An Analogy
An Analogy
• Before 1960, most cargo was shipped break
bulk. Shippers and carriers alike needed to
worry about bad interactions between
different types of cargo (e.g. if a shipment of
anvils fell on a sack of bananas).
• Similarly, transitions between different modes
of transport were painful.
An Analogy
An Analogy
• The answer was found in the form of a
standard shipping container.
• The container can be sealed, and not to be
re-opened until it reached its final
destination
An Analogy
Docker
• Docker is a shipping container for code.
• Enables any application and its
dependencies to be packaged up as a
lightweight, portable, self-sufficient
container.
• Containers have standard operations, thus
enabling more automation.
Docker
Virtual Machine Vs. Container
Host OS
Docker
Server
Virtual Machine Vs. Container
• A container comprises an application and its
dependencies.
• Containers serve to isolate processes which
run in isolation in userspace on the host's
operating system.
• Traditional hardware virtualization (e.g.
VMWare, KVM, Xen, EC2) aims to create an
entire virtual machine.
Virtual Machine Vs. Container
• Each virtualized application contains not
only the application (which may only be
10's of MB) along with the binaries and
libraries needed to run that application,
and an entire Guest operating System
(which may measure in 100s of GB).
Virtual Machine Vs. Container
• Since all of the containers share the same
operating system (and, where appropriate,
binaries and libraries), they are
significantly smaller than VMs
• Possible to store 100s of containers on a
physical host
Virtual Machine Vs. Container
• Since they utilize the host operating
system, restarting a container does not
mean restarting or rebooting the
operating system. Thus, containers are
much more portable and much more
efficient for many use cases.
Virtual Machine Vs. Container
• With a traditional VM, each application, each
copy of an application, and each slight
modification of an application requires
creating an entirely new VM.
• A new application on a host need only have
the application and its binaries/libraries.
There is no need for a new guest operating
system.
Virtual Machine Vs. Container
• If you want to run several copies of the
same application on a host, you do not
even need to copy the shared binaries.
• Finally, if you make a modification of the
application, you need only copy the
differences.
Docker: Introduction
Docker: Introduction
• Docker is an open source, community-
backed project, originally developed by
DotCloud
• The project aims to create an application
encapsulation environment using Linux
containers for its isolation environment
Docker: Introduction
• Docker addresses one of the biggest
challenges in cloud service operations
management:
• application deployment and
• component interoperability in complex,
multi-node environments
Docker: Introduction
• Docker is an open platform for developers
and sys admins to build, ship, and run
distributed applications.
• As a result, IT/IS can ship faster and run
the same app, unchanged, on laptops,
datacentres, VMs, and on any cloud
Docker: Introduction
• Enables apps to be quickly assembled from
components and eliminates the friction
between development, QA, and production
environments.
• It consists of:
• Docker Engine, a portable, lightweight runtime
and packaging tool,
• Docker Hub, a cloud service for sharing
applications and automating workflows
Docker: Introduction
• It consists of:
• Docker Engine, a portable, lightweight
runtime and packaging tool,
• Docker Hub (or Registry), a cloud service for
sharing applications and automating
workflows
Docker: Introduction
• Containers are designed to run on virtually
any Linux server. The same container that
that a developer builds and tests on a
laptop will run at scale, in production, on
VMs, bare-metal servers, OpenStack
clusters, public instances, or combinations
of the above.
Docker: Introduction
• Developers can build their application
once, and then know that it can run
consistently anywhere. Operators can
configure their servers once, and then
know that they can run any application.
Docker: Basic Workflow
Docker
Making Copies
Testing and Qualification
• Before a service update can be rolled to
production, it must be tested and qualified
• Ideally, to make testing easier and to have any kind
of confidence in quality, the change between an
update and a previously working configuration
should be small – operations objective
• This need invariably conflicts with the need to
patch and advance the underlying software –
developer’s objective
Update Example
• Suppose that a web service is running a particular
version of PostgreSQL (a relational database) with
a particular version of Memcached (a memory
cache).
• Each service is known to work with a particular OS
version, say Ubuntu 14.04.
• Now suppose, a critical fix is required for
PostgreSQL but that update will only work with a
later version of Ubuntu
Update Example
• The problem is that the server OS would
need to be updated but that update is not
qualified to work with the current version
of Memcached.
• A newer version of Memcached would be
need too – this is known as a dependency
cascade
Update Example
• Suppose, to make matters worse, the new
version of Memcached would not work
with the middleware version it services.
Now we could have further upstream
dependency cascades.
• What do we do?
Update Example
• Solution #1: Split Memcached and
PostgreSQL services onto different VMs.
This would work but further complicates
the deployment mesh and forces single-
role-per VM policy, reducing flexibility
• Solution #2: Containerise the PostgreSQL
and Memcached services inside Docker
Docker: How it Works
• Starting with a base image, say some
version of Ubuntu, the developer can build
a bespoke container for hosting a single
component, say PostgreSQL.
• The built image encapsulates the OS
version, updates, libraries and application
components
Docker: How it Works
• Docker can animate the image into a
running container
• The container transparently runs a fully
isolated OS instance within the host
machine
• Resources outside the container are not
visible to anything inside
Docker: How it Works
• Docker images are built on a union
filesystem (AUFS)
• Updates to the filesystem by in-container
applications are visible as discrete changes
which can be preserved (forming named,
image snapshots) or thrown away
Docker: How it Works
• Containers have their own virtual
networking layer with automatically
assigned IP addresses which are visible in
the host system
• Docker supports TCP/IP port mapping and
forwarding from the host
Docker: How it Works
• The philosophy for building a Docker
component mesh is to have the highest
degree of componentisation as possible:
Docker: How it Works
• For example, a LAMP stack would look like
the following:
• MySQL container(s)
• Linked MySQL data container
• Apache (or Nginx) and PHP container(s)
• Memcached container(s)
• Each one can run on top of different Linux OS
versions and be updated independently
Docker: How it Works
• Docker supports automated, script-driven image
generation.
• A Dockerfile specifies the following:
• Base Linux image
• Individual software installation commands
• TCP/IP ports to expose
• Default command(s) to execute when container is run
• https://docs.docker.com/engine/reference/builder/
Docker: How it Works
• Consult the latest docs at the official site
to see what it supported for your target
platform
• https://docs.docker.com/install/
• Linux, MacOS and Windows supported
(Mac and Windows use virtualised Linux
to make this work)
Lightweight
The Good, the Bad, and
the Interesting of
Docker
THE GOOD
Docker: The Benefits
• Make the entire lifecycle more efficient,
consistent, and repeatable
• Increase the quality of code produced by
developers
• Eliminate inconsistencies between
development, test, production, and
customer environments
Docker: The Benefits
• Support segregation of duties
• Significantly improves the speed and
reliability of continuous deployment and
continuous integration systems
• Because the containers are so lightweight,
address significant performance, costs,
deployment, and portability issues normally
associated with VMs
Docker: The Benefits
• Because any given container only runs
some subset of a service’s total number of
components, the surface area for an
attack on a service is highly fragmented
Docker: The Benefits
• Further, only components which need to be
exposed on a network should be network-
facing, allowing everything else to be isolated
on internally secured networks
• For example, a reverse HTTP container proxy
in front of the middeware and database
containers which are hidden
THE BAD
Docker: The Weaknesses
• It does not provide cross-platform
compatibility which means that if an
application is designed to run in a Docker
container on Windows, then it cannot run on
Linux Docker container
• Docker is only suitable when the
development OS and the testing OS are same
Docker: The Weaknesses
• It is not good for application that requires
rich GUI
• It is difficult to manage large amount of
containers
• It does not provide any solution for data
backup and recovery
THE INTERESTING
Docker: Interesting
• It Allows You to Run Your Own Malware
Analysis Engine
• Sandboxing and isolation are central to today's
malware analysis mechanisms; to this end,
Docker can be a lightweight alternative to
complete virtualization. This REMnux project
provides Docker images for malware analysis,
giving information security professionals an easy
way to set up tools and environments for
malware detonation.
Docker: Interesting
• It Allows You to Containerize Your Skype
Sessions
• Wish you could Skype Grandma in complete
isolation? By running your Skype sessions
inside a Docker container, you can do just
that.
Docker: Interesting
• It Allows You to Manage Your Raspberry Pi
Cluster With Docker Swarm
• Using the Docker Machine, you can install
Swarm on Raspberry Pi to setup a Raspberry
Pi Swarm cluster.
Containers and Docker

More Related Content

What's hot

Kubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive OverviewKubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive OverviewBob Killen
 
Container orchestration overview
Container orchestration overviewContainer orchestration overview
Container orchestration overviewWyn B. Van Devanter
 
Docker introduction
Docker introductionDocker introduction
Docker introductiondotCloud
 
Virtualization, Containers, Docker and scalable container management services
Virtualization, Containers, Docker and scalable container management servicesVirtualization, Containers, Docker and scalable container management services
Virtualization, Containers, Docker and scalable container management servicesabhishek chawla
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to KubernetesImesh Gunaratne
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker IntroductionPeng Xiao
 
Evolution of containers to kubernetes
Evolution of containers to kubernetesEvolution of containers to kubernetes
Evolution of containers to kubernetesKrishna-Kumar
 
Kubernetes Architecture
 Kubernetes Architecture Kubernetes Architecture
Kubernetes ArchitectureKnoldus Inc.
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017Docker, Inc.
 
Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Megan O'Keefe
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesSlideTeam
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes IntroductionPeng Xiao
 
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with DockerRavindu Fernando
 
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...Simplilearn
 

What's hot (20)

Kubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive OverviewKubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive Overview
 
Container orchestration overview
Container orchestration overviewContainer orchestration overview
Container orchestration overview
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Virtualization, Containers, Docker and scalable container management services
Virtualization, Containers, Docker and scalable container management servicesVirtualization, Containers, Docker and scalable container management services
Virtualization, Containers, Docker and scalable container management services
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Evolution of containers to kubernetes
Evolution of containers to kubernetesEvolution of containers to kubernetes
Evolution of containers to kubernetes
 
Kubernetes Architecture
 Kubernetes Architecture Kubernetes Architecture
Kubernetes Architecture
 
Introduction to Docker - 2017
Introduction to Docker - 2017Introduction to Docker - 2017
Introduction to Docker - 2017
 
Docker & kubernetes
Docker & kubernetesDocker & kubernetes
Docker & kubernetes
 
Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)
 
presentation on Docker
presentation on Dockerpresentation on Docker
presentation on Docker
 
Containers 101
Containers 101Containers 101
Containers 101
 
Docker Basics
Docker BasicsDocker Basics
Docker Basics
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Getting started with Docker
Getting started with DockerGetting started with Docker
Getting started with Docker
 
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
What Is A Docker Container? | Docker Container Tutorial For Beginners| Docker...
 

Similar to Containers and Docker

Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deploymentjavaonfly
 
Week 8 lecture material
Week 8 lecture materialWeek 8 lecture material
Week 8 lecture materialAnkit Gupta
 
Introduction to Containers & Diving a little deeper into the benefits of Con...
 Introduction to Containers & Diving a little deeper into the benefits of Con... Introduction to Containers & Diving a little deeper into the benefits of Con...
Introduction to Containers & Diving a little deeper into the benefits of Con...Synergetics Learning and Cloud Consulting
 
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013dotCloud
 
Rami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerRami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerWeb à Québec
 
Introduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGIntroduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGAjeet Singh Raina
 
Introduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainIntroduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainAjeet Singh Raina
 
An Introduction To Docker
An Introduction To  DockerAn Introduction To  Docker
An Introduction To DockerGabriella Davis
 
State of the Container Ecosystem
State of the Container EcosystemState of the Container Ecosystem
State of the Container EcosystemVinay Rao
 
Introduction to Containers - SQL Server and Docker
Introduction to Containers - SQL Server and DockerIntroduction to Containers - SQL Server and Docker
Introduction to Containers - SQL Server and DockerChris Taylor
 
A curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & KubernetesA curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & KuberneteszekeLabs Technologies
 
Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetesDr Ganesh Iyer
 

Similar to Containers and Docker (20)

Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deployment
 
Week 8 lecture material
Week 8 lecture materialWeek 8 lecture material
Week 8 lecture material
 
What is Docker?
What is Docker?What is Docker?
What is Docker?
 
Docker slides
Docker slidesDocker slides
Docker slides
 
Introduction to Containers & Diving a little deeper into the benefits of Con...
 Introduction to Containers & Diving a little deeper into the benefits of Con... Introduction to Containers & Diving a little deeper into the benefits of Con...
Introduction to Containers & Diving a little deeper into the benefits of Con...
 
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
Write Once and REALLY Run Anywhere | OpenStack Summit HK 2013
 
Docker Overview
Docker OverviewDocker Overview
Docker Overview
 
OpenStack Summit
OpenStack SummitOpenStack Summit
OpenStack Summit
 
Rami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerRami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with Docker
 
Docker container
Docker containerDocker container
Docker container
 
Introduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUGIntroduction to Docker - IndiaOpsUG
Introduction to Docker - IndiaOpsUG
 
Introduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker CaptainIntroduction to Docker Containers - Docker Captain
Introduction to Docker Containers - Docker Captain
 
An Introduction To Docker
An Introduction To  DockerAn Introduction To  Docker
An Introduction To Docker
 
State of the Container Ecosystem
State of the Container EcosystemState of the Container Ecosystem
State of the Container Ecosystem
 
Docker-Intro
Docker-IntroDocker-Intro
Docker-Intro
 
Docker
DockerDocker
Docker
 
Introduction to Containers - SQL Server and Docker
Introduction to Containers - SQL Server and DockerIntroduction to Containers - SQL Server and Docker
Introduction to Containers - SQL Server and Docker
 
A curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & KubernetesA curtain-raiser to the container world Docker & Kubernetes
A curtain-raiser to the container world Docker & Kubernetes
 
Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetes
 
Docker and kubernetes
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
 

More from Damian T. Gordon

Universal Design for Learning, Co-Designing with Students.
Universal Design for Learning, Co-Designing with Students.Universal Design for Learning, Co-Designing with Students.
Universal Design for Learning, Co-Designing with Students.Damian T. Gordon
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to MicroservicesDamian T. Gordon
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud ComputingDamian T. Gordon
 
Evaluating Teaching: SECTIONS
Evaluating Teaching: SECTIONSEvaluating Teaching: SECTIONS
Evaluating Teaching: SECTIONSDamian T. Gordon
 
Evaluating Teaching: MERLOT
Evaluating Teaching: MERLOTEvaluating Teaching: MERLOT
Evaluating Teaching: MERLOTDamian T. Gordon
 
Evaluating Teaching: Anstey and Watson Rubric
Evaluating Teaching: Anstey and Watson RubricEvaluating Teaching: Anstey and Watson Rubric
Evaluating Teaching: Anstey and Watson RubricDamian T. Gordon
 
Designing Teaching: Pause Procedure
Designing Teaching: Pause ProcedureDesigning Teaching: Pause Procedure
Designing Teaching: Pause ProcedureDamian T. Gordon
 
Designing Teaching: ASSURE
Designing Teaching: ASSUREDesigning Teaching: ASSURE
Designing Teaching: ASSUREDamian T. Gordon
 
Designing Teaching: Laurilliard's Learning Types
Designing Teaching: Laurilliard's Learning TypesDesigning Teaching: Laurilliard's Learning Types
Designing Teaching: Laurilliard's Learning TypesDamian T. Gordon
 
Designing Teaching: Gagne's Nine Events of Instruction
Designing Teaching: Gagne's Nine Events of InstructionDesigning Teaching: Gagne's Nine Events of Instruction
Designing Teaching: Gagne's Nine Events of InstructionDamian T. Gordon
 
Designing Teaching: Elaboration Theory
Designing Teaching: Elaboration TheoryDesigning Teaching: Elaboration Theory
Designing Teaching: Elaboration TheoryDamian T. Gordon
 
Universally Designed Learning Spaces: Some Considerations
Universally Designed Learning Spaces: Some ConsiderationsUniversally Designed Learning Spaces: Some Considerations
Universally Designed Learning Spaces: Some ConsiderationsDamian T. Gordon
 
Universal Design for Learning
Universal Design for Learning Universal Design for Learning
Universal Design for Learning Damian T. Gordon
 

More from Damian T. Gordon (20)

Universal Design for Learning, Co-Designing with Students.
Universal Design for Learning, Co-Designing with Students.Universal Design for Learning, Co-Designing with Students.
Universal Design for Learning, Co-Designing with Students.
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
REST and RESTful Services
REST and RESTful ServicesREST and RESTful Services
REST and RESTful Services
 
Serverless Computing
Serverless ComputingServerless Computing
Serverless Computing
 
Cloud Identity Management
Cloud Identity ManagementCloud Identity Management
Cloud Identity Management
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud Computing
 
Introduction to ChatGPT
Introduction to ChatGPTIntroduction to ChatGPT
Introduction to ChatGPT
 
How to Argue Logically
How to Argue LogicallyHow to Argue Logically
How to Argue Logically
 
Evaluating Teaching: SECTIONS
Evaluating Teaching: SECTIONSEvaluating Teaching: SECTIONS
Evaluating Teaching: SECTIONS
 
Evaluating Teaching: MERLOT
Evaluating Teaching: MERLOTEvaluating Teaching: MERLOT
Evaluating Teaching: MERLOT
 
Evaluating Teaching: Anstey and Watson Rubric
Evaluating Teaching: Anstey and Watson RubricEvaluating Teaching: Anstey and Watson Rubric
Evaluating Teaching: Anstey and Watson Rubric
 
Evaluating Teaching: LORI
Evaluating Teaching: LORIEvaluating Teaching: LORI
Evaluating Teaching: LORI
 
Designing Teaching: Pause Procedure
Designing Teaching: Pause ProcedureDesigning Teaching: Pause Procedure
Designing Teaching: Pause Procedure
 
Designing Teaching: ADDIE
Designing Teaching: ADDIEDesigning Teaching: ADDIE
Designing Teaching: ADDIE
 
Designing Teaching: ASSURE
Designing Teaching: ASSUREDesigning Teaching: ASSURE
Designing Teaching: ASSURE
 
Designing Teaching: Laurilliard's Learning Types
Designing Teaching: Laurilliard's Learning TypesDesigning Teaching: Laurilliard's Learning Types
Designing Teaching: Laurilliard's Learning Types
 
Designing Teaching: Gagne's Nine Events of Instruction
Designing Teaching: Gagne's Nine Events of InstructionDesigning Teaching: Gagne's Nine Events of Instruction
Designing Teaching: Gagne's Nine Events of Instruction
 
Designing Teaching: Elaboration Theory
Designing Teaching: Elaboration TheoryDesigning Teaching: Elaboration Theory
Designing Teaching: Elaboration Theory
 
Universally Designed Learning Spaces: Some Considerations
Universally Designed Learning Spaces: Some ConsiderationsUniversally Designed Learning Spaces: Some Considerations
Universally Designed Learning Spaces: Some Considerations
 
Universal Design for Learning
Universal Design for Learning Universal Design for Learning
Universal Design for Learning
 

Recently uploaded

Planning a health career 4th Quarter.pptx
Planning a health career 4th Quarter.pptxPlanning a health career 4th Quarter.pptx
Planning a health career 4th Quarter.pptxLigayaBacuel1
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
Romantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptxRomantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptxsqpmdrvczh
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........LeaCamillePacle
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxEyham Joco
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.arsicmarija21
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 

Recently uploaded (20)

Planning a health career 4th Quarter.pptx
Planning a health career 4th Quarter.pptxPlanning a health career 4th Quarter.pptx
Planning a health career 4th Quarter.pptx
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
Romantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptxRomantic Opera MUSIC FOR GRADE NINE pptx
Romantic Opera MUSIC FOR GRADE NINE pptx
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
9953330565 Low Rate Call Girls In Rohini Delhi NCR
9953330565 Low Rate Call Girls In Rohini  Delhi NCR9953330565 Low Rate Call Girls In Rohini  Delhi NCR
9953330565 Low Rate Call Girls In Rohini Delhi NCR
 
Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........Atmosphere science 7 quarter 4 .........
Atmosphere science 7 quarter 4 .........
 
Types of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptxTypes of Journalistic Writing Grade 8.pptx
Types of Journalistic Writing Grade 8.pptx
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.AmericanHighSchoolsprezentacijaoskolama.
AmericanHighSchoolsprezentacijaoskolama.
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 

Containers and Docker

  • 2. Cloud Administration • Aside from the base hardware on which they run, cloud infrastructures comprise hundreds or thousands of virtual resources such as compute and storage nodes • Administration of virtual infrastructures, as compared with hardware, is much more of a software-oriented activity
  • 3. Cloud Administration • Increasingly, software has to be designed and developed with the target deployment environment closely in mind • The term “DevOps” has come to mean the close cooperation of developers and operations engineers for the deployment and running of multi-component application stacks over complex virtualised environments
  • 4. Interoperability • A typical service comprises many layers of interoperating components • Each component has some arbitrary version and configuration
  • 5. Interoperability • Each component has some arbitrary number of dependencies on other components and operating system services and libraries • A large number of permutations of easily possible with just a small number of components
  • 6. Interoperability N x M problem Static Website Web Frontend Background Workers User DB Analytics DB Queue Dev VM QA Server Single Prod Server Online Cluster Public Cloud Dev Laptop Customer Servers ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
  • 8. An Analogy • Before 1960, most cargo was shipped break bulk. Shippers and carriers alike needed to worry about bad interactions between different types of cargo (e.g. if a shipment of anvils fell on a sack of bananas). • Similarly, transitions between different modes of transport were painful.
  • 10. An Analogy • The answer was found in the form of a standard shipping container. • The container can be sealed, and not to be re-opened until it reached its final destination
  • 12. Docker • Docker is a shipping container for code. • Enables any application and its dependencies to be packaged up as a lightweight, portable, self-sufficient container. • Containers have standard operations, thus enabling more automation.
  • 14. Virtual Machine Vs. Container Host OS Docker Server
  • 15. Virtual Machine Vs. Container • A container comprises an application and its dependencies. • Containers serve to isolate processes which run in isolation in userspace on the host's operating system. • Traditional hardware virtualization (e.g. VMWare, KVM, Xen, EC2) aims to create an entire virtual machine.
  • 16. Virtual Machine Vs. Container • Each virtualized application contains not only the application (which may only be 10's of MB) along with the binaries and libraries needed to run that application, and an entire Guest operating System (which may measure in 100s of GB).
  • 17. Virtual Machine Vs. Container • Since all of the containers share the same operating system (and, where appropriate, binaries and libraries), they are significantly smaller than VMs • Possible to store 100s of containers on a physical host
  • 18. Virtual Machine Vs. Container • Since they utilize the host operating system, restarting a container does not mean restarting or rebooting the operating system. Thus, containers are much more portable and much more efficient for many use cases.
  • 19. Virtual Machine Vs. Container • With a traditional VM, each application, each copy of an application, and each slight modification of an application requires creating an entirely new VM. • A new application on a host need only have the application and its binaries/libraries. There is no need for a new guest operating system.
  • 20. Virtual Machine Vs. Container • If you want to run several copies of the same application on a host, you do not even need to copy the shared binaries. • Finally, if you make a modification of the application, you need only copy the differences.
  • 22. Docker: Introduction • Docker is an open source, community- backed project, originally developed by DotCloud • The project aims to create an application encapsulation environment using Linux containers for its isolation environment
  • 23. Docker: Introduction • Docker addresses one of the biggest challenges in cloud service operations management: • application deployment and • component interoperability in complex, multi-node environments
  • 24. Docker: Introduction • Docker is an open platform for developers and sys admins to build, ship, and run distributed applications. • As a result, IT/IS can ship faster and run the same app, unchanged, on laptops, datacentres, VMs, and on any cloud
  • 25. Docker: Introduction • Enables apps to be quickly assembled from components and eliminates the friction between development, QA, and production environments. • It consists of: • Docker Engine, a portable, lightweight runtime and packaging tool, • Docker Hub, a cloud service for sharing applications and automating workflows
  • 26. Docker: Introduction • It consists of: • Docker Engine, a portable, lightweight runtime and packaging tool, • Docker Hub (or Registry), a cloud service for sharing applications and automating workflows
  • 27. Docker: Introduction • Containers are designed to run on virtually any Linux server. The same container that that a developer builds and tests on a laptop will run at scale, in production, on VMs, bare-metal servers, OpenStack clusters, public instances, or combinations of the above.
  • 28. Docker: Introduction • Developers can build their application once, and then know that it can run consistently anywhere. Operators can configure their servers once, and then know that they can run any application.
  • 32. Testing and Qualification • Before a service update can be rolled to production, it must be tested and qualified • Ideally, to make testing easier and to have any kind of confidence in quality, the change between an update and a previously working configuration should be small – operations objective • This need invariably conflicts with the need to patch and advance the underlying software – developer’s objective
  • 33. Update Example • Suppose that a web service is running a particular version of PostgreSQL (a relational database) with a particular version of Memcached (a memory cache). • Each service is known to work with a particular OS version, say Ubuntu 14.04. • Now suppose, a critical fix is required for PostgreSQL but that update will only work with a later version of Ubuntu
  • 34. Update Example • The problem is that the server OS would need to be updated but that update is not qualified to work with the current version of Memcached. • A newer version of Memcached would be need too – this is known as a dependency cascade
  • 35. Update Example • Suppose, to make matters worse, the new version of Memcached would not work with the middleware version it services. Now we could have further upstream dependency cascades. • What do we do?
  • 36. Update Example • Solution #1: Split Memcached and PostgreSQL services onto different VMs. This would work but further complicates the deployment mesh and forces single- role-per VM policy, reducing flexibility • Solution #2: Containerise the PostgreSQL and Memcached services inside Docker
  • 37. Docker: How it Works • Starting with a base image, say some version of Ubuntu, the developer can build a bespoke container for hosting a single component, say PostgreSQL. • The built image encapsulates the OS version, updates, libraries and application components
  • 38. Docker: How it Works • Docker can animate the image into a running container • The container transparently runs a fully isolated OS instance within the host machine • Resources outside the container are not visible to anything inside
  • 39. Docker: How it Works • Docker images are built on a union filesystem (AUFS) • Updates to the filesystem by in-container applications are visible as discrete changes which can be preserved (forming named, image snapshots) or thrown away
  • 40. Docker: How it Works • Containers have their own virtual networking layer with automatically assigned IP addresses which are visible in the host system • Docker supports TCP/IP port mapping and forwarding from the host
  • 41. Docker: How it Works • The philosophy for building a Docker component mesh is to have the highest degree of componentisation as possible:
  • 42. Docker: How it Works • For example, a LAMP stack would look like the following: • MySQL container(s) • Linked MySQL data container • Apache (or Nginx) and PHP container(s) • Memcached container(s) • Each one can run on top of different Linux OS versions and be updated independently
  • 43. Docker: How it Works • Docker supports automated, script-driven image generation. • A Dockerfile specifies the following: • Base Linux image • Individual software installation commands • TCP/IP ports to expose • Default command(s) to execute when container is run • https://docs.docker.com/engine/reference/builder/
  • 44. Docker: How it Works • Consult the latest docs at the official site to see what it supported for your target platform • https://docs.docker.com/install/ • Linux, MacOS and Windows supported (Mac and Windows use virtualised Linux to make this work)
  • 46. The Good, the Bad, and the Interesting of Docker
  • 48. Docker: The Benefits • Make the entire lifecycle more efficient, consistent, and repeatable • Increase the quality of code produced by developers • Eliminate inconsistencies between development, test, production, and customer environments
  • 49. Docker: The Benefits • Support segregation of duties • Significantly improves the speed and reliability of continuous deployment and continuous integration systems • Because the containers are so lightweight, address significant performance, costs, deployment, and portability issues normally associated with VMs
  • 50. Docker: The Benefits • Because any given container only runs some subset of a service’s total number of components, the surface area for an attack on a service is highly fragmented
  • 51. Docker: The Benefits • Further, only components which need to be exposed on a network should be network- facing, allowing everything else to be isolated on internally secured networks • For example, a reverse HTTP container proxy in front of the middeware and database containers which are hidden
  • 53. Docker: The Weaknesses • It does not provide cross-platform compatibility which means that if an application is designed to run in a Docker container on Windows, then it cannot run on Linux Docker container • Docker is only suitable when the development OS and the testing OS are same
  • 54. Docker: The Weaknesses • It is not good for application that requires rich GUI • It is difficult to manage large amount of containers • It does not provide any solution for data backup and recovery
  • 56. Docker: Interesting • It Allows You to Run Your Own Malware Analysis Engine • Sandboxing and isolation are central to today's malware analysis mechanisms; to this end, Docker can be a lightweight alternative to complete virtualization. This REMnux project provides Docker images for malware analysis, giving information security professionals an easy way to set up tools and environments for malware detonation.
  • 57. Docker: Interesting • It Allows You to Containerize Your Skype Sessions • Wish you could Skype Grandma in complete isolation? By running your Skype sessions inside a Docker container, you can do just that.
  • 58. Docker: Interesting • It Allows You to Manage Your Raspberry Pi Cluster With Docker Swarm • Using the Docker Machine, you can install Swarm on Raspberry Pi to setup a Raspberry Pi Swarm cluster.