The Journey to Distributed Applications
Some thank you’s
Progress to date/state of the project
Why are we here?
Distributed Applications
Where do we go from here?
Dank je wel to the Amsterdam community.
Steven Geerts
Pini Reznik
Maarten Dirkse
Mark Coleman
Catalin Jora
Melanie Bobbink
Jaroslav Holub
Harm Boartien
Container Solutions
Thank you to our users/use cases.*
*A small subset of the 100s who are using and/or writing about us
Thanks to those above for talking about their experiences at DockerCon
To all those brave enough to
cheerfully ignore our warnings about
using us in production before the
last DockerCon
…and those brave enough to
continue to push the boundaries now
!
One of the brave.
“We went into production with Docker 0.6, because we
felt that going into production with version 0.5 would
have been entirely too premature.”
Michael Bryzek, Gilt Groupe
What else has changed:
supported infrastructure platforms
Dec ‘13
• Any Linux
server (as
long as it is
the latest
version of
Ubuntu)
Jun ‘14
• Prior, +
• All major
Linux
distros,
OpenStack,
some public
clouds
Today
• Prior, +
• All major
VMs, AWS,
Azure, and
now…
• Windows,
SmartOS, 32
bit
What else has changed: users
Dec ‘13
• Small shops,
individual
developers,
start-ups
Jun ‘14
• Prior, +
• Large Web
Companies
(Gilt,
Groupon,
Ebay,
Google)
Today
• Prior, +
• Major banks,
pharma,
government,
manufacture
life science
What else has changed: Governance
Dec ‘13
• Open
license
• Large
number of
external
contribs
• Open
Design
Jun ‘14
• Prior, +
• External
maintainers
• Large
contribs from
particular
co’s
• DGAB
Today
• Prior, +
• DGAB
functioning
• SLAs in
place
• Open
reporting
• Firewalls
• Team Meta
What else has changed: Functionality
Dec ‘13
• Primarily
Docker
Engine
Jun ‘14
• Prior, +
• Public
DockerHub
Today
• Prior, +
• Platform for
distributed
applications
What do you need to know about the
future of applications…
developers are
content creators
What happens when you separate the
act of creation from concerns about
production & distribution?
Apps have fundamentally changed.
~2000 2014
Long lived Development is iterative and constant
Monolithic and built on a single stack Built from loosely coupled components
Deployed to a single server Deployed to a multitude of servers
Where we are in 2014.
API Database Worker Data
Dev QA Prod Virtual Physical Cloud
Portable Composable Dynamic Scalable
The future of Docker container-based distributed apps:
Five Easy Steps
Create lightweight
Container
1
Make container standard,
interoperable, easy to use
2
Create an ecosystem
3
Enable a Multi-
Docker App Model
4
Create a platform
for managing it all
5
Case Study: Innovating applications in real-time.
Before Docker
• From dev-to-deploy: weeks
• 7 Monotithic apps
• Wasted time implementing
monolithic IaaS and PaaS
After Docker
• From dev-to-deploy: hours
• 400+ microservices
• 100 innovations a day!
Some guiding principles:
1) Don’t lose portability, clean interfaces, and ecosystem of tools, apps,
languages, etc. just b/c go from single to multi-container
2) Open APIs-built with open design, and pluggable
3) Batteries included, but removable
4) Be layered. Let user decide if use orchestration suite, or just a single Docker
container format
5) Support the ecosystem and a variety of different solutions
6) Ultimately, be guided by what’s best for the user
See Solomon’s talk for more details
Layering and choice worked for single containers.
Runtime LXC Parallels LMCTFY Zones Windows
Infrastructure
Containers
Device
Mapper
Single
Container
APIs
Docker Daemon
Libcontainer
Single
Container
Apps
65K + apps 18K + tools
Layering and choice worked for multi-container apps.
“Batteries” Docker
Single
Container
APIs
Orch Svcs
Docker Daemon
Libcontainer
3rd Party
Orch Svcs
3rd Party
Orch Svcs
Multi-Container
APIS
Docker Orch
APIs
Multi-
Container
Apps
Apps built from combo of 65K+ containers, using 18K tools,
Run on any infra
“batteries included” “batteries swapped” “single mode”
“Batteries” Docker
Single
Container
APIs
Orch Svcs
Docker Daemon
Libcontainer
3rd Party
Orch Svcs
3rd Party
Orch Svcs
3rd Party
Orch Svcs
Multi-Container
APIS
Docker Orch
APIs
Docker Orch
APIs
Docker Daemon
Libcontainer
Docker Daemon
Libcontainer
Your choice: all are supported.
What are our priorities going forward?
1) Keep the entire ecosystem strong, open, healthy, and growing
2) Build the foundations for distributed applications the right way
3) Prove that this new model provides both open and effective governance
4) Make sure that Docker is truly production worthy
5) As a company, make sure we have a revenue model that supports the
enormous investment in (and responsibility to) the community