SlideShare a Scribd company logo
1 of 96
Download to read offline
Containers: Portable, repeatable user-oriented application delivery II
HPC Saudi 2018 - KAU
#dockerbday
Christian Kniep @CQnib
Walid Shaari @walidshaari
AGENDA : Good Morning Containers
9:00  - 10:30          Welcome, Networking, Socializing, Introduction     
10:30  -  11:00       Tea Break 
 11:00 - 12:00       Hands on: Play with Docker Birthday 5 Labs
12:00 - 13:00 Lunch
13:00  - 14:30        Coffee break
14:30  - 16:00        Play more with containers ecosystem
$id Christian
Over ten-year journey rooted in the industrial, automotive HPC in Germany, Christian started his career in Bull R&D supporting CAE
applications and VR installations.
Co-founded the container and cloud workshop in ISC HPC conference when told at a meeting that HPC can not learn anything from
the emerging Cloud and BigData companies.
Since then, he is curious and leading DevOps and containerization effort wherever he goes.
Just before Docker, he worked on the cloud-stack team at Sony PlayStation.
Christian joined Docker Inc in 2017 to help push the adoption forward and be part of the innovation instead of an external bystander.
During the day he helps Docker customers in the EMEA region to fully utilise the power of containers; at night he likes to explore new
emerging trends by containerising them first and seek application in the nebulous world of DevOps.
@kniepbert
christian.kniep@docker.com
https://www.linkedin.com/in/christian-kniep-3004b053/
$id walid
Passionate about Openness, Open Source, DevOps, Infosec
Team member of the Expec Computer Center systems division
Red Hat Certified Architect RHCA V
Certified Kubernetes Administrator CKA
SANS GIAC Incident handler, Forensics and Web security certified.
Dhahran Docker & Ansible meetup organizer “Community Leader”
@walidshaari
walid.shaari@linux.com
https://www.linkedin.com/in/walidshaari/
https://github.com/walidshaari
Join the Docker Student
Community! Sign up here:
http://dockr.ly/students (with your school email) for
access to our free Docker Student Developer Kit and
more!
Become a Docker
Campus Ambassador!
For leaders on campus who want to help their
peers learn Docker! Learn more and apply here:
http://dockr.ly/campus-ambassador
Are you a student?
Docker Community Leader!
Docker Captain
Docker Mentor
Docker Active User
What, If you are not?
Let's get to know each other
Assuming everyone knows a bit of Linux, Unix, or Mac OSX CLI ?
Development, Operations, Security, Research, Business, Others? 
DevOps
Configuration management
Containers
Schedulers
Containers ecosystem
Clusters, Load balancers, Orchestration
Goal
Up and running with containers ecosystem
informal interactive workshop format
Happy 5th Birthday Docker! #dockerbday
March 19-25, 2018
Docker Bday #5 Celebrations Worldwide!
100+ events
worldwide!
Docker Momentum
Thank You for 5 Amazing Years!
Docker EE
commercial
customers
450+
Job listings on
LinkedIn
15K
Container
downloads
37B 3.5M 200+
Active Docker
user groups
Dockerized
apps
Containers are the “Fastest Growing Cloud Enabling Technology”
By 2020, more than 50% of global
organizations will be running
containers in production.
-Gartner
Title source: 451 Research
2017
24B
PULLS
Lab Instructions
STEP 1: Visit
http://training.play-with-docker.com/beginner-linux/
Or https://goo.gl/xYKV8g
Create Docker hub/store account: https://hub.docker.com/
Join the Docker Community - dockr.ly/community
Join the slack channel: #5th-bday
#dockerbday
STEP 2:
Take a
#dockerselfie
#dockerbday
© 2013-2016 Docker, Inc. All rights reserved
HPC
HPC or Scientific Computing?
▪HPC workloads mostly
▪ Runs on Linux
▪ Preferably on bare-metal for maximum performance, lower overhead
▪HPC Application
▪ Broken into smaller parallel distributed problems across a cluster of nodes.
▪ Utilizes interprocess communications heavily via shared memory, or across the
network.
HPC Status Quo
▪ HPC dominated by Academics research and discovery 
▪ Business HPC by the industry in the last 5-10 years seen an increase in HPC
interest (Automotive, Finance, O&E)
▪ Possible constraints:
▪ Snowflake deployments, each HPC cluster/supercomputer is build in mind with
specific use cases
▪ Long lived nodes.
▪ Bloated/drift/unclean maybe diskless reboots
▪ Reboot time, or launching app could be long due to system/memory checks, bootstrapping 
▪ Old Linux distribution
▪ Fixed installation based on single enterprise distro  (Scientific, RHEL) 
▪ Old kernel features
HPC workload
runs on the cloud
25%
Source: https://www.openstack.org/assets/survey/Public-User-Survey-Report.pdf
> 38%
scientific/technical
computing already
happening on
Openstack
https://aws.amazon.com/education/awseducate/
https://azure.microsoft.com/en-us/pricing/member-offers/student-starter/
https://cloud.google.com/edu/
Container Technology 101
Traditional vs. Container Virtualization
Stacked View
Hardware
Host Kernel
Userland
Services Hypervisor (type-2)
Kernel
Userland
Services1 Services2
Userland
Kernel
Hardware
Host Kernel
Userland
Services
Userland
appB appC
Userland
Cnt1 Cnt2
VM1 VM2
Traditional Virtualization os-virtualization
VM-shortcuts
(PVM,pci-passthrough)
hardware
hypervisor (type-1)
container
Traditional Virtualization
kernel
Interface View
libs
From Application to Kernel
application
libs
application
lib-calls
102
syscalls
101
hypercalls
hardware
kernel
hw-calls
os-virtualization
Container Technology 101
Namespaces
Namespaces
Processes Isolation
● host sees all processes with real PID from the Kernels perspective
● first process within PID namespace gets PID=1
Host
cnt0
ps -ef
cnt1
start.sh
java -jar ..
cnt2
start.sh
java -jar ..
health.sh
Resource Isolation of Process Groups
7 as of Kernel 4.10
1. MNT: Controls mount points
2. PID: Individual process table
3. NET: Network resources (IPs, routing,...)
4. IPC: Prevents the use of shared memory between processes
5. UTS: Individual host- and domain name
6. USR: Maps container UID to a different UID of the host
7. CGRP: Hides system cgroup hierarchy from container
Other (incomplete list):
● RDMA
● Syslog
● Time
Container Namespaces
A starting container gets his own namespaces.
PIDMNT IPCNET USR
Host
UTS CGRP
cnt0 cnt1 cnt2
But can share namespaces with other containers or even the host
Host
All In
When using all host namespaces - we are on the host (almost like ssh).
PIDMNT IPCNET USRUTS CGRP
cnt0
$ docker run -ti --rm 
--privileged 
--security-opt=seccomp=unconfined 
--pid=host 
--uts=host 
--ipc=host 
--net=host 
-v /:/host 
ubuntu bash
root@linuxkit-025000000001:/# chroot /host
/ # ash
/ #
Container Technology 101
cgroups / Layering Capabilities
CGroups
While namespaces isolate,
Control Groups constraint resources.
Overlay Filesystem
Compose a FS from multiple pieces
ubuntu:16.04
openjre:9-b114
appA.jar:1.1 appB.jar
ARG FROM openjre:9-b114
COPY appB.jar /usr/local/bin/
CMD [“java”, “-jar”, “/usr/local/bin/appB.jar”]
ARG FROM openjre:9-b114
COPY appA.jar /usr/local/bin/
CMD [“java”, “-jar”, “/usr/local/bin/appA.jar”]
FROM ubuntu:16.04
ARG JRE_VER=9~b114-0ubuntu1
RUN apt-get update 
&& apt-get install -y openjdk-9-jre-headless=${JRE_VER} 
&& java -version
openjre:9-b117
First Step, toward a container definition?
• What matters most? The application or data
• The application can be a process or a set of processes
• The use case might be not a running app
• Set of tools  to develop an app
• Set of scripts "apps" that are part of a pipeline
• complete appliance
• Isolated contained environment "Encapsulation"
• Technical synonyms 
• chroot
• jail
• partition
• namespace
• zone
chroot/jail
A chroot on Unix operating systems is an operation that
changes the apparent root directory for the current running
process and its children. A program that is run in such a
modified environment cannot name (and therefore normally
cannot access) files outside the designated directory tree.
The term "chroot" may refer to the chroot(2) system call or
the chroot(8) wrapper program. The modified environment
is called a chroot jail.
https://en.wikipedia.org/wiki/Chroot
THE HISTORY OF CONTAINERS
2008:
KERNEL & USER
NAMESPACES
2008:
LINUX
CONTAINER
PROJECT (LXC)
2013:
DOTCLOUD
BECOMES
DOCKER
2013:
RED HAT
ENTERPRISE
LINUX
2000
2010
2005
2015
2000:
JAILS ADDED
TO FREEBSD
2006:
PROCESS
CONFINEMENT
2007:
GPC RENAMED
CGROUPS
2014:
GOOGLE
KUBERNETES
2015:
RED HAT
CONTAINER
PLATFORM
2001:
LINUX -VSERVER
PROJECT
2015:
STANDARDS VIA
OCI AND CNCF
2003:
SELINUX
ADDED TO LINUX
MAINLINE
2005:
FULL RELEASE
OF SOLARIS
ZONES
2013:
DOTCLOUD PYCON
LIGHTNING TALK
Docker
provides
simple user
tools and
images.
Containers go
mainstream
Thank the giants
CONTAINERS?
WHAT ARE THEY REALLY?
Linux features?
Namespace
cgroupsLXC
Union file systems
Configuration management?
Virtualization technology?
npm
jar
Packaging ?
rpm
deb
tar.gz
Virtual/environment management ?
Sandboxing?
chroot
BSD jail Solaris zones
IBM VM/370 (1972)
seccomp
IT DEPENDS
Manual
Configuration
Traditional VMs
Less Portable
Minimal overhead
Most Portable
Lots of overhead
Configuration
Management tools
Containers
Docker
Intel Clear ContainersSingularity
LXC/LXD
Non-Repeatable Repeatable
rkt
Container
Containment, isolation, or encapsulation of an environment.
Machine container:
Encapsulates a complete system image. e.g. Ubuntu, RHEL, Scientific Linux.
Application container:
Encapsulates a service/software. e.g. Django, ROR, Gitlab, redis, Openfoam, kafka, spark.
what is the smallest application container?
Possible HPC Caveats/Constraints
1. Memory/storage deduplication
2. Code Optimization for specific architecture
3. Limited take on HPC specific orchestration and scheduling
4. Hardware topology assumptions (e.g. GPU brand, interconnect)
5. Chroot based containers have none/limited tooling (e.g. introspection )
6. Chroot based containers might be hard to scan for security vulnerabilities,
hardening, and composition.
DEVELOPERS LOVE DOCKER
42https://www.slideshare.net/dberkholz/cloud-native-in-the-enterprise-realworld-data-on-container-and-microservice-adoption 451 Research
KUBERNETES SEEING THE MOST DEVELOPER
TRACTION
43https://www.slideshare.net/dberkholz/cloud-native-in-the-enterprise-realworld-data-on-container-and-microservice-ado
ption
Container Runtime
docker < 1.11.0
└── systemd
└── docker run OpenFoam
└── Docker Engine
└── OpenFoam
docker > 1.11.0
└── systemd
└── docker run OpenFoam
└── Docker Engine
└── containerd
└── runc
└── OpenFoam
rkt > 1.0
└── systemd
└── rkt run OpenFoam
└── OpenFoam
singularity (2.2.x)
└── systemd/(init)
└── bash
└── OpenFoam
https://medium.com/@adriaandejonge/moving-from-docker-to-rkt-310dc9aec938#.1glm3o1t3
Other runtime
By the way:
https://medium.com/containercamp/35-people-in-container-tech-you-should-be-following-5300bd4766a0
Image formats
Layered
Overlay filesystems/Graph drivers
chrootDirectory
Archive






