Docker: the road ahead
So... what do we do now?
aka
Why are we here?
We have a blueprint
“My thought in the 70s was that the
Internet was a really good scalable
design, and we should make a
virtual internet of virtual machines
that could be cached by the
hardware machines.
It’s really too bad this didn’t happen
Alan Kay
Upgrade the Internet
time to
We have the technology
bandwidth, storage, compute, sandboxing,
crypto, compression, copy-on-write
filesystems, paxos/raft...
We have standard interfaces
Time to fix this!
It’s getting people to agree on something
The real value of Docker is not technology
1. Packaging and distribution
2. Sandboxing
libcontainer
A standard interface to OS sandboxing
namespaces, cgroups, capabilities,
netlink, selinux, apparmor
Core Docker component...
But also usable standalone
libcontainer
A standard interface to OS sandboxing
A few announcements.
libcontainer
github.com/docker/libcontainer
Now a standalone
project
#libcontainer on Freenode
libcontainer
Contributing SELinux and
systemd integration
Welcome Dan and Alex!
libcontainer
Joining as core maintainers
Welcome Victor and Rohit!
libcontainer
Contributing C implementation
and OpenVZ support
Welcome Pavel and John!
libcontainer
collaborating on unified
cgroup interface
Welcome Serge!
& LXC
libcontainer
Join the fun!
github.com/docker/libcontainer
#libcontainer on Freenode
3.
Networking
libchan
a lightweight communication
protocol for distributed systems
libchan
Like Go channels over the network
Simple message passing
Synchronization without sharing state
Raw socket passing: channels as
gateways to any other protocol
Nesting: channels can send channels
libchan
Available transports:
SPDY/TLS,
websocket,
raw TCP,
high-perf unix sockets (with fd passing),
in-memory go channels.
Designed to be simple and portable
libchan
A standard communication layer for Docker:
internal components, plugins,
inter-container communication.
libchan
github.com/docker/libchan
4. Orchestration
Docker API
Shipper
Shipper Mesosor
Shipper or Mesos or Coreos/FleetGeardor
Shipper or Mesos or Coreos/FleetGeardor
or or orConsul Helios Centurion
Shipper or Mesos or Coreos/FleetGeardor
or or orConsul Helios Centurion
EC2 Rackspace GCE Orchard Tutum
Shipper or Mesos or Coreos/FleetGeardor
or or orConsul Helios Centurion
EC2 Rackspace GCE Orchard Tutum
libswarm
A minimalist toolkit
to compose network services
libswarm
A standard interface to combine and organize
services in a distributed system.
Compose complex architectures from standard
building blocks
Avoid vendor lock-in by swapping any service out
with another
Pick services from a built-in library, or write your own
with a simple API.
libswarm
Community-contributed adapters:
Docker server & client
Mesos
Atomic / geard
Fleet / etcd
Orchard
Google cloud
Rackspace cloud
Tutum.com
Shipyard
TLS tunnel
libswarm
First-class Docker compatibility
If you develop on libswarm, we
guarantee compatibility with the
Docker ecosystem.
libswarm
github.com/docker/libswarm
libcontainer libchan
libswarm
What’s next?
5. Identity
6. Authorization
Coming soon!
“But I need it naow!”
Come say hi, maybe we can hook you up
Let’s go build it!
Happy hacking!
Drawings by @laurelcomics
#docker-dev on Freenode

Docker: the road ahead