SlideShare a Scribd company logo
1 of 38
Docker
BWI Innovation Talk
Dr. Timm Heuss
March 2018
Docker is one of the most interesting and
promising paradigm shifts of the last years. In
this talk, I will introduce Docker shortly and
present universal lessons learned after two
years of practical use. It becomes clear that
not only source code needs to be refactored,
but also infrastructure, processes and people's
mindsets. Once embraced, Docker allows for
faster ramp-up times and is an enabler for
modern software development.
https://github.com/heussd/docker-bwi-innovation-talk
These slides are available online:
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 2 -
Agenda
 Introduction to Docker
 Why the Hype?
 Lessons learned from two years
of practical use
 Interesting readings and tools
 What‘s next?
https://github.com/heussd/docker-bwi-innovation-talk
These slides are available online:
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 3 -
Introduction to Docker
• Shipping software in virtual images with all runtime dependencies
• The idea is not really new
• What makes Docker special:
• Docker focuses on streamlined developer workflows
• Cross-platform runtime environment
• Open Container Initiative (OCI) Standard
• Related approaches: rkt (“Rocket”), Facebook Tupperware, …
2000 20102005 2015
BSD
Jails
Solaris
Zones
Linux
Containers
2017
1.0
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 4 -
Introduction to Docker
 Shipping software in virtual images with all runtime dependencies
Virtual Machine Engine
Infrastructure
Guest
Userland
Infrastructure
Guest
Userland
Guest Kernel Guest Kernel
My App 1 My App 2
VMware?
VirtualBox?
Manual
InstallationNot
really
needed
Infrastructure
Host OS
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 5 -
ContainerContainer
Base Image
Introduction to Docker
Infrastructure
Host OS
Docker Engine
My App 1 My App 2
Base Image
Dependency
Baseline functionality
of every image
Dependency
App-specific
dependency
docker-compose as simple
Docker orchestrator
Docker Image, a
dockerfile describes all
layers in a machine
readable way
Instance of an Image,
Docker Container
Linux, Windows 10 or
macOS (>= Yosemite)
 Shipping software in virtual images with all runtime dependencies
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 6 -
dockerfile dockerfile
Dockerfile + docker-compose.yml
docker-compose
FROM ubuntu:17.10
RUN apt install –y curl
CMD /exec.sh
ADD myapp2.sh /exec.sh
FROM tomcat:alpine
ADD myapp1.war
/usr/local/tomcat/webapps
services:
app1:
build: myapp1/
image: java-sth
ports: 8080
app2:
build: myapp2/
image: bash-tool
importantdb:
image: postgres:latest
ContainerContainer
Base Image
Infrastructure
Host OS
Docker Engine
My App 1 My App 2
Base Image
Dependency Dependency
Versionalpine is a special
size-reduced baseline
latest… what exactly?
We’ll see later:
Lesson 2: Meanings of “latest”
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 7 -
Dockerfile Dockerfile
Dockerfile + docker-compose.yml
docker-compose
FROM ubuntu:17.10
RUN apt install –y curl
CMD /exec.sh
ADD myapp2.sh /exec.sh
FROM tomcat:alpine
ADD myapp1.war
/usr/local/tomcat/
services:
app1:
build: myapp1/
image: java-sth
ports: 8080
app2:
build: myapp2/
image: bash-tool
importantdb:
image: postgres:latest
Docker Hub
ContainerContainer
Base Image
Infrastructure
Host OS
Docker Engine
My App 1 My App 2
Base Image
Dependency Dependency
See also:
Lesson 3: Docker &
Security - it’s complicated
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 8 -
Dockerfile Dockerfile
Dockerfile + docker-compose.yml
docker-compose
FROM local:5000/ubuntu:17.10
RUN apt install –y curl
CMD /exec.sh
ADD myapp2.sh /exec.sh
FROM tomcat:alpine
ADD myapp1.war
/usr/local/tomcat/
services:
app1:
build: myapp1/
image: java-sth
ports: 8080
app2:
build: myapp2/
image: bash-tool
importantdb:
image: postgres:latest
Docker Hub
ContainerContainer
Base Image
Infrastructure
Host OS
Docker Engine
My App 1 My App 2
Base Image
Dependency Dependency
See also:
Lesson 3: Docker &
Security - it’s complicated
Use a local Docker registry
by adding prefix to the
image names
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 9 -
Docker in a Nutshell
 Shipping software in virtual images with all runtime dependencies
 Layered, caching filesystem that
transparently reuses previous build
steps / other images
 Reproducible, machine-readable
instructions to produce images
(dockerfile), ready for Continuous
Integration and Continuous Delivery
 Standardised specification of networks,