#OCI
#ACI
https://blog.jessfraz.com/post/the-brutally-honest-guide-to-docker-graphdrivers/
Use Cases: Packaging
Agnostic packaging
Captures
○ Dependencies
○ Environment
○ Configurations
○ Executables
○ How about data?
○ What Else?
■ hint: m*
Pack once, Run everywhere
http://hpcbios.readthedocs.io/en/latest/HPCBIOS_2012-92.html
#EasyBuild #lmod #GUIX #NYU-Environment
Use Case: Portability
Portable/Scalable across
● platforms
● Distributions
● Environments
Separation of concerns, e.g. development pack and ship, operations scale and deploy.
development ensures app is resilient, operations enure infra is HA resilient and scalable
Use Case: Portability
Portable/Scalable across
● systems
● subsystems
● Anywhere
Use Case: Reproducible
Paolo Di Tommaso from the Center for Genomic Regulation presented : Manage Reproducibility of Computational Workflows with Docker Containers
and Nextflow.
https://www.slideshare.net/insideHPC/reproducible-computational-pipelines-with-docker-and-nextflow
https://youtu.be/Doo9H2-gBAk
Cloud use Case
- Transport
- Security CIA
- at rest encrypted signed image
- at runtime:
- platform specific
- scalability issues
- PMIx to the rescue?!
Data Center current state
SchedulerScheduler
Jobs
Jobs
Jobs
Jobs
Jobs
Jobs
Scheduler
Jobs
Jobs
Jobs
Cluster Management A
Cluster Management B
Cluster Management C
Data Center
Secure Allocation of Resources
VC3
BigData
VC1
Infra
VC2
HPC
SchedulerSchedulerScheduler
DataCenter
Scheduler
jobs
Jobs
Jobs
Jobs
Jobs
Jobs
Jobs
Jobs
2nd
Generation Cluster Management
Mesos
▪ Mature, Open Source Apache Project
▪ Cluster Resource Manager
▪ Scalable to over 10,000s of nodes
▪ Fault tolerant, no single point of failure
▪ Multi-tenancy with strong resource isolation
▪ Improved resource utilization
Docker Performance
http://www.theregister.co.uk/2014/08/18/docker_kicks_kvms_butt_in_ibm_tests
NVIDIA Example use case
https://github.com/NVIDIA/nvidia-docker
MPI batch jobs
● use ssh inside container
● dssh
● Capitalize on openmpi
○ Openmpi/pbs/TORQUE
○ Process Management Interfaces PMIx
● Singularity examples uses Openmpi/Slurm
● mesos
● Commercial Univa support
● Research, and contribute ideas, pull requests to swarm,
kubernetes, slurm, pbs pro
● Joing the HPC-SIG
DISCLAIMER
@kelseyhightower  :
The problem with most blog posts attempting to compare two different systems is
the author not having the sufficient experience to do so.
https://twitter.com/kelseyhightower/status/826974374536187905
© 2013-2016 Docker, Inc. All rights reserved
1. Introduction to Docker
#dockerbday
What is Docker?
The leading open source platform to pack, ship and run
apps as lightweight containers.
Developers: use Docker to eliminate “works on my machine” problems when
collaborating on code with co-workers.
Operators: use Docker to run and manage apps side-by-side in isolated
containers to get better compute density.
Enterprises: use Docker to build agile software delivery pipelines to ship new
features faster, more securely and with confidence for both
Linux and Windows Server apps.
#dockerbday
• Standardized packaging for
software and dependencies
• Isolate apps from each other
• Share the same OS kernel
• Works for all major Linux
distributions
• Containers native to Windows
Server 2016
What are Docker containers?
Containers and VMs together
Containers and VMs together provide a tremendous amount of
flexibility for IT to optimally deploy and manage apps.
Standards
https://medium.com/cri-o/understanding-container-standards-1e1448cbb92c
Docker Architecture
Linux Container Implementation & Ecosystem
Christian Kniep, v2018-01-18
Technical Account Manager
Architecture on Linux
Operating System
Control Groups
(cgroups)
Namespaces
(mnt,pid,ipc,...)
Layer Capabilities
AUFS,overlay,...
Other OS
Functionality
Docker Engine
REST interface
libcontainerd libnetwork storage plugins
containerd + runc
Docker Client Docker Compose Docker Registry Docker Swarm/K8s
Runtime
runc + containerd
●
● containerd
An industry-standard container runtime with an emphasis on simplicity, robustness and portability.
● runc
CLI tool for spawning and running containers according to the OCI specification
rootfs
config.json
runc executed container
libnetwork
Provide IP connectivity
The goal of libnetwork is to deliver a robust Container Network
Model that provides a consistent programming interface and the
required network abstractions for applications.
storage driver
Handling OverlayFS
The storage driver controls how images and containers are stored and
managed on your Docker host.
Plugins
Extend Functionality of the Engine
Framework to ‘intercept’ certain API calls and act on them.
Current supported drivers:
- VolumeDriver
- NetworkDriver
- IPAMDriver
- LogDriver
- MetricsCollector
- Authentication (authz)
// VolumeDriver
type Driver interface {
Create(Request) Response
List(Request) Response
Get(Request) Response
Path(Request) Response
Mount(Request) Response
Unmount(Request) Response
Capabilities(Request) Response
}
Architecture on Windows
Operating System
Other OS
Functionality
Docker Engine
REST interface
libcontainer libnetwork storage plugins
Docker Client Docker Compose Docker Registry Docker Swarm/K8s
Host Compute Service
Control Groups Namespaces Layer Capabilities
Object Namespace,
Process Table,
Networking
Job Objects Registry, Union like
filesystem extension
Docker CE/EE
Docker is the only Containers-as-a-Service platform for IT that manages and secures
diverse applications across disparate infrastructure, both on-premises and in the cloud
Multi-Architecture
Operations
Infrastructure Independence
Secure Software
Supply Chain
COST SAVINGS
Linux Mainframe AWS Azure Other Public
Clouds
Windows
ENGINE FOR INNOVATION
DOCKER ENTERPRISE EDITION
Docker Enterprise Edition Capabilities
Enterprise Edition
Optimized Container Engine
Integrated App and Cluster
Management
Certification and Support
Policy Management
Image Scanning and
Monitoring
Secure Access and
User Management
Content Trust and
Verification
Application and
Cluster Management
Image Management
Security
Distributed State
Network
Container Runtime
Volumes
Orchestration
Application Composition, Deployment and Reliability
Certified Containers Certified Plugins
Certified Infrastructure
© 2013-2016 Docker, Inc. All rights reserved
Singularity
From “Michael Bauer” Gent talks
Fosdem/UoG EASYBuild
Scientific computing container
Singularity Container Selection Criteria
Docker vs Singularity vs Shifter in an HPC environment
© 2013-2016 Docker, Inc. All rights reserved
rkt
What is rkt?
From the rkt GitHub page, "rkt (pronounced "rock-it") is a CLI for running app
containers on Linux. rkt is designed to be secure, composable, and
standards-based.
#ACI
Why rkt?
● Don’t want to run dockerd daemon.
● Don’t require the Docker’s rich feature set/ecosystem.
● Can’t trust Docker security yet, even though it is no longer an issue.
● I have 4.3+ Linux kernel, and systemd version > 222
rkt
# rkt run --interactive docker://ubuntu --insecure-options=image
Thank you
DOCKER HISTORY
▪ Started as internal project @ dotcloud
▪ Open Sourced in 2013
▪ Developed in the open
http://www.taos.com/from-dotcloud-to-docker/
Forces and Motivations behind containers
90
Loosely
Coupled
Services
Many Small
Servers
~2000 Today
Monolithic
Big Servers
Slow
changing
Rapidly
updated
THE DEPLOYMENT PROBLEM
Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!  II
Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!  II
Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!  II
Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!  II
Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere!  II

