SlideShare a Scribd company logo
Docker:
Everything you
should know
1 / 35
Who am I?
Aaron Huslage (@huslage)
Sysadmin since 1993
Since April 2014: Solution Engineer @ Docker
2 / 35
Outline
Why Docker?
What's Docker?
How to get started?
3 / 35
Why Docker?
4 / 35
Why Docker?
Faster application development cycle
Multiplication of environments
Scaling requirements
5 / 35
Yesterday: slow cycles (months/years)
Specification
Implementation
Validation
Release
Maintenance
6 / 35
Today: fast cycles (weeks/days)
Minimum Viable Product
Short iterations (sprints)
Continuous Deployment
A project is never "done" or "over"
Agile methods
7 / 35
Yesterday: single environment
One language
One framework
One database
One server
(+ sometimes a dev environment)
8 / 35
Today: many environments
Many languages
Polyglot platforms
Simultaneous use of SQL, NoSQL ...
The right tool for the right job
Many servers
(everybody has their local dev env;
there are many envs for testing, CI, QA, etc.)
9 / 35
Yesterday: slow, vertical deployment
New versions once in a while
Installed to few servers (sometimes just one)
Scaling = scaling up (you're gonna need a bigger server)
Scaling must be planned far ahead
10 / 35
Today: rapid, horizontal deployment
New versions all the time
(every week / day / hour)
Installed to many servers
Scaling = scaling out (MOAR servers!)
Need to be able to scale quickly
11 / 35
What is Docker?
12 / 35
What is Docker?
Container execution engine
Container build system
Container image distribution
Ginormous ecosystem
13 / 35
Container execution engine
~Hypervisor for containers
Container =~ lightweight virtual machine
... What is a container???
14 / 35
15 / 35
Container
It looks and feels like a VM
Standard UNIX processes, isolated by kernel mechanisms:
namespaces
cgroups (control groups)
copy-on-write
Insanely fast boot times
Insanely low resource usage
16 / 35
Build system
Dockerfile= recipe describing the build process
Easy to learn (similar to shell scripting)
Fast (caching system)
Reliable, reproducible
17 / 35
Build system
Dockerfile= recipe describing the build process
Easy to learn (similar to shell scripting)
Fast (caching system)
Reliable, reproducible
Let's have our cake - and eat it too
(Compared to classic scripting, or configuration
management systems like Puppet, Chef, Salt, Ansible...)
18 / 35
19 / 35
Image format
Problem: VM images are big
Solution 1: container images are smaller
doesn't need hardware support, kernel, drivers ...
separate handling of logs, metrics, backups ...
Solution 2: images broken down into layers
1 layer = 1 build step
example: base system, packages, code, config
only transfer updated layers
20 / 35
Distribution protocol
Problem: it's both too simple and too complicated
"just do taror rsync...
21 / 35
Distribution protocol
Problem: it's both too simple and too complicated
"just do taror rsync...
... with these 5 cryptic options, and it works"
22 / 35
Distribution protocol
Problem: it's both too simple and too complicated
"just do taror rsync...
... with these 5 cryptic options, and it works"
(mostly)
23 / 35
Distribution protocol
Problem: it's both too simple and too complicated
"just do taror rsync...
... with these 5 cryptic options, and it works"
(mostly)
Solution: Docker Registry
transfer layers via an open REST API
open source reference implementation
free service for public images
(à la GitHub)
24 / 35
25 / 35
Ecosystem: images
~100 official images
Linux distros
(Debian, Ubuntu, CentOS, Fedora, ...)
components
(MySQL, Redis, PostgreSQL, MongoDB, NGINX...)
languages
(Python, Ruby, Java, Go, Node...)
applications
(Wordpress...)
~150,000 contributed images
26 / 35
Ecosystem: code
~100,000 GitHub repositories have a Dockerfile
~1000 contributors to Docker code
Thousands of projects integrating with Docker
Some official tools:
Machine (deploy Docker hosts)
Compose (manage multi-container applications)
Swarm (cluster multiple Docker hosts together)
27 / 35
One example: Docker Compose
Assemble application from multiple containers
Define parameters of each container
how to build it
how to run it
(command, arguments, environment...)
network port mappings
linking between containers
28 / 35
29 / 35
How to get
started?
30 / 35
If you're in a hurry
OS X, Windows: Docker Toolbox + boot2docker
tiny VM image (less than 30 MB)
works on (most) physical and virtual machines
Linux: get.docker.com
shell script
usable with Cloud Init or |sh*
* Make sure you use https and nobody gets hurt!
31 / 35
If you like reading
docs.docker.com
start with "get started" (duh!)
(it's written in good old "howto" style)
reference documentations
32 / 35
If you like looking at / listening to
training.docker.com
Free, official training videos
Intro to Docker
(general concepts)
Docker Fundamentals
(first steps with Docker)
Docker Operations
(using Machine, Swarm, Compose)
33 / 35
How to "Dockerize" my app?
1. Write a Dockerfilefor the main component
2. Write a docker-compose.ymlfor the app itself
3. Use Docker+Compose during development
4. Use Docker+Compose for testing/QA/acceptance...
5. (Optionally) setup CI/CD
6. Go to production with Docker+Compose
(static resource scheduling)
If you have 100s of apps with 100s of containers (each):
setup a self-service container platform for your developers
(using e.g. Swarm, Mesos, Kubernetes...)
34 / 35
Questions?
@huslage
@docker
35 / 35

More Related Content

What's hot

Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
Sparkbit
 
Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015
Jérôme Petazzoni
 
Intro To Docker
Intro To DockerIntro To Docker
Intro To Docker
Jessica Lucci
 
Introduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" EditionIntroduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" Edition
Jérôme Petazzoni
 
Understanding LXC & Docker
Understanding LXC & DockerUnderstanding LXC & Docker
Understanding LXC & Docker
Comprinno Technologies
 
Wso2 con 2014-us-tutorial-apache stratos-wso2 private paas with docker integr...
Wso2 con 2014-us-tutorial-apache stratos-wso2 private paas with docker integr...Wso2 con 2014-us-tutorial-apache stratos-wso2 private paas with docker integr...
Wso2 con 2014-us-tutorial-apache stratos-wso2 private paas with docker integr...
Lakmal Warusawithana
 
Docker on Windows
Docker on WindowsDocker on Windows
Docker on Windows
Stefan Scherer
 
Linux Container Technology 101
Linux Container Technology 101Linux Container Technology 101
Linux Container Technology 101
inside-BigData.com
 
Intro to Docker (hands-on session)
Intro to Docker (hands-on session)Intro to Docker (hands-on session)
Intro to Docker (hands-on session)
Nilesh ☁ Londhe
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
Layne Peng
 
Introducing docker
Introducing dockerIntroducing docker
Introducing docker
Dharmit Shah
 
Docker: Testing to Production
Docker: Testing to ProductionDocker: Testing to Production
Docker: Testing to Production
Edwin Fuquen
 
Containers: The What, Why, and How
Containers: The What, Why, and HowContainers: The What, Why, and How
Containers: The What, Why, and How
Sneha Inguva
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
Hiroki Endo
 
Docker Architecture (v1.3)
Docker Architecture (v1.3)Docker Architecture (v1.3)
Docker Architecture (v1.3)
rajdeep
 
Introduction to docker and docker compose
Introduction to docker and docker composeIntroduction to docker and docker compose
Introduction to docker and docker compose
Lalatendu Mohanty
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
Imesh Gunaratne
 
Containers and docker
Containers and dockerContainers and docker
Containers and docker
SUDIP GHOSH
 
Docker Tips And Tricks at the Docker Beijing Meetup
Docker Tips And Tricks at the Docker Beijing MeetupDocker Tips And Tricks at the Docker Beijing Meetup
Docker Tips And Tricks at the Docker Beijing Meetup
Jérôme Petazzoni
 
VASCAN - Docker and Security
VASCAN - Docker and SecurityVASCAN - Docker and Security
VASCAN - Docker and Security
Michael Irwin
 

What's hot (20)

Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015Containers: from development to production at DevNation 2015
Containers: from development to production at DevNation 2015
 
Intro To Docker
Intro To DockerIntro To Docker
Intro To Docker
 
Introduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" EditionIntroduction to Docker, December 2014 "Tour de France" Edition
Introduction to Docker, December 2014 "Tour de France" Edition
 
Understanding LXC & Docker
Understanding LXC & DockerUnderstanding LXC & Docker
Understanding LXC & Docker
 
Wso2 con 2014-us-tutorial-apache stratos-wso2 private paas with docker integr...
Wso2 con 2014-us-tutorial-apache stratos-wso2 private paas with docker integr...Wso2 con 2014-us-tutorial-apache stratos-wso2 private paas with docker integr...
Wso2 con 2014-us-tutorial-apache stratos-wso2 private paas with docker integr...
 
Docker on Windows
Docker on WindowsDocker on Windows
Docker on Windows
 
Linux Container Technology 101
Linux Container Technology 101Linux Container Technology 101
Linux Container Technology 101
 
Intro to Docker (hands-on session)
Intro to Docker (hands-on session)Intro to Docker (hands-on session)
Intro to Docker (hands-on session)
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Introducing docker
Introducing dockerIntroducing docker
Introducing docker
 
Docker: Testing to Production
Docker: Testing to ProductionDocker: Testing to Production
Docker: Testing to Production
 
Containers: The What, Why, and How
Containers: The What, Why, and HowContainers: The What, Why, and How
Containers: The What, Why, and How
 
Introduction to docker
Introduction to dockerIntroduction to docker
Introduction to docker
 
Docker Architecture (v1.3)
Docker Architecture (v1.3)Docker Architecture (v1.3)
Docker Architecture (v1.3)
 
Introduction to docker and docker compose
Introduction to docker and docker composeIntroduction to docker and docker compose
Introduction to docker and docker compose
 
An Introduction to Kubernetes
An Introduction to KubernetesAn Introduction to Kubernetes
An Introduction to Kubernetes
 
Containers and docker
Containers and dockerContainers and docker
Containers and docker
 
Docker Tips And Tricks at the Docker Beijing Meetup
Docker Tips And Tricks at the Docker Beijing MeetupDocker Tips And Tricks at the Docker Beijing Meetup
Docker Tips And Tricks at the Docker Beijing Meetup
 
VASCAN - Docker and Security
VASCAN - Docker and SecurityVASCAN - Docker and Security
VASCAN - Docker and Security
 

Viewers also liked

DockerCon EU 2015 Barcelona
DockerCon EU 2015 BarcelonaDockerCon EU 2015 Barcelona
DockerCon EU 2015 Barcelona
Roman Dembitsky
 
Docker - Ankara JUG, Nisan 2015
Docker - Ankara JUG, Nisan 2015Docker - Ankara JUG, Nisan 2015
Docker - Ankara JUG, Nisan 2015
Mustafa AKIN
 
Microservices using relocatable Docker containers
Microservices using relocatable Docker containersMicroservices using relocatable Docker containers
Microservices using relocatable Docker containers
Mauricio Garavaglia
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
Hao Fan
 
What is this "docker"
What is this  "docker" What is this  "docker"
What is this "docker"
Jean-Marc Meessen
 
Docker: the road ahead
Docker: the road aheadDocker: the road ahead
Docker: the road ahead
shykes
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
Docker, Inc.
 
Docker by Example - Basics
Docker by Example - Basics Docker by Example - Basics
Docker by Example - Basics
Ganesh Samarthyam
 
Docker Workshop
Docker WorkshopDocker Workshop
Docker Workshop
Ahmad Rafiee
 
Docker presentation
Docker presentationDocker presentation
Docker presentation
Jaskaran Singh
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
Peng Xiao
 

Viewers also liked (11)

DockerCon EU 2015 Barcelona
DockerCon EU 2015 BarcelonaDockerCon EU 2015 Barcelona
DockerCon EU 2015 Barcelona
 
Docker - Ankara JUG, Nisan 2015
Docker - Ankara JUG, Nisan 2015Docker - Ankara JUG, Nisan 2015
Docker - Ankara JUG, Nisan 2015
 
Microservices using relocatable Docker containers
Microservices using relocatable Docker containersMicroservices using relocatable Docker containers
Microservices using relocatable Docker containers
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
What is this "docker"
What is this  "docker" What is this  "docker"
What is this "docker"
 
Docker: the road ahead
Docker: the road aheadDocker: the road ahead
Docker: the road ahead
 
Docker 101: Introduction to Docker
Docker 101: Introduction to DockerDocker 101: Introduction to Docker
Docker 101: Introduction to Docker
 
Docker by Example - Basics
Docker by Example - Basics Docker by Example - Basics
Docker by Example - Basics
 
Docker Workshop
Docker WorkshopDocker Workshop
Docker Workshop
 
Docker presentation
Docker presentationDocker presentation
Docker presentation
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 

Similar to All Things Open 2015: DOCKER: EVERYTHING YOU SHOULD KNOW

Docker dDessi november 2015
Docker dDessi november 2015Docker dDessi november 2015
Docker dDessi november 2015
Massimiliano Dessì
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014
Carlo Bonamico
 
Michigan IT Symposium 2017 - Container BOF
Michigan IT Symposium 2017 - Container BOFMichigan IT Symposium 2017 - Container BOF
Michigan IT Symposium 2017 - Container BOF
Jeffrey Sica
 
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
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
Puneet Kumar Bhatia (MBA, ITIL V3 Certified)
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
Puneet Kumar Bhatia (MBA, ITIL V3 Certified)
 
Docker Ecosystem on Azure
Docker Ecosystem on AzureDocker Ecosystem on Azure
Docker Ecosystem on Azure
Patrick Chanezon
 
Docker 101 Workshop slides (JavaOne 2017)
Docker 101 Workshop slides (JavaOne 2017)Docker 101 Workshop slides (JavaOne 2017)
Docker 101 Workshop slides (JavaOne 2017)
Eric Smalling
 
Going Production with Docker and Swarm
Going Production with Docker and SwarmGoing Production with Docker and Swarm
Going Production with Docker and Swarm
C4Media
 
An Updated Performance Comparison of Virtual Machines and Linux Containers
An Updated Performance Comparison of Virtual Machines and Linux ContainersAn Updated Performance Comparison of Virtual Machines and Linux Containers
An Updated Performance Comparison of Virtual Machines and Linux Containers
Kento Aoyama
 
Introduction to Docker at the Azure Meet-up in New York
Introduction to Docker at the Azure Meet-up in New YorkIntroduction to Docker at the Azure Meet-up in New York
Introduction to Docker at the Azure Meet-up in New York
Jérôme Petazzoni
 
Containerization Is More than the New Virtualization
Containerization Is More than the New VirtualizationContainerization Is More than the New Virtualization
Containerization Is More than the New Virtualization
C4Media
 
Docker's Jérôme Petazzoni: Best Practices in Dev to Production Parity for Con...
Docker's Jérôme Petazzoni: Best Practices in Dev to Production Parity for Con...Docker's Jérôme Petazzoni: Best Practices in Dev to Production Parity for Con...
Docker's Jérôme Petazzoni: Best Practices in Dev to Production Parity for Con...
Heavybit
 
Demystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data ScientistsDemystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data Scientists
Dr Ganesh Iyer
 
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Ambassador Labs
 
Docker Understanding, What is Docker? Why Docker? How do I containerize somet...
Docker Understanding, What is Docker? Why Docker? How do I containerize somet...Docker Understanding, What is Docker? Why Docker? How do I containerize somet...
Docker Understanding, What is Docker? Why Docker? How do I containerize somet...
Yogesh Wadile
 
SQL Server in DevOps Town Hall Webinar
SQL Server in DevOps Town Hall WebinarSQL Server in DevOps Town Hall Webinar
SQL Server in DevOps Town Hall Webinar
Travis Wright
 
OpenStack Summit
OpenStack SummitOpenStack Summit
OpenStack Summit
Docker, Inc.
 
Linux containers & Devops
Linux containers & DevopsLinux containers & Devops
Linux containers & Devops
Maciej Lasyk
 
Docker intro
Docker introDocker intro
Docker intro
Oleg Z
 

Similar to All Things Open 2015: DOCKER: EVERYTHING YOU SHOULD KNOW (20)

Docker dDessi november 2015
Docker dDessi november 2015Docker dDessi november 2015
Docker dDessi november 2015
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014
 
Michigan IT Symposium 2017 - Container BOF
Michigan IT Symposium 2017 - Container BOFMichigan IT Symposium 2017 - Container BOF
Michigan IT Symposium 2017 - Container BOF
 
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...
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Docker Ecosystem on Azure
Docker Ecosystem on AzureDocker Ecosystem on Azure
Docker Ecosystem on Azure
 
Docker 101 Workshop slides (JavaOne 2017)
Docker 101 Workshop slides (JavaOne 2017)Docker 101 Workshop slides (JavaOne 2017)
Docker 101 Workshop slides (JavaOne 2017)
 
Going Production with Docker and Swarm
Going Production with Docker and SwarmGoing Production with Docker and Swarm
Going Production with Docker and Swarm
 
An Updated Performance Comparison of Virtual Machines and Linux Containers
An Updated Performance Comparison of Virtual Machines and Linux ContainersAn Updated Performance Comparison of Virtual Machines and Linux Containers
An Updated Performance Comparison of Virtual Machines and Linux Containers
 
Introduction to Docker at the Azure Meet-up in New York
Introduction to Docker at the Azure Meet-up in New YorkIntroduction to Docker at the Azure Meet-up in New York
Introduction to Docker at the Azure Meet-up in New York
 
Containerization Is More than the New Virtualization
Containerization Is More than the New VirtualizationContainerization Is More than the New Virtualization
Containerization Is More than the New Virtualization
 
Docker's Jérôme Petazzoni: Best Practices in Dev to Production Parity for Con...
Docker's Jérôme Petazzoni: Best Practices in Dev to Production Parity for Con...Docker's Jérôme Petazzoni: Best Practices in Dev to Production Parity for Con...
Docker's Jérôme Petazzoni: Best Practices in Dev to Production Parity for Con...
 
Demystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data ScientistsDemystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data Scientists
 
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
Velocity NYC 2017: Building Resilient Microservices with Kubernetes, Docker, ...
 
Docker Understanding, What is Docker? Why Docker? How do I containerize somet...
Docker Understanding, What is Docker? Why Docker? How do I containerize somet...Docker Understanding, What is Docker? Why Docker? How do I containerize somet...
Docker Understanding, What is Docker? Why Docker? How do I containerize somet...
 
SQL Server in DevOps Town Hall Webinar
SQL Server in DevOps Town Hall WebinarSQL Server in DevOps Town Hall Webinar
SQL Server in DevOps Town Hall Webinar
 
OpenStack Summit
OpenStack SummitOpenStack Summit
OpenStack Summit
 
Linux containers & Devops
Linux containers & DevopsLinux containers & Devops
Linux containers & Devops
 
Docker intro
Docker introDocker intro
Docker intro
 

Recently uploaded

GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Zilliz
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 

Recently uploaded (20)

GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 

All Things Open 2015: DOCKER: EVERYTHING YOU SHOULD KNOW

  • 2. Who am I? Aaron Huslage (@huslage) Sysadmin since 1993 Since April 2014: Solution Engineer @ Docker 2 / 35
  • 3. Outline Why Docker? What's Docker? How to get started? 3 / 35
  • 5. Why Docker? Faster application development cycle Multiplication of environments Scaling requirements 5 / 35
  • 6. Yesterday: slow cycles (months/years) Specification Implementation Validation Release Maintenance 6 / 35
  • 7. Today: fast cycles (weeks/days) Minimum Viable Product Short iterations (sprints) Continuous Deployment A project is never "done" or "over" Agile methods 7 / 35
  • 8. Yesterday: single environment One language One framework One database One server (+ sometimes a dev environment) 8 / 35
  • 9. Today: many environments Many languages Polyglot platforms Simultaneous use of SQL, NoSQL ... The right tool for the right job Many servers (everybody has their local dev env; there are many envs for testing, CI, QA, etc.) 9 / 35
  • 10. Yesterday: slow, vertical deployment New versions once in a while Installed to few servers (sometimes just one) Scaling = scaling up (you're gonna need a bigger server) Scaling must be planned far ahead 10 / 35
  • 11. Today: rapid, horizontal deployment New versions all the time (every week / day / hour) Installed to many servers Scaling = scaling out (MOAR servers!) Need to be able to scale quickly 11 / 35
  • 13. What is Docker? Container execution engine Container build system Container image distribution Ginormous ecosystem 13 / 35
  • 14. Container execution engine ~Hypervisor for containers Container =~ lightweight virtual machine ... What is a container??? 14 / 35
  • 16. Container It looks and feels like a VM Standard UNIX processes, isolated by kernel mechanisms: namespaces cgroups (control groups) copy-on-write Insanely fast boot times Insanely low resource usage 16 / 35
  • 17. Build system Dockerfile= recipe describing the build process Easy to learn (similar to shell scripting) Fast (caching system) Reliable, reproducible 17 / 35
  • 18. Build system Dockerfile= recipe describing the build process Easy to learn (similar to shell scripting) Fast (caching system) Reliable, reproducible Let's have our cake - and eat it too (Compared to classic scripting, or configuration management systems like Puppet, Chef, Salt, Ansible...) 18 / 35
  • 20. Image format Problem: VM images are big Solution 1: container images are smaller doesn't need hardware support, kernel, drivers ... separate handling of logs, metrics, backups ... Solution 2: images broken down into layers 1 layer = 1 build step example: base system, packages, code, config only transfer updated layers 20 / 35
  • 21. Distribution protocol Problem: it's both too simple and too complicated "just do taror rsync... 21 / 35
  • 22. Distribution protocol Problem: it's both too simple and too complicated "just do taror rsync... ... with these 5 cryptic options, and it works" 22 / 35
  • 23. Distribution protocol Problem: it's both too simple and too complicated "just do taror rsync... ... with these 5 cryptic options, and it works" (mostly) 23 / 35
  • 24. Distribution protocol Problem: it's both too simple and too complicated "just do taror rsync... ... with these 5 cryptic options, and it works" (mostly) Solution: Docker Registry transfer layers via an open REST API open source reference implementation free service for public images (à la GitHub) 24 / 35
  • 26. Ecosystem: images ~100 official images Linux distros (Debian, Ubuntu, CentOS, Fedora, ...) components (MySQL, Redis, PostgreSQL, MongoDB, NGINX...) languages (Python, Ruby, Java, Go, Node...) applications (Wordpress...) ~150,000 contributed images 26 / 35
  • 27. Ecosystem: code ~100,000 GitHub repositories have a Dockerfile ~1000 contributors to Docker code Thousands of projects integrating with Docker Some official tools: Machine (deploy Docker hosts) Compose (manage multi-container applications) Swarm (cluster multiple Docker hosts together) 27 / 35
  • 28. One example: Docker Compose Assemble application from multiple containers Define parameters of each container how to build it how to run it (command, arguments, environment...) network port mappings linking between containers 28 / 35
  • 31. If you're in a hurry OS X, Windows: Docker Toolbox + boot2docker tiny VM image (less than 30 MB) works on (most) physical and virtual machines Linux: get.docker.com shell script usable with Cloud Init or |sh* * Make sure you use https and nobody gets hurt! 31 / 35
  • 32. If you like reading docs.docker.com start with "get started" (duh!) (it's written in good old "howto" style) reference documentations 32 / 35
  • 33. If you like looking at / listening to training.docker.com Free, official training videos Intro to Docker (general concepts) Docker Fundamentals (first steps with Docker) Docker Operations (using Machine, Swarm, Compose) 33 / 35
  • 34. How to "Dockerize" my app? 1. Write a Dockerfilefor the main component 2. Write a docker-compose.ymlfor the app itself 3. Use Docker+Compose during development 4. Use Docker+Compose for testing/QA/acceptance... 5. (Optionally) setup CI/CD 6. Go to production with Docker+Compose (static resource scheduling) If you have 100s of apps with 100s of containers (each): setup a self-service container platform for your developers (using e.g. Swarm, Mesos, Kubernetes...) 34 / 35