ports, external files and the interplay of
several virtual images (docker-compose)
Base Image
Infrastructure
Host OS
Docker Engine
My App 1 My App 2
Base Image
Dependency Dependency
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 10 -
Why the Hype?
docker run -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql:5.7.21
Downloads, installs,
configures and runs
MYSQL 5.7.21
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 11 -
Why the Hype?
Minimise Lead &
Ramp Up Times
Developers define their own infrastructure
(“as code”), seamless integration of third-
party software and distribution channels,
build automation can build, package, roll-out
and execute the entire software stack
Self-Contained-Services /
Microservices
Docker images are self-contained or clearly
define their dependencies to external
databases and resources
„Cloud is the new normal“ Docker is cloud native, Docker images are
infrastructure agnostic
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 12 -
Why the Hype?
Minimise Lead &
Ramp Up Times
Developers define their own infrastructure
(“as code”), seamless integration of third-
party software and distribution channels,
build automation can build, package, roll-out
and execute the entire software stack
Self-Contained-Services /
Microservices
Docker images are self-contained or clearly
define their dependencies to external
databases and resources
„Cloud is the new normal“ Docker is cloud native, Docker images are
infrastructure agnostic
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 13 -
Why the Hype?
• Re-inventing the wheel
• Configure IDE
• Manage and download dependencies
• Package software
• Execute unit tests and integration tests
• Distributing software packages
• Continuously monitor source control,
build
• Determine the common build status
(“Are we green?”)
• Document operational environment
• Install, configure and start-up
operational environment
• Install, configure and start-up runtime
dependency software such as
Databases
• Prepare, package, configure, distribute
and install releases
Developers are payed for: Developers are not payed for:
Build
Management
Continuous
Integration
Containers
Continuous
Delivery
Commodities• Developing software
Even if you don’t use Docker
- your competitor will!
Docker helps significantly
in automating this
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 14 -
Lessons learned from two years of Docker
Lesson 1: Understand the tools you use
Lesson 2: Meanings of “latest”
Lesson 3: Docker & Security – it’s complicated
Lesson 4: Docker is not done yet
Lesson 5: Have a Docker-ready architecture
Lesson 6: Docker, the MVP enabler
Lesson 7: Use Build Infrastructure
Lesson 8: Streamline Developer’s Workflow
Lesson 9: Rethink Infrastructure
Lesson 10: Refactor mind sets
Docker Basics
Software-
Architecture
Processes
Infrastructure
Mindsets
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 15 -
Lesson 1: Understand the tools you use
 The art of writing a Dockerfile
 Understand Docker
 Follow Docker best practices [1]
 dockerfile: Readability and
duplication over fanciness
 Don’t use docker commit
 Question everything (including
best practices)
 Do not solve future problems