More Related Content

What's hot

Cloud Foundry, the Open Platform as a Service - Oscon - July 2012
Cloud Foundry, the Open Platform as a Service - Oscon - July 2012Cloud Foundry, the Open Platform as a Service - Oscon - July 2012
Cloud Foundry, the Open Platform as a Service - Oscon - July 2012
Patrick Chanezon
 
Building a Secure and Resilient Foundation for Banking at Intesa Sanpaolo wit...
Building a Secure and Resilient Foundation for Banking at Intesa Sanpaolo wit...Building a Secure and Resilient Foundation for Banking at Intesa Sanpaolo wit...
Building a Secure and Resilient Foundation for Banking at Intesa Sanpaolo wit...
Docker, Inc.
 
vBACD - Distributed Petabyte-Scale Cloud Storage with GlusterFS - 2/28
vBACD - Distributed Petabyte-Scale Cloud Storage with GlusterFS - 2/28vBACD - Distributed Petabyte-Scale Cloud Storage with GlusterFS - 2/28
vBACD - Distributed Petabyte-Scale Cloud Storage with GlusterFS - 2/28
CloudStack - Open Source Cloud Computing Project
 

What's hot (20)

Accelerate your software development with Docker
Accelerate your software development with DockerAccelerate your software development with Docker
Accelerate your software development with Docker
 
