In two years, Docker hit the sweet spot for devs and ops, with tools for building, shipping, and running distributed apps architected as a set of collaborating microservices packaged as Linux containers. One area of the Docker ecosystem that saw a lot of innovation in the past year is container orchestration systems. This session compares and contrasts various Docker orchestration systems (Swarm, Machine, and Compose), the batteries included with Docker itself, Mesos, Kubernetes, CoreOS/Fleet, Deis, Cloud Foundry, and Tutum. It includes a demo of how to deploy a Java 8 app with MongoDB on several of these systems. The goal of the session is to give you a framework to help evaluate how these systems can meet your particular requirements.
Demo code at https://github.com/chanezon/docker-tips/blob/master/orchestration-networking/README.md
9. Internet (hardware layer)
Servers
Desktop
s
Phones Cars Houses Drones
Network
equipment
Public
transit
TVs
Industria
l
facilities
Scientific
instrument
s
Financial
system
Programmers
Internet (software layer)
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
10. Internet (hardware layer)
Servers
Desktop
s
Phones Cars Houses Drones
Network
equipment
Public
transit
TVs
Industria
l
facilities
Scientific
instrument
s
Financial
system
Programmers
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
a software layer to program the internet
30. docker-compose: running multiple containers
Run your stack with one command: docker-compose up
Describe your stack with one file: docker-compose.yml
web:
build: .
command: python app.py
ports:
- "5000:5000"
volumes:
- .:/code
links:
- redis:redis
redis:
image: redis
50. Notary
“Let’s stop using curl|sh”
Trusted collections for any content
Transport-agnostic
Reliable updates, proof of origin, resistant to untrusted
transport, survivable key compromise
Build on industry-leading standards and research
53. Engine 1.9 Release
• Network management
•Top-level docker network command
•Out of the box support for multi host overlay networking
•Extensibility through plugins
• Volume management
•Top-level docker volume command
•Extensibility through plugins
• Built-in nodes discovery
•Daemon --cluster-store and --cluster-advertise
54. Engine 1.9 Release
• Builder
•Refactoring toward client-side build support
•ARG: build-time arguments (provides support for HTTP_PROXY)
•STOPSIGNAL: choose the stop signal for the contained process
• Miscellaneous
•Quality, stability, performance improvements
•awslog logging driver
• Experimental
•User namespaces phase 1 (daemon-wide root remap)
55. Roadmap Engine 1.10
• Runtime
•Progress toward runC integration
• Distribution
•Ongoing effort to rewrite push/pull layer
•New manifest design, with content addressability from the grounds-up
• Networking
•Stabilize all the new features shipped in 1.9.0
•Better support for IPv6
• Security
•Stable user namespaces (phase 1)
66. Roadmap: Engine & Swarm coming closer
• Clustering is a top level concern for users
•Multi-host networking
•Ability to run containers across several nodes
• The Engine is a degenerated case of a Swarm (single node cluster)
• Proposal: progress toward much more code sharing between the two products
•Engine API <-> Swarm API
•Engine “local node orchestration” <-> Swarm multi-node scheduler
•Distributed systems features: multi-host networking & node discovery
•...
86. 86
Customer Managed
Service Provider Managed
IBM SoftLayer
Bluemix started as a public PaaS
Bluemix started with a major focus on developer productivity in the public cloud.
Infrastructure as
a Service
Code
Data
Runtime
Middleware
OS
Virtualization
Servers
Storage
Networking
Code
Data
Runtime
Middleware
OS
Virtualization
Servers
Storage
Networking
Platform as
a Service
87. 87
Customer Managed
Service Provider Managed
IBM SoftLayer
We listened. Now we’re evolving to become even more flexible.
Capabilities in Bluemix now span PaaS and IaaS and can be delivered as a public,
dedicated, or on-premises* implementation.
Infrastructure as
a Service
Code
Data
Runtime
Middleware
OS
Virtualization
Servers
Storage
Networking
Code
Data
Runtime
Middleware
OS
Virtualization
Servers
Storage
Networking
Platform as
a Service
*Bluemix Local coming Summer 2015
Built on open
technologies:
88. How does Bluemix work?
Bluemix is underlined by three key open compute technologies: Cloud Foundry, Docker, and
OpenStack. It extends each of these with a growing number of services, robust DevOps
tooling, integration capabilities, and a seamless developer experience.
88
Flexible Compute Options to Run Apps / Services
Instant Runtimes Containers Virtual Machines
Platform Deployment Options that Meet Your Workload Requirements
Bluemix
Public
Bluemix
Dedicated
Bluemix
Local*
DevOps
Tooling Your Own Hosted Apps / Services
Integration and
API Mgmt
Powered by IBM SoftLayer In Your Data Center
+ + +
+ +
+ Always focused on what’s next
Catalog of Services that Extend Apps’ Functionality
Web Data Mobile AnalyticsCognitive IoT Security Yours
+
*Bluemix Local coming Summer 2015
89. Containers in Bluemix
Bluemix now comes with a fully integrated, high performance Docker experience, meaning
monitoring, logging, elasticity, enterprise images, and VM abstraction are all standard.
89
Docker Value IBM Value-add Customer Value
Docker Hub Registry holds a
repository of 75000+ Docker
images
• IBM hosted public registry containing IBM images - linked to
Docker Hub
• Client unique registry available on and off premises
• Enterprise-ready images
Access to the images you require to deploy
containers that meet your business needs and
strategy
Open-source, standardized,
lightweight, self sufficient LXC
container technology
• Enhanced performance with bare metal deployment
• Run images to local datacenter or cloud
• Deployment choice with pSeries & zSeries
Flexibility to choose the right hybrid cloud mix
for your business
Build, ship, and run standardized
containers
• Integrated monitoring & logging
• Elasticity to grow storage & container needs
• Life-cycle management of containers and data volumes
• No VMs to manage
Docker ease of use combined with enterprise-
level integrity and confidence
Container connections using
links and service discovery
• Private network communication
• External IP address
• Subnet Range
Extends and connects Docker containers to
production-ready enterprise environments
94. Tutum: The Container Platform
TUTUM CONTAINER PLATFORM
Any
application
Any
infrastructur
eManagedSimple Flexible
Hybrid/Agnostic
Any
Operating
System
Containers
+
Other
Design Principles:
95. Tutum: The Container Platform
Dev Deploy ManageBuild
CI CD
Code
repo
Image
repo
Monitoring
Logging
Scaling
Networking
Storage
Service Discovery
Composability
Security
Hosts Public Cloud Private CloudAcross: Environments
TUTUM CONTAINER PLATFORM
Public Cloud
Test
Orchestration
100. • Docker Swarm, Compose and networking
• docker 1.9
• swarm 1.0.0
• compose 1.5.0 --x-networking
Spring Boot App using MongoDB
https://github.com/joshlong/spring-doge
https://github.com/chanezon/docker-tips/orchestration-networking
101. • Compose for build and deploy, Wildfly, Apache, Angular, Mysql,
Redis, batch and API apps - Compose for build
Java EE 7 / Angular App with Docker Compose
https://github.com/mgreau/docker4dev-tennistour-app
102. • Service Discovery
• https://github.com/gliderlabs/registrator
• https://github.com/hashicorp/consul-template
• https://github.com/ehazlett/interlock
• Persistent volumes with Swarm and Rex Ray on AWS
• http://blog.emccode.com/2015/11/03/use-docker-swarm-with-a-data-
persistence-layer/
• https://github.com/emccode/rexray
• Kubernetes on Swarm
• https://github.com/docker/swarm-frontends
Orchestration projects
103. • Spring Boot, MongoDB, compose, swarm, networking
• https://github.com/joshlong/spring-doge
• https://github.com/chanezon/docker-tips/orchestration-
networking
• Java EE 7 / Angular App with Docker Swarm by @mgreau
Compose for build and deploy, Wildfly, Apache, Angular, Mysql,
Redis, batch and API apps
• https://github.com/mgreau/docker4dev-tennistour-app
• Java EE Docker & Kubernetes by @arun-gupta
• https://github.com/javaee-samples/docker-java
Java Examples
Their customer loves the apps they are building so fast for him: George sees $$ glint in his eyes!
George relishes complexity.
Nobody understands how the system works... apart from him.
QWERTY 3.0 is a disaster, 2 years late
Docker Hub is Docker’s cloud service for …
Publishing and discovering container images through the public registry
Team collaboration and automation of application workflows
… and to make all this easy to configure and manage, Docker Trusted Registry also features a web-based admin GUI
… for insights into the state of the DTR host …
And distributed applications are not just something for aggressive web companies. This is an application architecture that is being adopted by all of the leaders of industry…every major enterprise organization is either already there or going down that path because of the agility it provides them in delivering applications that engage with their customers.