[1] https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/
RUN APT UPDATE
RUN APT INSTALL –y openjdk, make
RUN cd /somepath
RUN make
RUN APT UPDATE && 
APT INSTALL –y openjdk, make
RUN cd /somepath && 
make
Don’t do this:
Cachable, readable
ENV BUILD_DEPS make
ENV RUN_DEPS openjdk
RUN APT UPDATE && 
DEBIAN_FRONTEND=noninteractive APT 
INSTALL -y --no-install-recommends 
$BUILD_DEPS, $RUN_DEPS
RUN cd /somepath && 
make
RUN APT remove –y $BUILD_DEPS && 
rm -rf /var/lib/apt/lists/
Cachable, readable,
image size is minimised
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 16 -
Lesson 2: Meanings of “latest”
• Docker images are not automatically tagged with “latest“
• “latest” has no common meaning across projects on Docker Hub
• “latest” is assumed if no explicit version is provided
• My personal preference: Use “latest“ as “stable release”
• Use a $VERSION variable in Docker-Compose-files
• Automatically produce docker-compose files with explicit versions
• Keep Maven POM version == Docker version tag
swaggerapi/swagger-ui:latestubuntu:latest
https://hub.docker.com/_/ubuntu/ https://hub.docker.com/r/swaggerapi/swagger-ui/
vs.
“latest LTS release“ “nightly“
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 17 -
Lesson 3: Docker & Security – it’s complicated
„Docker is a completely new
way to ship security flaws!“
- The Internet
Shu, R., Gu, X., & Enck, W. (2017). A Study of Security Vulnerabilities on Docker Hub.
In Proceedings of the Seventh ACM on Conference on Data and Application Security
and Privacy - CODASPY ’17 (pp. 269–280). https://doi.org/10.1145/3029806.3029832
Gummaraju, J., Desikan, T., & Turner, Y. (2015). Over 30% of Official Images in Docker Hub Contain High Priority Security Vulnerabilities.
Https://Banyanops.Com, (May), 1–6. Retrieved from https://banyanops.com/blog/analyzing-docker-hub/
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 18 -
Lesson 3: Docker & Security – it’s complicated
More about this in:
Lesson 7: Use Build Infrastructure
Does this comply to BMWi’s
Merkblatt f. die Behandlung
von VS-NfD?
IBM, Xen, Huawei: Virtual Machines
• With the base image concept, large amounts of
binaries are pulled and executed automatically
from the internet
• The Docker daemon has root-level permissions and communicates directly
with the host OS kernel
• Attack vector syscalls – can SELinux, S-Virt, Seccomp, … help?
• What we can do:
• Have a local custom registry with approved base images
• Install update for software within the Docker images
-> regularly rebuild all layers without using the cache
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 19 -
Lesson 4: Docker is not done yet
• Docker is under heavy development
• #1 information source: GitHub issue tracker
• Docker is not trivial, requires cross-
technology knowledge
• Missing features (such as: management of
dangling volumes, no data volume
management)
• Missing concepts (such as: runtime
dependency between containers and large
data assets)
• Painful use of Docker on Windows 7
• Non-native Docker engine
• Windows Shell / Linux Bash dichotomy
but Windows 10 is
not VS-NfD-ready yet...
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 20 -
Lesson 5: Have a Docker-ready software architecture
Web page title
http://www.url.com
Upload
Message
Queue
Web page title
http://www.url.com
My Worker
My Worker
My Worker
My Worker
Workers can scale
Job queue is flexible enough
and never forgets
Complexity hidden from the user
“Post box” pattern
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 21 -
Orchestrator
Lesson 5: Have a Docker-ready software architecture
Web page title
http://www.url.com
4
Orchestrator-aware API Gateway
routes and scales automatically
My Service 2
Services deliver complete
page fragments, e.g. via
Edge Side Includes My Service 3
My Service 3
My Service 1
Dynamic Web Content Assembly / „Chatty Architecture“
APIGateway
My Service 3
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 22 -
Lesson 5: Have a Docker-ready software architecture
• Design the scalability of your application alongside Docker’s capabilities
• Beware of a cargo cult: Docker is not a “lift and shift” technology!
• Porting monolithic / legacy / GUI applications might not be feasible
• However: Scalability is not the only reason to use Docker
Orchestrator
Web page title
http://www.url.com
4My Service 2
My Service 3
My Service 3
My Service 3
APIGateway
My Service 1
Web page title
http://www.url.com
Upload
Message
Queue
Web page title
http://www.url.com
My Worker
My Worker
My Worker
My Worker
Dynamic Web Content Assembly /
„Chatty Architecture“
“Post box” pattern
A fully documented software stack as code
Being able to package, rollout and execute
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 23 -
Well this is also possible…
Docker Image (Ubuntu)
Docker Engine
Java.exe
Wine
EA.exeEA.dll
JAR
Using a Windows-Java-native DLL and Windows application in Docker
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 24 -
… or this…
Docker Image (Ubuntu)
Docker Engine
Using a Windows-Java-native DLL and Windows GUI application in Docker
VNC Server
Wine
Java.exe EA.exeEA.dll
JAR
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 25 -
Lesson 6: Docker the MVP-Enabler
• Docker is a nice contribution to the ecosystem for MVPs and Rapid Prototyping
• Contract first
• Generate backend and frontend stubs
• Package in Docker
• Let the backend evolve
• Throw-away demos for customer feature demonstrations
• Thanks to Docker, all demos are kept available, infrastructure might change entirely
GUI Demo
Backend
Version 1
API
Definition
Another
GUI Demo
MVP
GUI
Backend
Version 2
MVP
Backend
t
e.g. with tools like Swagger
Java Code Gen produces JAX-RS compliant stub
Maven plugin detects JAX-RS, builds Docker image
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 26 -
Lesson 7: Use Build Infrastructure
• Re-inventing the wheel
• Configure IDE
• Manage and download dependencies
• Package software
• Execute unit tests and integration tests
• Distributing software packages
• Continuously monitor source control,
build
• Determine the common build status
(“Are we green?”)
• Document operational environment
• Install, configure and start-up
operational environment
• Install, configure and start-up runtime
dependency software such as
Databases
• Prepare, package, configure, distribute
and install releases
Developers are payed for: Developers are not payed for:
Build
Management
Continuous
Integration
Containers
Continuous
Delivery
Commodities• Developing software
Things developers want to do: Things developers don’t want to do:
Build Infrastructure
helps automating this
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 27 -
Lesson 7: Use Build Infrastructure
• Use Build infrastructure to
• Continuously build Docker images
• Do the testing, indicate results
• Push images / roll-out
• Launch complete software stack
• Overnight complete rebuild of all layers
• Automation means:
standardisation of build and deployment processes
Jenkins, GitLab Pipelines, etc…
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 28 -
Lesson 8: Streamline Developer’s Workflow
Jenkins
GitLab
Developer
commit
Notify on
test failure
Nexus
JAR
checkout test package
bring
online
„Oh look it is working!“
push
push
update for
specific tag
e.g. Web-Based
Application
e.g. Distributed
Calculation
new
version
triggers
commit new pom.xml
Tag specific
version
push tag
Microsoft Windows [Version 7.1.7000]
Copyright (c) 2008 Microsoft Corporation. All
rights reserved.
C:UsersUserName>
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 29 -
Lesson 9: Rethink Infrastructure
16 CPUs
64 GB RAM
XenServer
16 CPUs
64 GB RAM
Ubuntu Host Ubuntu Host
My App My App
Docker Engine Docker Engine
Single-threaded
bottlenecks
Incomplete
Docker-
migration
Micro
management
of resources
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 30 -
Lesson 9: Rethink Infrastructure
32 CPUs
128 GB RAM
XenServer
Ubuntu Host
My App My App My App My App
Job Data
Docker Engine
All
resources
are
available
to Docker
Scale on
demand
More efficient use of
(rented) resources
Common
persistent
Job data
storage
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 31 -
My App My App My App My App My App
Ubuntu Host
Job Data
Lesson 9: Rethink Infrastructure
32 CPUs
128 GB RAM
XenServer
Ubuntu Host
Docker Engine
2. Init debug
instance
3. Re-execute
failed
commands in
production-like
environment
Job Data
1. Connect to host
via SSH
Debugging production in 3 simple steps
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 32 -
Lesson 10: Refactor mind sets
“Machines should work, Humans should think”
• Architectural changes, building and shipping is daily business
• Promote use of standard tools over custom solutions
• Promote a culture of documentation
• The one who deploys (or tells systems to do so) defines
the rules for collaboration
• Tech. project management / “Operations person” / everybody does DevOps?
• “Cool technology” vs. young computer science graduates
• Technological product roadmap is impacted by the level of knowledge of
graduates in the field
Two main enemies:
fears & secrets
New Role?
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 33 -
Lessons learned from two years of Docker
Lesson 1: Understand the tools you use
Lesson 2: Meanings of “latest”
Lesson 3: Docker & Security – it’s complicated
Lesson 4: Docker is not done yet
Lesson 5: Have a Docker-ready architecture
Lesson 6: Docker, the MVP enabler
Lesson 7: Use Build Infrastructure
Lesson 8: Streamline Developer’s Workflow
Lesson 9: Rethink Infrastructure
Lesson 10: Refactor mind sets
Docker Basics
Software-
Architecture
Processes
Infrastructure
Mindsets
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 34 -
Interesting readings and tools
Must-read: Docker Best Practices
https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-
practices/
Advanced: Good container practices
https://l0rd.github.io/containerspatterns/
Graphical User Interfaces for Docker Engine Management
UI for Docker, Portainer
Docker-Container Auto-Update
Watchtower
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 35 -
What‘s next: Windows-native Software in Docker
• Future versions of Docker:
Run Windows-native and Linux-native containers on one Windows host
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 36 -
What‘s next: Streamlined Orchestrator Workflows
• Build ecosystems for the automatic creation of microservices and for
debugging them (e.g. fabric8)
• Complete toolchain to cover the Plan-Code-Verify-Package-Release-
Configure-Monitor lifecycle (e.g. GitLab)
for example...
Docker – BWI Innovation Talk – 2018-03-27
Dr. Timm Heuss
Fraunhofer Institute for Communication, Information Processing and Ergonomics
- 37 -
What‘s next: Serverless
• Don’t pay idle – “run code, not a server!”
• Complex, event-based execution, hard to debug, often highly proprietary
• Especially useful when deployables must scale rapidly
• Scenarios: Thumbnail creation, Event Streaming, Resource Optimisation, …
Source:W-Jax2017:LarsRöwekamp–Cloud-Workshop–
VomCloud-MuffelzumCloud-NativeinsechsStunden
Thank You
🍀
Font Rufscript by Hiran Venugopalan is licenced under the terms of GPL with font exception.
https://github.com/heussd/docker-bwi-innovation-talk
Dr. Timm Heuss
Fraunhofer Institute for Communication,
Information Processing and Ergonomics
Fraunhoferstraße 20
53343 Wachtberg
Germany
Timm.Heuss@fkie.fraunhofer.de
+49 228 9435-154
These slides are available online:

More Related Content

What's hot

The Docker ecosystem and the future of application deployment
The Docker ecosystem and the future of application deploymentThe Docker ecosystem and the future of application deployment
The Docker ecosystem and the future of application deploymentJérôme Petazzoni
 
Distro Recipes 2013 : Contribution of RDF metadata for traceability among pro...
Distro Recipes 2013 : Contribution of RDF metadata for traceability among pro...Distro Recipes 2013 : Contribution of RDF metadata for traceability among pro...
Distro Recipes 2013 : Contribution of RDF metadata for traceability among pro...Anne Nicolas
 
An operational view into docker registry with scalability, access control and...
An operational view into docker registry with scalability, access control and...An operational view into docker registry with scalability, access control and...
An operational view into docker registry with scalability, access control and...Conference Papers
 
Containers, docker, and security: state of the union (Bay Area Infracoders Me...
Containers, docker, and security: state of the union (Bay Area Infracoders Me...Containers, docker, and security: state of the union (Bay Area Infracoders Me...
Containers, docker, and security: state of the union (Bay Area Infracoders Me...Jérôme Petazzoni
 
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...Anne Nicolas
 
Cloud Foundry and OpenStack
Cloud Foundry and OpenStackCloud Foundry and OpenStack
Cloud Foundry and OpenStackvadimspivak
 
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...Edureka!
 
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 - KCDC2015Jérôme Petazzoni
 
Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...
Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...
Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...Anne Nicolas
 
Labri 2021-invited-talk
Labri 2021-invited-talkLabri 2021-invited-talk
Labri 2021-invited-talkvschiavoni
 
React Example + Bootstrap
React Example + BootstrapReact Example + Bootstrap
React Example + BootstrapEueung Mulyana
 
Tycho - Building plug-ins with Maven
Tycho - Building plug-ins with MavenTycho - Building plug-ins with Maven
Tycho - Building plug-ins with MavenPascal Rapicault
 
Surfing on an Interactive Kiosk
Surfing on an Interactive KioskSurfing on an Interactive Kiosk
Surfing on an Interactive KioskLeon Anavi
 
Docker en kernel security
Docker en kernel securityDocker en kernel security
Docker en kernel securitysmart_bit
 

What's hot (20)

Hack the whale
Hack the whaleHack the whale
Hack the whale
 
The Docker ecosystem and the future of application deployment
The Docker ecosystem and the future of application deploymentThe Docker ecosystem and the future of application deployment
The Docker ecosystem and the future of application deployment
 
Distro Recipes 2013 : Contribution of RDF metadata for traceability among pro...
Distro Recipes 2013 : Contribution of RDF metadata for traceability among pro...Distro Recipes 2013 : Contribution of RDF metadata for traceability among pro...
Distro Recipes 2013 : Contribution of RDF metadata for traceability among pro...
 
An operational view into docker registry with scalability, access control and...
An operational view into docker registry with scalability, access control and...An operational view into docker registry with scalability, access control and...
An operational view into docker registry with scalability, access control and...
 
Containers, docker, and security: state of the union (Bay Area Infracoders Me...
Containers, docker, and security: state of the union (Bay Area Infracoders Me...Containers, docker, and security: state of the union (Bay Area Infracoders Me...
Containers, docker, and security: state of the union (Bay Area Infracoders Me...
 
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
Embedded Recipes 2017 - Introduction to Yocto Project/OpenEmbedded - Mylène J...
 
Overview of Docker
Overview of DockerOverview of Docker
Overview of Docker
 
Yocto Project - OSCON 7-17-2012
Yocto Project - OSCON 7-17-2012Yocto Project - OSCON 7-17-2012
Yocto Project - OSCON 7-17-2012
 
Docker
DockerDocker
Docker
 
Cloud Foundry and OpenStack
Cloud Foundry and OpenStackCloud Foundry and OpenStack
Cloud Foundry and OpenStack
 
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
Docker Commands With Examples | Docker Tutorial | DevOps Tutorial | Docker Tr...
 
Shree duth awasthi_cv
Shree duth awasthi_cvShree duth awasthi_cv
Shree duth awasthi_cv
 
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
 
React Basic Examples
React Basic ExamplesReact Basic Examples
React Basic Examples
 
Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...
Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...
Embedded Recipes 2017 - An easy-to-install real world embedded Linux distribu...
 
Labri 2021-invited-talk
Labri 2021-invited-talkLabri 2021-invited-talk
Labri 2021-invited-talk
 
React Example + Bootstrap
React Example + BootstrapReact Example + Bootstrap
React Example + Bootstrap
 
Tycho - Building plug-ins with Maven
Tycho - Building plug-ins with MavenTycho - Building plug-ins with Maven
Tycho - Building plug-ins with Maven
 
Surfing on an Interactive Kiosk
Surfing on an Interactive KioskSurfing on an Interactive Kiosk
Surfing on an Interactive Kiosk
 
Docker en kernel security
Docker en kernel securityDocker en kernel security
Docker en kernel security
 

Similar to Docker - BWI Innovation Talk

.docker : How to deploy Digital Experience in a container, drinking a cup of ...
.docker : How to deploy Digital Experience in a container, drinking a cup of ....docker : How to deploy Digital Experience in a container, drinking a cup of ...
.docker : How to deploy Digital Experience in a container, drinking a cup of ...ICON UK EVENTS Limited
 
Docker - Der Wal in der Kiste
Docker - Der Wal in der KisteDocker - Der Wal in der Kiste
Docker - Der Wal in der KisteUlrich Krause
 
docker : how to deploy Digital Experience in a container drinking a cup of co...
docker : how to deploy Digital Experience in a container drinking a cup of co...docker : how to deploy Digital Experience in a container drinking a cup of co...
docker : how to deploy Digital Experience in a container drinking a cup of co...Matteo Bisi
 
.docker : how to deploy Digital Experience in a container drinking a cup of c...
.docker : how to deploy Digital Experience in a container drinking a cup of c....docker : how to deploy Digital Experience in a container drinking a cup of c...
.docker : how to deploy Digital Experience in a container drinking a cup of c...Andrea Fontana
 
HPC Cloud Burst Using Docker
HPC Cloud Burst Using DockerHPC Cloud Burst Using Docker
HPC Cloud Burst Using DockerIRJET Journal
 
Tribal Nova Docker feedback
Tribal Nova Docker feedbackTribal Nova Docker feedback
Tribal Nova Docker feedbackNicolas Degardin
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Arun prasath
 
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...Ambassador Labs
 
Docker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualizationDocker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualizationSuresh Balla
 
Cloud foundry integration-with-openstack-and-docker-bangalorecf-meetup
Cloud foundry integration-with-openstack-and-docker-bangalorecf-meetupCloud foundry integration-with-openstack-and-docker-bangalorecf-meetup
Cloud foundry integration-with-openstack-and-docker-bangalorecf-meetupKrishna-Kumar
 
A Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using DockerA Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using DockerAjeet Singh Raina
 
Cloud native buildpacks-cncf
Cloud native buildpacks-cncfCloud native buildpacks-cncf
Cloud native buildpacks-cncfSuman Chakraborty
 
DEEP: a user success story
DEEP: a user success storyDEEP: a user success story
DEEP: a user success storyEOSC-hub project
 
Cloud native buildpacks_collabnix
Cloud native buildpacks_collabnixCloud native buildpacks_collabnix
Cloud native buildpacks_collabnixSuman Chakraborty
 
Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET DevelopersTaswar Bhatti
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...Codemotion
 
Develop with docker 2014 aug
Develop with docker 2014 augDevelop with docker 2014 aug
Develop with docker 2014 augVincent De Smet
 
Containers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific TrioContainers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific TrioJérôme Petazzoni
 

Similar to Docker - BWI Innovation Talk (20)

.docker : How to deploy Digital Experience in a container, drinking a cup of ...
.docker : How to deploy Digital Experience in a container, drinking a cup of ....docker : How to deploy Digital Experience in a container, drinking a cup of ...
.docker : How to deploy Digital Experience in a container, drinking a cup of ...
 
Docker - Der Wal in der Kiste
Docker - Der Wal in der KisteDocker - Der Wal in der Kiste
Docker - Der Wal in der Kiste
 
docker : how to deploy Digital Experience in a container drinking a cup of co...
docker : how to deploy Digital Experience in a container drinking a cup of co...docker : how to deploy Digital Experience in a container drinking a cup of co...
docker : how to deploy Digital Experience in a container drinking a cup of co...
 
.docker : how to deploy Digital Experience in a container drinking a cup of c...
.docker : how to deploy Digital Experience in a container drinking a cup of c....docker : how to deploy Digital Experience in a container drinking a cup of c...
.docker : how to deploy Digital Experience in a container drinking a cup of c...
 
HPC Cloud Burst Using Docker
HPC Cloud Burst Using DockerHPC Cloud Burst Using Docker
HPC Cloud Burst Using Docker
 
Docker In Brief
Docker In BriefDocker In Brief
Docker In Brief
 
Docker intro
Docker introDocker intro
Docker intro
 
Tribal Nova Docker feedback
Tribal Nova Docker feedbackTribal Nova Docker feedback
Tribal Nova Docker feedback
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment
 
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
O'Reilly Software Architecture Conference London 2017: Building Resilient Mic...
 
Docker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualizationDocker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualization
 
Cloud foundry integration-with-openstack-and-docker-bangalorecf-meetup
Cloud foundry integration-with-openstack-and-docker-bangalorecf-meetupCloud foundry integration-with-openstack-and-docker-bangalorecf-meetup
Cloud foundry integration-with-openstack-and-docker-bangalorecf-meetup
 
A Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using DockerA Shift from Monolith to Microservice using Docker
A Shift from Monolith to Microservice using Docker
 
Cloud native buildpacks-cncf
Cloud native buildpacks-cncfCloud native buildpacks-cncf
Cloud native buildpacks-cncf
 
DEEP: a user success story
DEEP: a user success storyDEEP: a user success story
DEEP: a user success story
 
Cloud native buildpacks_collabnix
Cloud native buildpacks_collabnixCloud native buildpacks_collabnix
Cloud native buildpacks_collabnix
 
Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET Developers
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
 
Develop with docker 2014 aug
Develop with docker 2014 augDevelop with docker 2014 aug
Develop with docker 2014 aug
 
Containers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific TrioContainers, Docker, and Microservices: the Terrific Trio
Containers, Docker, and Microservices: the Terrific Trio
 

Recently uploaded

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 

Recently uploaded (20)

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 

Docker - BWI Innovation Talk

  • 1. Docker BWI Innovation Talk Dr. Timm Heuss March 2018 Docker is one of the most interesting and promising paradigm shifts of the last years. In this talk, I will introduce Docker shortly and present universal lessons learned after two years of practical use. It becomes clear that not only source code needs to be refactored, but also infrastructure, processes and people's mindsets. Once embraced, Docker allows for faster ramp-up times and is an enabler for modern software development. https://github.com/heussd/docker-bwi-innovation-talk These slides are available online:
  • 2. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 2 - Agenda  Introduction to Docker  Why the Hype?  Lessons learned from two years of practical use  Interesting readings and tools  What‘s next? https://github.com/heussd/docker-bwi-innovation-talk These slides are available online:
  • 3. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 3 - Introduction to Docker • Shipping software in virtual images with all runtime dependencies • The idea is not really new • What makes Docker special: • Docker focuses on streamlined developer workflows • Cross-platform runtime environment • Open Container Initiative (OCI) Standard • Related approaches: rkt (“Rocket”), Facebook Tupperware, … 2000 20102005 2015 BSD Jails Solaris Zones Linux Containers 2017 1.0
  • 4. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 4 - Introduction to Docker  Shipping software in virtual images with all runtime dependencies Virtual Machine Engine Infrastructure Guest Userland Infrastructure Guest Userland Guest Kernel Guest Kernel My App 1 My App 2 VMware? VirtualBox? Manual InstallationNot really needed Infrastructure Host OS
  • 5. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 5 - ContainerContainer Base Image Introduction to Docker Infrastructure Host OS Docker Engine My App 1 My App 2 Base Image Dependency Baseline functionality of every image Dependency App-specific dependency docker-compose as simple Docker orchestrator Docker Image, a dockerfile describes all layers in a machine readable way Instance of an Image, Docker Container Linux, Windows 10 or macOS (>= Yosemite)  Shipping software in virtual images with all runtime dependencies
  • 6. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 6 - dockerfile dockerfile Dockerfile + docker-compose.yml docker-compose FROM ubuntu:17.10 RUN apt install –y curl CMD /exec.sh ADD myapp2.sh /exec.sh FROM tomcat:alpine ADD myapp1.war /usr/local/tomcat/webapps services: app1: build: myapp1/ image: java-sth ports: 8080 app2: build: myapp2/ image: bash-tool importantdb: image: postgres:latest ContainerContainer Base Image Infrastructure Host OS Docker Engine My App 1 My App 2 Base Image Dependency Dependency Versionalpine is a special size-reduced baseline latest… what exactly? We’ll see later: Lesson 2: Meanings of “latest”
  • 7. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 7 - Dockerfile Dockerfile Dockerfile + docker-compose.yml docker-compose FROM ubuntu:17.10 RUN apt install –y curl CMD /exec.sh ADD myapp2.sh /exec.sh FROM tomcat:alpine ADD myapp1.war /usr/local/tomcat/ services: app1: build: myapp1/ image: java-sth ports: 8080 app2: build: myapp2/ image: bash-tool importantdb: image: postgres:latest Docker Hub ContainerContainer Base Image Infrastructure Host OS Docker Engine My App 1 My App 2 Base Image Dependency Dependency See also: Lesson 3: Docker & Security - it’s complicated
  • 8. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 8 - Dockerfile Dockerfile Dockerfile + docker-compose.yml docker-compose FROM local:5000/ubuntu:17.10 RUN apt install –y curl CMD /exec.sh ADD myapp2.sh /exec.sh FROM tomcat:alpine ADD myapp1.war /usr/local/tomcat/ services: app1: build: myapp1/ image: java-sth ports: 8080 app2: build: myapp2/ image: bash-tool importantdb: image: postgres:latest Docker Hub ContainerContainer Base Image Infrastructure Host OS Docker Engine My App 1 My App 2 Base Image Dependency Dependency See also: Lesson 3: Docker & Security - it’s complicated Use a local Docker registry by adding prefix to the image names
  • 9. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 9 - Docker in a Nutshell  Shipping software in virtual images with all runtime dependencies  Layered, caching filesystem that transparently reuses previous build steps / other images  Reproducible, machine-readable instructions to produce images (dockerfile), ready for Continuous Integration and Continuous Delivery  Standardised specification of networks, ports, external files and the interplay of several virtual images (docker-compose) Base Image Infrastructure Host OS Docker Engine My App 1 My App 2 Base Image Dependency Dependency
  • 10. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 10 - Why the Hype? docker run -e MYSQL_ROOT_PASSWORD=my-secret-pw mysql:5.7.21 Downloads, installs, configures and runs MYSQL 5.7.21
  • 11. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 11 - Why the Hype? Minimise Lead & Ramp Up Times Developers define their own infrastructure (“as code”), seamless integration of third- party software and distribution channels, build automation can build, package, roll-out and execute the entire software stack Self-Contained-Services / Microservices Docker images are self-contained or clearly define their dependencies to external databases and resources „Cloud is the new normal“ Docker is cloud native, Docker images are infrastructure agnostic
  • 12. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 12 - Why the Hype? Minimise Lead & Ramp Up Times Developers define their own infrastructure (“as code”), seamless integration of third- party software and distribution channels, build automation can build, package, roll-out and execute the entire software stack Self-Contained-Services / Microservices Docker images are self-contained or clearly define their dependencies to external databases and resources „Cloud is the new normal“ Docker is cloud native, Docker images are infrastructure agnostic
  • 13. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 13 - Why the Hype? • Re-inventing the wheel • Configure IDE • Manage and download dependencies • Package software • Execute unit tests and integration tests • Distributing software packages • Continuously monitor source control, build • Determine the common build status (“Are we green?”) • Document operational environment • Install, configure and start-up operational environment • Install, configure and start-up runtime dependency software such as Databases • Prepare, package, configure, distribute and install releases Developers are payed for: Developers are not payed for: Build Management Continuous Integration Containers Continuous Delivery Commodities• Developing software Even if you don’t use Docker - your competitor will! Docker helps significantly in automating this
  • 14. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 14 - Lessons learned from two years of Docker Lesson 1: Understand the tools you use Lesson 2: Meanings of “latest” Lesson 3: Docker & Security – it’s complicated Lesson 4: Docker is not done yet Lesson 5: Have a Docker-ready architecture Lesson 6: Docker, the MVP enabler Lesson 7: Use Build Infrastructure Lesson 8: Streamline Developer’s Workflow Lesson 9: Rethink Infrastructure Lesson 10: Refactor mind sets Docker Basics Software- Architecture Processes Infrastructure Mindsets
  • 15. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 15 - Lesson 1: Understand the tools you use  The art of writing a Dockerfile  Understand Docker  Follow Docker best practices [1]  dockerfile: Readability and duplication over fanciness  Don’t use docker commit  Question everything (including best practices)  Do not solve future problems [1] https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/ RUN APT UPDATE RUN APT INSTALL –y openjdk, make RUN cd /somepath RUN make RUN APT UPDATE && APT INSTALL –y openjdk, make RUN cd /somepath && make Don’t do this: Cachable, readable ENV BUILD_DEPS make ENV RUN_DEPS openjdk RUN APT UPDATE && DEBIAN_FRONTEND=noninteractive APT INSTALL -y --no-install-recommends $BUILD_DEPS, $RUN_DEPS RUN cd /somepath && make RUN APT remove –y $BUILD_DEPS && rm -rf /var/lib/apt/lists/ Cachable, readable, image size is minimised
  • 16. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 16 - Lesson 2: Meanings of “latest” • Docker images are not automatically tagged with “latest“ • “latest” has no common meaning across projects on Docker Hub • “latest” is assumed if no explicit version is provided • My personal preference: Use “latest“ as “stable release” • Use a $VERSION variable in Docker-Compose-files • Automatically produce docker-compose files with explicit versions • Keep Maven POM version == Docker version tag swaggerapi/swagger-ui:latestubuntu:latest https://hub.docker.com/_/ubuntu/ https://hub.docker.com/r/swaggerapi/swagger-ui/ vs. “latest LTS release“ “nightly“
  • 17. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 17 - Lesson 3: Docker & Security – it’s complicated „Docker is a completely new way to ship security flaws!“ - The Internet Shu, R., Gu, X., & Enck, W. (2017). A Study of Security Vulnerabilities on Docker Hub. In Proceedings of the Seventh ACM on Conference on Data and Application Security and Privacy - CODASPY ’17 (pp. 269–280). https://doi.org/10.1145/3029806.3029832 Gummaraju, J., Desikan, T., & Turner, Y. (2015). Over 30% of Official Images in Docker Hub Contain High Priority Security Vulnerabilities. Https://Banyanops.Com, (May), 1–6. Retrieved from https://banyanops.com/blog/analyzing-docker-hub/
  • 18. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 18 - Lesson 3: Docker & Security – it’s complicated More about this in: Lesson 7: Use Build Infrastructure Does this comply to BMWi’s Merkblatt f. die Behandlung von VS-NfD? IBM, Xen, Huawei: Virtual Machines • With the base image concept, large amounts of binaries are pulled and executed automatically from the internet • The Docker daemon has root-level permissions and communicates directly with the host OS kernel • Attack vector syscalls – can SELinux, S-Virt, Seccomp, … help? • What we can do: • Have a local custom registry with approved base images • Install update for software within the Docker images -> regularly rebuild all layers without using the cache
  • 19. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 19 - Lesson 4: Docker is not done yet • Docker is under heavy development • #1 information source: GitHub issue tracker • Docker is not trivial, requires cross- technology knowledge • Missing features (such as: management of dangling volumes, no data volume management) • Missing concepts (such as: runtime dependency between containers and large data assets) • Painful use of Docker on Windows 7 • Non-native Docker engine • Windows Shell / Linux Bash dichotomy but Windows 10 is not VS-NfD-ready yet...
  • 20. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 20 - Lesson 5: Have a Docker-ready software architecture Web page title http://www.url.com Upload Message Queue Web page title http://www.url.com My Worker My Worker My Worker My Worker Workers can scale Job queue is flexible enough and never forgets Complexity hidden from the user “Post box” pattern
  • 21. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 21 - Orchestrator Lesson 5: Have a Docker-ready software architecture Web page title http://www.url.com 4 Orchestrator-aware API Gateway routes and scales automatically My Service 2 Services deliver complete page fragments, e.g. via Edge Side Includes My Service 3 My Service 3 My Service 1 Dynamic Web Content Assembly / „Chatty Architecture“ APIGateway My Service 3
  • 22. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 22 - Lesson 5: Have a Docker-ready software architecture • Design the scalability of your application alongside Docker’s capabilities • Beware of a cargo cult: Docker is not a “lift and shift” technology! • Porting monolithic / legacy / GUI applications might not be feasible • However: Scalability is not the only reason to use Docker Orchestrator Web page title http://www.url.com 4My Service 2 My Service 3 My Service 3 My Service 3 APIGateway My Service 1 Web page title http://www.url.com Upload Message Queue Web page title http://www.url.com My Worker My Worker My Worker My Worker Dynamic Web Content Assembly / „Chatty Architecture“ “Post box” pattern A fully documented software stack as code Being able to package, rollout and execute
  • 23. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 23 - Well this is also possible… Docker Image (Ubuntu) Docker Engine Java.exe Wine EA.exeEA.dll JAR Using a Windows-Java-native DLL and Windows application in Docker
  • 24. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 24 - … or this… Docker Image (Ubuntu) Docker Engine Using a Windows-Java-native DLL and Windows GUI application in Docker VNC Server Wine Java.exe EA.exeEA.dll JAR
  • 25. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 25 - Lesson 6: Docker the MVP-Enabler • Docker is a nice contribution to the ecosystem for MVPs and Rapid Prototyping • Contract first • Generate backend and frontend stubs • Package in Docker • Let the backend evolve • Throw-away demos for customer feature demonstrations • Thanks to Docker, all demos are kept available, infrastructure might change entirely GUI Demo Backend Version 1 API Definition Another GUI Demo MVP GUI Backend Version 2 MVP Backend t e.g. with tools like Swagger Java Code Gen produces JAX-RS compliant stub Maven plugin detects JAX-RS, builds Docker image
  • 26. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 26 - Lesson 7: Use Build Infrastructure • Re-inventing the wheel • Configure IDE • Manage and download dependencies • Package software • Execute unit tests and integration tests • Distributing software packages • Continuously monitor source control, build • Determine the common build status (“Are we green?”) • Document operational environment • Install, configure and start-up operational environment • Install, configure and start-up runtime dependency software such as Databases • Prepare, package, configure, distribute and install releases Developers are payed for: Developers are not payed for: Build Management Continuous Integration Containers Continuous Delivery Commodities• Developing software Things developers want to do: Things developers don’t want to do: Build Infrastructure helps automating this
  • 27. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 27 - Lesson 7: Use Build Infrastructure • Use Build infrastructure to • Continuously build Docker images • Do the testing, indicate results • Push images / roll-out • Launch complete software stack • Overnight complete rebuild of all layers • Automation means: standardisation of build and deployment processes Jenkins, GitLab Pipelines, etc…
  • 28. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 28 - Lesson 8: Streamline Developer’s Workflow Jenkins GitLab Developer commit Notify on test failure Nexus JAR checkout test package bring online „Oh look it is working!“ push push update for specific tag e.g. Web-Based Application e.g. Distributed Calculation new version triggers commit new pom.xml Tag specific version push tag Microsoft Windows [Version 7.1.7000] Copyright (c) 2008 Microsoft Corporation. All rights reserved. C:UsersUserName>
  • 29. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 29 - Lesson 9: Rethink Infrastructure 16 CPUs 64 GB RAM XenServer 16 CPUs 64 GB RAM Ubuntu Host Ubuntu Host My App My App Docker Engine Docker Engine Single-threaded bottlenecks Incomplete Docker- migration Micro management of resources
  • 30. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 30 - Lesson 9: Rethink Infrastructure 32 CPUs 128 GB RAM XenServer Ubuntu Host My App My App My App My App Job Data Docker Engine All resources are available to Docker Scale on demand More efficient use of (rented) resources Common persistent Job data storage
  • 31. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 31 - My App My App My App My App My App Ubuntu Host Job Data Lesson 9: Rethink Infrastructure 32 CPUs 128 GB RAM XenServer Ubuntu Host Docker Engine 2. Init debug instance 3. Re-execute failed commands in production-like environment Job Data 1. Connect to host via SSH Debugging production in 3 simple steps
  • 32. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 32 - Lesson 10: Refactor mind sets “Machines should work, Humans should think” • Architectural changes, building and shipping is daily business • Promote use of standard tools over custom solutions • Promote a culture of documentation • The one who deploys (or tells systems to do so) defines the rules for collaboration • Tech. project management / “Operations person” / everybody does DevOps? • “Cool technology” vs. young computer science graduates • Technological product roadmap is impacted by the level of knowledge of graduates in the field Two main enemies: fears & secrets New Role?
  • 33. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 33 - Lessons learned from two years of Docker Lesson 1: Understand the tools you use Lesson 2: Meanings of “latest” Lesson 3: Docker & Security – it’s complicated Lesson 4: Docker is not done yet Lesson 5: Have a Docker-ready architecture Lesson 6: Docker, the MVP enabler Lesson 7: Use Build Infrastructure Lesson 8: Streamline Developer’s Workflow Lesson 9: Rethink Infrastructure Lesson 10: Refactor mind sets Docker Basics Software- Architecture Processes Infrastructure Mindsets
  • 34. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 34 - Interesting readings and tools Must-read: Docker Best Practices https://docs.docker.com/engine/userguide/eng-image/dockerfile_best- practices/ Advanced: Good container practices https://l0rd.github.io/containerspatterns/ Graphical User Interfaces for Docker Engine Management UI for Docker, Portainer Docker-Container Auto-Update Watchtower
  • 35. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 35 - What‘s next: Windows-native Software in Docker • Future versions of Docker: Run Windows-native and Linux-native containers on one Windows host
  • 36. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 36 - What‘s next: Streamlined Orchestrator Workflows • Build ecosystems for the automatic creation of microservices and for debugging them (e.g. fabric8) • Complete toolchain to cover the Plan-Code-Verify-Package-Release- Configure-Monitor lifecycle (e.g. GitLab) for example...
  • 37. Docker – BWI Innovation Talk – 2018-03-27 Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics - 37 - What‘s next: Serverless • Don’t pay idle – “run code, not a server!” • Complex, event-based execution, hard to debug, often highly proprietary • Especially useful when deployables must scale rapidly • Scenarios: Thumbnail creation, Event Streaming, Resource Optimisation, … Source:W-Jax2017:LarsRöwekamp–Cloud-Workshop– VomCloud-MuffelzumCloud-NativeinsechsStunden
  • 38. Thank You 🍀 Font Rufscript by Hiran Venugopalan is licenced under the terms of GPL with font exception. https://github.com/heussd/docker-bwi-innovation-talk Dr. Timm Heuss Fraunhofer Institute for Communication, Information Processing and Ergonomics Fraunhoferstraße 20 53343 Wachtberg Germany Timm.Heuss@fkie.fraunhofer.de +49 228 9435-154 These slides are available online:

Editor's Notes

  1. z.B. traefik
  2. Daily stand up Standardisierender Faktor (“Works for me” vs. “Are we green?”)