Accelerate your development with Docker
Accelerate your development with DockerAccelerate your development with Docker
Accelerate your development with Docker
 
DevOps Indonesia #5 - The Future of Containers
DevOps Indonesia #5 - The Future of ContainersDevOps Indonesia #5 - The Future of Containers
DevOps Indonesia #5 - The Future of Containers
 
Powering Microservices with Docker
Powering Microservices with DockerPowering Microservices with Docker
Powering Microservices with Docker
 
A Container-Centric Methodology for Benchmarking Workflow Management Systems
A Container-Centric Methodology for Benchmarking Workflow Management SystemsA Container-Centric Methodology for Benchmarking Workflow Management Systems
A Container-Centric Methodology for Benchmarking Workflow Management Systems
 
Cloud Foundry, the Open Platform as a Service - Oscon - July 2012
Cloud Foundry, the Open Platform as a Service - Oscon - July 2012Cloud Foundry, the Open Platform as a Service - Oscon - July 2012
Cloud Foundry, the Open Platform as a Service - Oscon - July 2012
 
Building a Secure and Resilient Foundation for Banking at Intesa Sanpaolo wit...
Building a Secure and Resilient Foundation for Banking at Intesa Sanpaolo wit...Building a Secure and Resilient Foundation for Banking at Intesa Sanpaolo wit...
Building a Secure and Resilient Foundation for Banking at Intesa Sanpaolo wit...
 
Full stack development best practice and toolset
Full stack development best practice and toolsetFull stack development best practice and toolset
Full stack development best practice and toolset
 
OpenShift Overview - Red Hat Open School 2017
OpenShift Overview - Red Hat Open School 2017OpenShift Overview - Red Hat Open School 2017
OpenShift Overview - Red Hat Open School 2017
 
Crash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud ComputingCrash Course in Open Source Cloud Computing
Crash Course in Open Source Cloud Computing
 
vBACD - Distributed Petabyte-Scale Cloud Storage with GlusterFS - 2/28
vBACD - Distributed Petabyte-Scale Cloud Storage with GlusterFS - 2/28vBACD - Distributed Petabyte-Scale Cloud Storage with GlusterFS - 2/28
vBACD - Distributed Petabyte-Scale Cloud Storage with GlusterFS - 2/28
 
[DevDay 2017] OpenShift Enterprise - Speaker: Linh Do - DevOps Engineer at Ax...
[DevDay 2017] OpenShift Enterprise - Speaker: Linh Do - DevOps Engineer at Ax...[DevDay 2017] OpenShift Enterprise - Speaker: Linh Do - DevOps Engineer at Ax...
[DevDay 2017] OpenShift Enterprise - Speaker: Linh Do - DevOps Engineer at Ax...
 
HPE’s Erik Vogel on Key Factors for Driving Success in Hybrid Cloud Adoption ...
HPE’s Erik Vogel on Key Factors for Driving Success in Hybrid Cloud Adoption ...HPE’s Erik Vogel on Key Factors for Driving Success in Hybrid Cloud Adoption ...
HPE’s Erik Vogel on Key Factors for Driving Success in Hybrid Cloud Adoption ...
 
Deploy microservices in containers with Docker and friends - KCDC2015
Deploy microservices in containers with Docker and friends - KCDC2015Deploy microservices in containers with Docker and friends - KCDC2015
Deploy microservices in containers with Docker and friends - KCDC2015
 
Red Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform OverviewRed Hat OpenShift Container Platform Overview
Red Hat OpenShift Container Platform Overview
 
Future of Open Source in a Cloudy World
Future of Open Source in a Cloudy WorldFuture of Open Source in a Cloudy World
Future of Open Source in a Cloudy World
 
Container Intrusions - Assessing the Efficacy of Intrusion Detection and Anal...
Container Intrusions - Assessing the Efficacy of Intrusion Detection and Anal...Container Intrusions - Assessing the Efficacy of Intrusion Detection and Anal...
Container Intrusions - Assessing the Efficacy of Intrusion Detection and Anal...
 
LinuxFest Northwest: Crash Course in Open Source Cloud Computing
LinuxFest Northwest: Crash Course in Open Source Cloud Computing LinuxFest Northwest: Crash Course in Open Source Cloud Computing
LinuxFest Northwest: Crash Course in Open Source Cloud Computing
 
Docker OpenStack Cloud Foundry
Docker OpenStack Cloud FoundryDocker OpenStack Cloud Foundry
Docker OpenStack Cloud Foundry
 
