a dive into containers and docker
TRANSCRIPT
1
A Dive Into Containers and DockerMatt Farina / @mattfarinaCloudDevelop 2015
2
•@mattfarina•mattfarina.com•HP Hewlett Packard Enterprise
• Advanced Technology Group
• Go, Node.js, PHP, Ruby, .NET, Python
• 5 years building in cloud
3
http://www.slideshare.net/mattfarina/a-dive-into-containers-and-docker
4
1.Historical2.Informational3.Practical
5
Change
6
7
History: From The Beginning Up To Containers
Long Ago 1980’s 1990’s 2000’s 2010’s
Way Back WhenThe wheel
1990First WebBrowser
1989Web Invented
1995Beowulf cluster
2006AWS
2007Heroku
0/0/0000Calendars reset
1984DEC VAXcluster
2001VMwareESX Server
2011Cloud Foundry
2010OpenStack
8
Compute Networking Storage
9
10
11
But, Containers Aren’t A New Technology
https://www.flickr.com/photos/littlemisspurps/14925392516/
12
History: Container Highlights
Long Ago 1980’s 1990’s 2000’s 2010’s
Way Back WhenThe wheel
1990First WebBrowser
1989Web Invented
1995Beowulf cluster
2006AWS
2007Heroku
0/0/0000Calendars reset
1984DEC VAXcluster
2001VMwareESX Server
2011Cloud Foundry
2010OpenStack
2000FreeBSDJails
2004SolarisContainers
1979Unix chroot
2005OpenVZ
2007cgroups
2015Google BorgPaper
2013Docker
13
What did Docker do to make containers a hit?
14
User Experience
https://www.flickr.com/photos/pveugen/3182820590/
15
16
17
Virtual Machines
ServerHost OS
Hypervisor
Guest OS
Guest OS
Guest OS
bins/libs bins/libs bins/libs
App A1 App A2 App B
18
Virtual Machines vs. Containers
ServerHost OS
Hypervisor
Guest OS
Guest OS
Guest OS
bins/libs bins/libs bins/libs
App A1 App A2 App B
ServerHost OS
bins/libs bins/libs
App A1
App A2 App B
Cont
ain
er
Man
ager
19
Virtual Machine Unused Resources
Server
VM VM VM
App App App
VM VM VM
App App AppUnused Space InsideEach VM
20
Virtual Machines vs. Containers
Server Server
VM VM VM
App App App
VM VM VM
App App App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
21
bins / libsAre Layered
Layers Are ReusableAnd Shared
22
An Example of Layers
Ubuntu
Java
Tomcat
An Application
23
Layers Are Shared
Server
Host OS
Ubuntu
Java Go
Tomcat
App A
App B App C
24
Layers Are Shared
Server
Host OS
Ubuntu
Java Go
Tomcat
App A
App B App C
31 2 4 5 6
25
Volumes
25
/var/volume2
/var/volume1
Container
26 https://www.flickr.com/photos/jakerust/16844922351
27
Virtual Machines can have hardware level separation
28
Virtual Machine Border
Server
VM
AppVirtual Machines havea border of hardwareemulation
VM
App
VM
App
VM
App
VM
App
VM
App
29
Virtual MachinesAre A Fairly SafeMulti-Tenant Solution
30
What aboutcontainers?
https://www.flickr.com/photos/arboghast/3176160087/
31 https://www.flickr.com/photos/kevandotorg/6229660191
32
A Shared Kernel and Drivers
Server
Host OS
bins/libs bins/libs
App A1
App A2 App B
Cont
ain
er
Man
ager
Kernel Drivers
33
A Company Datacenter As ATrusted Place
34
35
Intel Clear ContainersLeverage:•Virtualization technology•Kernel Optimizations•Systemd Optimizations•DAX (direct access) in 4.0 kernel•Kernet same-page merging (KSM)
•More…
36 https://www.flickr.com/photos/kevandotorg/6229660191
37
38
Docker Engine
39
40
App Container spec
41
42
If You’re Using It Today
43
44
You Don’t Want To RunContainers InIsolation
45
46
47
Dynamic Scheduling
Machine
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
AppAPI
Metadata+
Supporting Things
Application+
Cloud Native Arch
48
A Machine Can Be A Server Or A Lot More
49
Deployment
Provisioning
Lifecycle Manageme
nt
Service Manageme
nt
Reporting And
Monitoring
50
PaaS For More Than Web Applications
51
The Docker WayDocker Swarm Docker Compose
52
53
54
55
Code
Push
ScanTest
Deploy
CI/CD
56
57
Jenkins + Docker
58
59
What Can You Use Today?1.Docker
60
What Can You Use Today?1.Docker2.Travis CI
61
What Can You Use Today?1.Docker2.Travis CI or Jenkins + CloudBees Docker Custom Build Environment Plugin
62
What Can You Use Today?1.Docker2.Travis CI or Jenkins + CloudBees Docker Custom Build Environment Plugin
3.Docker Hub
63
What Can You Use Today?1.Docker2.Travis CI or Jenkins + CloudBees Docker Custom Build Environment Plugin
3.Docker Hub4.Stackato
64
What Can You Use Today?1.Docker2.Travis CI or Jenkins + CloudBees Docker Custom Build Environment Plugin
3.Docker Hub4.Stackato or Kubernetes (Azure and Google Cloud offer k8s)
What’s Coming Soon-ish
65
66
+
67
68
69
Q&A
Matt [email protected]
http://www.slideshare.net/mattfarina/a-dive-into-containers-and-docker
70
Thank you
Matt [email protected]
http://www.slideshare.net/mattfarina/a-dive-into-containers-and-docker