InteropNY/CloudConnect 2014 - Quick Crash Course in Open Source Cloud Computing
InteropNY/CloudConnect 2014 - Quick Crash Course in Open Source Cloud ComputingInteropNY/CloudConnect 2014 - Quick Crash Course in Open Source Cloud Computing
InteropNY/CloudConnect 2014 - Quick Crash Course in Open Source Cloud Computing
 

Similar to Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere! II

Using Docker container technology with F5 Networks products and services
Using Docker container technology with F5 Networks products and servicesUsing Docker container technology with F5 Networks products and services
Using Docker container technology with F5 Networks products and services
F5 Networks
 
Docker 101 - all about Docker containers
Docker 101 - all about Docker containers Docker 101 - all about Docker containers
Docker 101 - all about Docker containers
Ian Lumb
 

Similar to Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere! II (20)

Bahrain ch9 introduction to docker 5th birthday
Bahrain ch9 introduction to docker 5th birthday Bahrain ch9 introduction to docker 5th birthday
Bahrain ch9 introduction to docker 5th birthday
 
Docker Bday #5, SF Edition: Introduction to Docker
Docker Bday #5, SF Edition: Introduction to DockerDocker Bday #5, SF Edition: Introduction to Docker
Docker Bday #5, SF Edition: Introduction to Docker
 
The world of Docker and Kubernetes
The world of Docker and Kubernetes The world of Docker and Kubernetes
The world of Docker and Kubernetes
 
Using Docker container technology with F5 Networks products and services
Using Docker container technology with F5 Networks products and servicesUsing Docker container technology with F5 Networks products and services
Using Docker container technology with F5 Networks products and services
 
What is Docker & Why is it Getting Popular?
What is Docker & Why is it Getting Popular?What is Docker & Why is it Getting Popular?
What is Docker & Why is it Getting Popular?
 
Docker, Cloud Foundry, Bosh & Bluemix
Docker, Cloud Foundry, Bosh & BluemixDocker, Cloud Foundry, Bosh & Bluemix
Docker, Cloud Foundry, Bosh & Bluemix
 
Programming the world with Docker
Programming the world with DockerProgramming the world with Docker
Programming the world with Docker
 
Transforming Application Delivery with PaaS and Linux Containers
Transforming Application Delivery with PaaS and Linux ContainersTransforming Application Delivery with PaaS and Linux Containers
Transforming Application Delivery with PaaS and Linux Containers
 
'Package Once/Run Anywhere' Big Data and HPC workloads
'Package Once/Run Anywhere' Big Data and HPC workloads'Package Once/Run Anywhere' Big Data and HPC workloads
'Package Once/Run Anywhere' Big Data and HPC workloads
 
DockerCon SF 2015: Docker Community in China
DockerCon SF 2015: Docker Community in ChinaDockerCon SF 2015: Docker Community in China
DockerCon SF 2015: Docker Community in China
 
Docker and containerization
Docker and containerizationDocker and containerization
Docker and containerization
 
Tampere Docker meetup - Happy 5th Birthday Docker
Tampere Docker meetup - Happy 5th Birthday DockerTampere Docker meetup - Happy 5th Birthday Docker
Tampere Docker meetup - Happy 5th Birthday Docker
 
Docker EE 2.0 choice security agility by Erik Tan,Tech Insights Singapore - 2...
Docker EE 2.0 choice security agility by Erik Tan,Tech Insights Singapore - 2...Docker EE 2.0 choice security agility by Erik Tan,Tech Insights Singapore - 2...
Docker EE 2.0 choice security agility by Erik Tan,Tech Insights Singapore - 2...
 
Journey to the devops automation with docker kubernetes and openshift
Journey to the devops automation with docker kubernetes and openshiftJourney to the devops automation with docker kubernetes and openshift
Journey to the devops automation with docker kubernetes and openshift
 
Docker datascience pipeline
Docker datascience pipelineDocker datascience pipeline
Docker datascience pipeline
 
Docker 101 - all about Docker containers
Docker 101 - all about Docker containers Docker 101 - all about Docker containers
Docker 101 - all about Docker containers
 
HPC Cloud Burst Using Docker
HPC Cloud Burst Using DockerHPC Cloud Burst Using Docker
HPC Cloud Burst Using Docker
 
Containers the next era of computing
Containers the next era of computingContainers the next era of computing
Containers the next era of computing
 
Container Ecosystem and Docker Technology
Container Ecosystem and Docker TechnologyContainer Ecosystem and Docker Technology
Container Ecosystem and Docker Technology
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby project
 

More from Walid Shaari

Network Automation Journey, A systems engineer NetOps perspective
Network Automation Journey, A systems engineer NetOps perspectiveNetwork Automation Journey, A systems engineer NetOps perspective
Network Automation Journey, A systems engineer NetOps perspective
Walid Shaari
 

More from Walid Shaari (14)

Towards-cloud-native-HPC.pdf
Towards-cloud-native-HPC.pdfTowards-cloud-native-HPC.pdf
Towards-cloud-native-HPC.pdf
 
Aws ug dxb 2021 container series iv
Aws ug dxb 2021 container series  ivAws ug dxb 2021 container series  iv
Aws ug dxb 2021 container series iv
 
Open hybrid cloud
Open hybrid cloudOpen hybrid cloud
Open hybrid cloud
 
Okd wg kubecon marathon azure &amp; vsphere
Okd wg kubecon marathon azure &amp; vsphereOkd wg kubecon marathon azure &amp; vsphere
Okd wg kubecon marathon azure &amp; vsphere
 
K8s architecture meetup2- k8saraby
K8s architecture  meetup2- k8sarabyK8s architecture  meetup2- k8saraby
K8s architecture meetup2- k8saraby
 
Pydata 2020 containers meetup
Pydata  2020 containers meetup Pydata  2020 containers meetup
Pydata 2020 containers meetup
 
Dammam aws user group meetup
Dammam aws user group meetupDammam aws user group meetup
Dammam aws user group meetup
 
Network Automation Journey, A systems engineer NetOps perspective
Network Automation Journey, A systems engineer NetOps perspectiveNetwork Automation Journey, A systems engineer NetOps perspective
Network Automation Journey, A systems engineer NetOps perspective
 
Kick starting Network Automation
Kick starting Network AutomationKick starting Network Automation
Kick starting Network Automation
 
Docker Dhahran November 2017 meetup
Docker Dhahran November 2017 meetupDocker Dhahran November 2017 meetup
Docker Dhahran November 2017 meetup
 
Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...Containers - Portable, repeatable user-oriented application delivery. Build, ...
Containers - Portable, repeatable user-oriented application delivery. Build, ...
 
Docker Dhahran Nov 2016 meetup
Docker Dhahran Nov 2016 meetupDocker Dhahran Nov 2016 meetup
Docker Dhahran Nov 2016 meetup
 
What HPC can learn from DevOps?
What HPC can learn from DevOps?What HPC can learn from DevOps?
What HPC can learn from DevOps?
 
Docker 101 @KACST Saudi HPC 2016
Docker 101  @KACST Saudi HPC 2016Docker 101  @KACST Saudi HPC 2016
Docker 101 @KACST Saudi HPC 2016
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

Containers - Portable, repeatable user-oriented application delivery. Build, ship, run any app anywhere! II

  • 1. Containers: Portable, repeatable user-oriented application delivery II HPC Saudi 2018 - KAU #dockerbday Christian Kniep @CQnib Walid Shaari @walidshaari
  • 2. AGENDA : Good Morning Containers 9:00  - 10:30          Welcome, Networking, Socializing, Introduction      10:30  -  11:00       Tea Break   11:00 - 12:00       Hands on: Play with Docker Birthday 5 Labs 12:00 - 13:00 Lunch 13:00  - 14:30        Coffee break 14:30  - 16:00        Play more with containers ecosystem
  • 3. $id Christian Over ten-year journey rooted in the industrial, automotive HPC in Germany, Christian started his career in Bull R&D supporting CAE applications and VR installations. Co-founded the container and cloud workshop in ISC HPC conference when told at a meeting that HPC can not learn anything from the emerging Cloud and BigData companies. Since then, he is curious and leading DevOps and containerization effort wherever he goes. Just before Docker, he worked on the cloud-stack team at Sony PlayStation. Christian joined Docker Inc in 2017 to help push the adoption forward and be part of the innovation instead of an external bystander. During the day he helps Docker customers in the EMEA region to fully utilise the power of containers; at night he likes to explore new emerging trends by containerising them first and seek application in the nebulous world of DevOps. @kniepbert christian.kniep@docker.com https://www.linkedin.com/in/christian-kniep-3004b053/
  • 4. $id walid Passionate about Openness, Open Source, DevOps, Infosec Team member of the Expec Computer Center systems division Red Hat Certified Architect RHCA V Certified Kubernetes Administrator CKA SANS GIAC Incident handler, Forensics and Web security certified. Dhahran Docker & Ansible meetup organizer “Community Leader” @walidshaari walid.shaari@linux.com https://www.linkedin.com/in/walidshaari/ https://github.com/walidshaari
  • 5. Join the Docker Student Community! Sign up here: http://dockr.ly/students (with your school email) for access to our free Docker Student Developer Kit and more! Become a Docker Campus Ambassador! For leaders on campus who want to help their peers learn Docker! Learn more and apply here: http://dockr.ly/campus-ambassador Are you a student?
  • 6. Docker Community Leader! Docker Captain Docker Mentor Docker Active User What, If you are not?
  • 7. Let's get to know each other Assuming everyone knows a bit of Linux, Unix, or Mac OSX CLI ? Development, Operations, Security, Research, Business, Others?  DevOps Configuration management Containers Schedulers Containers ecosystem Clusters, Load balancers, Orchestration
  • 8. Goal Up and running with containers ecosystem informal interactive workshop format
  • 9. Happy 5th Birthday Docker! #dockerbday March 19-25, 2018
  • 10. Docker Bday #5 Celebrations Worldwide! 100+ events worldwide!
  • 11. Docker Momentum Thank You for 5 Amazing Years! Docker EE commercial customers 450+ Job listings on LinkedIn 15K Container downloads 37B 3.5M 200+ Active Docker user groups Dockerized apps
  • 12. Containers are the “Fastest Growing Cloud Enabling Technology” By 2020, more than 50% of global organizations will be running containers in production. -Gartner Title source: 451 Research 2017 24B PULLS
  • 13. Lab Instructions STEP 1: Visit http://training.play-with-docker.com/beginner-linux/ Or https://goo.gl/xYKV8g Create Docker hub/store account: https://hub.docker.com/ Join the Docker Community - dockr.ly/community Join the slack channel: #5th-bday #dockerbday
  • 15. © 2013-2016 Docker, Inc. All rights reserved HPC
  • 16. HPC or Scientific Computing? ▪HPC workloads mostly ▪ Runs on Linux ▪ Preferably on bare-metal for maximum performance, lower overhead ▪HPC Application ▪ Broken into smaller parallel distributed problems across a cluster of nodes. ▪ Utilizes interprocess communications heavily via shared memory, or across the network.
  • 17. HPC Status Quo ▪ HPC dominated by Academics research and discovery  ▪ Business HPC by the industry in the last 5-10 years seen an increase in HPC interest (Automotive, Finance, O&E) ▪ Possible constraints: ▪ Snowflake deployments, each HPC cluster/supercomputer is build in mind with specific use cases ▪ Long lived nodes. ▪ Bloated/drift/unclean maybe diskless reboots ▪ Reboot time, or launching app could be long due to system/memory checks, bootstrapping  ▪ Old Linux distribution ▪ Fixed installation based on single enterprise distro  (Scientific, RHEL)  ▪ Old kernel features
  • 18. HPC workload runs on the cloud 25%
  • 23. Container Technology 101 Traditional vs. Container Virtualization
  • 24. Stacked View Hardware Host Kernel Userland Services Hypervisor (type-2) Kernel Userland Services1 Services2 Userland Kernel Hardware Host Kernel Userland Services Userland appB appC Userland Cnt1 Cnt2 VM1 VM2 Traditional Virtualization os-virtualization VM-shortcuts (PVM,pci-passthrough)
  • 25. hardware hypervisor (type-1) container Traditional Virtualization kernel Interface View libs From Application to Kernel application libs application lib-calls 102 syscalls 101 hypercalls hardware kernel hw-calls os-virtualization
  • 27. Namespaces Processes Isolation ● host sees all processes with real PID from the Kernels perspective ● first process within PID namespace gets PID=1 Host cnt0 ps -ef cnt1 start.sh java -jar .. cnt2 start.sh java -jar .. health.sh
  • 28. Resource Isolation of Process Groups 7 as of Kernel 4.10 1. MNT: Controls mount points 2. PID: Individual process table 3. NET: Network resources (IPs, routing,...) 4. IPC: Prevents the use of shared memory between processes 5. UTS: Individual host- and domain name 6. USR: Maps container UID to a different UID of the host 7. CGRP: Hides system cgroup hierarchy from container Other (incomplete list): ● RDMA ● Syslog ● Time
  • 29. Container Namespaces A starting container gets his own namespaces. PIDMNT IPCNET USR Host UTS CGRP cnt0 cnt1 cnt2 But can share namespaces with other containers or even the host
  • 30. Host All In When using all host namespaces - we are on the host (almost like ssh). PIDMNT IPCNET USRUTS CGRP cnt0 $ docker run -ti --rm --privileged --security-opt=seccomp=unconfined --pid=host --uts=host --ipc=host --net=host -v /:/host ubuntu bash root@linuxkit-025000000001:/# chroot /host / # ash / #
  • 31. Container Technology 101 cgroups / Layering Capabilities
  • 32. CGroups While namespaces isolate, Control Groups constraint resources.
  • 33. Overlay Filesystem Compose a FS from multiple pieces ubuntu:16.04 openjre:9-b114 appA.jar:1.1 appB.jar ARG FROM openjre:9-b114 COPY appB.jar /usr/local/bin/ CMD [“java”, “-jar”, “/usr/local/bin/appB.jar”] ARG FROM openjre:9-b114 COPY appA.jar /usr/local/bin/ CMD [“java”, “-jar”, “/usr/local/bin/appA.jar”] FROM ubuntu:16.04 ARG JRE_VER=9~b114-0ubuntu1 RUN apt-get update && apt-get install -y openjdk-9-jre-headless=${JRE_VER} && java -version openjre:9-b117
  • 34. First Step, toward a container definition? • What matters most? The application or data • The application can be a process or a set of processes • The use case might be not a running app • Set of tools  to develop an app • Set of scripts "apps" that are part of a pipeline • complete appliance • Isolated contained environment "Encapsulation" • Technical synonyms  • chroot • jail • partition • namespace • zone
  • 35. chroot/jail A chroot on Unix operating systems is an operation that changes the apparent root directory for the current running process and its children. A program that is run in such a modified environment cannot name (and therefore normally cannot access) files outside the designated directory tree. The term "chroot" may refer to the chroot(2) system call or the chroot(8) wrapper program. The modified environment is called a chroot jail. https://en.wikipedia.org/wiki/Chroot
  • 36. THE HISTORY OF CONTAINERS 2008: KERNEL & USER NAMESPACES 2008: LINUX CONTAINER PROJECT (LXC) 2013: DOTCLOUD BECOMES DOCKER 2013: RED HAT ENTERPRISE LINUX 2000 2010 2005 2015 2000: JAILS ADDED TO FREEBSD 2006: PROCESS CONFINEMENT 2007: GPC RENAMED CGROUPS 2014: GOOGLE KUBERNETES 2015: RED HAT CONTAINER PLATFORM 2001: LINUX -VSERVER PROJECT 2015: STANDARDS VIA OCI AND CNCF 2003: SELINUX ADDED TO LINUX MAINLINE 2005: FULL RELEASE OF SOLARIS ZONES 2013: DOTCLOUD PYCON LIGHTNING TALK Docker provides simple user tools and images. Containers go mainstream
  • 38. CONTAINERS? WHAT ARE THEY REALLY? Linux features? Namespace cgroupsLXC Union file systems Configuration management? Virtualization technology? npm jar Packaging ? rpm deb tar.gz Virtual/environment management ? Sandboxing? chroot BSD jail Solaris zones IBM VM/370 (1972) seccomp
  • 39. IT DEPENDS Manual Configuration Traditional VMs Less Portable Minimal overhead Most Portable Lots of overhead Configuration Management tools Containers Docker Intel Clear ContainersSingularity LXC/LXD Non-Repeatable Repeatable rkt
  • 40. Container Containment, isolation, or encapsulation of an environment. Machine container: Encapsulates a complete system image. e.g. Ubuntu, RHEL, Scientific Linux. Application container: Encapsulates a service/software. e.g. Django, ROR, Gitlab, redis, Openfoam, kafka, spark. what is the smallest application container?
  • 41. Possible HPC Caveats/Constraints 1. Memory/storage deduplication 2. Code Optimization for specific architecture 3. Limited take on HPC specific orchestration and scheduling 4. Hardware topology assumptions (e.g. GPU brand, interconnect) 5. Chroot based containers have none/limited tooling (e.g. introspection ) 6. Chroot based containers might be hard to scan for security vulnerabilities, hardening, and composition.
  • 43. KUBERNETES SEEING THE MOST DEVELOPER TRACTION 43https://www.slideshare.net/dberkholz/cloud-native-in-the-enterprise-realworld-data-on-container-and-microservice-ado ption
  • 44. Container Runtime docker < 1.11.0 └── systemd └── docker run OpenFoam └── Docker Engine └── OpenFoam docker > 1.11.0 └── systemd └── docker run OpenFoam └── Docker Engine └── containerd └── runc └── OpenFoam rkt > 1.0 └── systemd └── rkt run OpenFoam └── OpenFoam singularity (2.2.x) └── systemd/(init) └── bash └── OpenFoam https://medium.com/@adriaandejonge/moving-from-docker-to-rkt-310dc9aec938#.1glm3o1t3
  • 47. Image formats Layered Overlay filesystems/Graph drivers chrootDirectory Archive       #OCI #ACI https://blog.jessfraz.com/post/the-brutally-honest-guide-to-docker-graphdrivers/
  • 48. Use Cases: Packaging Agnostic packaging Captures ○ Dependencies ○ Environment ○ Configurations ○ Executables ○ How about data? ○ What Else? ■ hint: m* Pack once, Run everywhere http://hpcbios.readthedocs.io/en/latest/HPCBIOS_2012-92.html #EasyBuild #lmod #GUIX #NYU-Environment
  • 49. Use Case: Portability Portable/Scalable across ● platforms ● Distributions ● Environments Separation of concerns, e.g. development pack and ship, operations scale and deploy. development ensures app is resilient, operations enure infra is HA resilient and scalable
  • 50. Use Case: Portability Portable/Scalable across ● systems ● subsystems ● Anywhere
  • 51. Use Case: Reproducible Paolo Di Tommaso from the Center for Genomic Regulation presented : Manage Reproducibility of Computational Workflows with Docker Containers and Nextflow. https://www.slideshare.net/insideHPC/reproducible-computational-pipelines-with-docker-and-nextflow https://youtu.be/Doo9H2-gBAk
  • 52. Cloud use Case - Transport - Security CIA - at rest encrypted signed image - at runtime: - platform specific - scalability issues - PMIx to the rescue?!
  • 53. Data Center current state SchedulerScheduler Jobs Jobs Jobs Jobs Jobs Jobs Scheduler Jobs Jobs Jobs Cluster Management A Cluster Management B Cluster Management C
  • 54. Data Center Secure Allocation of Resources VC3 BigData VC1 Infra VC2 HPC SchedulerSchedulerScheduler DataCenter Scheduler jobs Jobs Jobs Jobs Jobs Jobs Jobs Jobs 2nd Generation Cluster Management
  • 55. Mesos ▪ Mature, Open Source Apache Project ▪ Cluster Resource Manager ▪ Scalable to over 10,000s of nodes ▪ Fault tolerant, no single point of failure ▪ Multi-tenancy with strong resource isolation ▪ Improved resource utilization
  • 57. NVIDIA Example use case https://github.com/NVIDIA/nvidia-docker
  • 58. MPI batch jobs ● use ssh inside container ● dssh ● Capitalize on openmpi ○ Openmpi/pbs/TORQUE ○ Process Management Interfaces PMIx ● Singularity examples uses Openmpi/Slurm ● mesos ● Commercial Univa support ● Research, and contribute ideas, pull requests to swarm, kubernetes, slurm, pbs pro ● Joing the HPC-SIG
  • 59. DISCLAIMER @kelseyhightower  : The problem with most blog posts attempting to compare two different systems is the author not having the sufficient experience to do so. https://twitter.com/kelseyhightower/status/826974374536187905
  • 60. © 2013-2016 Docker, Inc. All rights reserved 1. Introduction to Docker #dockerbday
  • 61. What is Docker? The leading open source platform to pack, ship and run apps as lightweight containers. Developers: use Docker to eliminate “works on my machine” problems when collaborating on code with co-workers. Operators: use Docker to run and manage apps side-by-side in isolated containers to get better compute density. Enterprises: use Docker to build agile software delivery pipelines to ship new features faster, more securely and with confidence for both Linux and Windows Server apps. #dockerbday
  • 62. • Standardized packaging for software and dependencies • Isolate apps from each other • Share the same OS kernel • Works for all major Linux distributions • Containers native to Windows Server 2016 What are Docker containers?
  • 63. Containers and VMs together Containers and VMs together provide a tremendous amount of flexibility for IT to optimally deploy and manage apps.
  • 65. Docker Architecture Linux Container Implementation & Ecosystem Christian Kniep, v2018-01-18 Technical Account Manager
  • 66. Architecture on Linux Operating System Control Groups (cgroups) Namespaces (mnt,pid,ipc,...) Layer Capabilities AUFS,overlay,... Other OS Functionality Docker Engine REST interface libcontainerd libnetwork storage plugins containerd + runc Docker Client Docker Compose Docker Registry Docker Swarm/K8s
  • 67. Runtime runc + containerd ● ● containerd An industry-standard container runtime with an emphasis on simplicity, robustness and portability. ● runc CLI tool for spawning and running containers according to the OCI specification rootfs config.json runc executed container
  • 68. libnetwork Provide IP connectivity The goal of libnetwork is to deliver a robust Container Network Model that provides a consistent programming interface and the required network abstractions for applications.
  • 69. storage driver Handling OverlayFS The storage driver controls how images and containers are stored and managed on your Docker host.
  • 70. Plugins Extend Functionality of the Engine Framework to ‘intercept’ certain API calls and act on them. Current supported drivers: - VolumeDriver - NetworkDriver - IPAMDriver - LogDriver - MetricsCollector - Authentication (authz) // VolumeDriver type Driver interface { Create(Request) Response List(Request) Response Get(Request) Response Path(Request) Response Mount(Request) Response Unmount(Request) Response Capabilities(Request) Response }
  • 71. Architecture on Windows Operating System Other OS Functionality Docker Engine REST interface libcontainer libnetwork storage plugins Docker Client Docker Compose Docker Registry Docker Swarm/K8s Host Compute Service Control Groups Namespaces Layer Capabilities Object Namespace, Process Table, Networking Job Objects Registry, Union like filesystem extension
  • 73. Docker is the only Containers-as-a-Service platform for IT that manages and secures diverse applications across disparate infrastructure, both on-premises and in the cloud Multi-Architecture Operations Infrastructure Independence Secure Software Supply Chain COST SAVINGS Linux Mainframe AWS Azure Other Public Clouds Windows ENGINE FOR INNOVATION DOCKER ENTERPRISE EDITION
  • 74. Docker Enterprise Edition Capabilities Enterprise Edition Optimized Container Engine Integrated App and Cluster Management Certification and Support Policy Management Image Scanning and Monitoring Secure Access and User Management Content Trust and Verification Application and Cluster Management Image Management Security Distributed State Network Container Runtime Volumes Orchestration Application Composition, Deployment and Reliability Certified Containers Certified Plugins Certified Infrastructure
  • 75. © 2013-2016 Docker, Inc. All rights reserved Singularity From “Michael Bauer” Gent talks Fosdem/UoG EASYBuild
  • 78.
  • 79.
  • 80.
  • 81.
  • 82. Docker vs Singularity vs Shifter in an HPC environment
  • 83. © 2013-2016 Docker, Inc. All rights reserved rkt
  • 84. What is rkt? From the rkt GitHub page, "rkt (pronounced "rock-it") is a CLI for running app containers on Linux. rkt is designed to be secure, composable, and standards-based. #ACI
  • 85. Why rkt? ● Don’t want to run dockerd daemon. ● Don’t require the Docker’s rich feature set/ecosystem. ● Can’t trust Docker security yet, even though it is no longer an issue. ● I have 4.3+ Linux kernel, and systemd version > 222
  • 86. rkt # rkt run --interactive docker://ubuntu --insecure-options=image
  • 88.
  • 89. DOCKER HISTORY ▪ Started as internal project @ dotcloud ▪ Open Sourced in 2013 ▪ Developed in the open http://www.taos.com/from-dotcloud-to-docker/
  • 90. Forces and Motivations behind containers 90 Loosely Coupled Services Many Small Servers ~2000 Today Monolithic Big Servers Slow changing Rapidly updated