Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Highly Available and
Distributed Containers
• Image 3
Kendrick Coleman
Developer Advocate
@kendrickcoleman
github.com/kaco...
3 of Y
4 of Y
5 of Y
A single car has about 30,000 parts, counting every part down to the smallest screws
6 of Y
In the beginning…
7 of Y
libNetwork
https://github.com/docker/libnetwork
8 of Y
• Swarm 1.0
– Required external Key/Value for scale and use with libNetwork
– Container restarts required additiona...
9 of Y
• Integration of SwarmKit
– https://github.com/docker/swarmkit
• Integrated into the Docker engine
• Desired state ...
DEMO!
11 of Y
credit: LightBend (source: www.slideshare.net/Lightbend/the-6-traits-of-reactive-microservices)
12 of Y
hub.docker.com
7 of the top 12
require persistence
13 of Y
What's the problem?
• When I run a persistent
application in a container, where
does my data get stored?
– The con...
14 of Y
What's the problem?
• Lose a container
– Lose the data
• Lose a server
– Lose the data
• Local data storage
– Fail...
15 of Y
Containers + EMC {code}
https://github.com/emccode/rexray
16 of Y
REX-Ray
github.com/emccode/rexray
• Integrations:
– Docker, Mesos, Marathon, Kubernetes
• Support for multiple sto...
17 of Y
Solving the problem
• Docker created a volume plugin
framework, allowing volume
plugins to receive API requests
fr...
18 of Y
Solving the problem
• Lose the container or lose the
server
– Data persists and remains in tact
on the remote stor...
19 of Y
Solving the problem
• Attach the volume to a new
container on a different host
– Equivalent of a hard reset.
Appli...
20 of Y
How it works
$ docker run
--volume-driver=rexray
-v redisData:/data
redis
redisData
/etc /var
/bin /opt
/data
Stor...
DEMO!
22 of Y
• What we learned
– Clustering, networking, and failover with persistent applications in containers is
easier than...
23 of Y
Who is {code}?
• Open Source initiative focused on next-
generation infrastructure
• Contribute to meaningful Open...
Highly Available And Distributed Containers - ContainerCon NA 2016
Upcoming SlideShare
Loading in …5
×

Highly Available And Distributed Containers - ContainerCon NA 2016

1,077 views

Published on

This presentation was delivered at ContainerCon North America 2016 that was held in Toronto. This talk examines the history of Docker Swarm and libNetwork and Storage to see how the increased complexity in the container ecosystem is actually simplified over time.

Published in: Technology
  • Be the first to comment

Highly Available And Distributed Containers - ContainerCon NA 2016

  1. 1. Highly Available and Distributed Containers • Image 3 Kendrick Coleman Developer Advocate @kendrickcoleman github.com/kacole2
  2. 2. 3 of Y
  3. 3. 4 of Y
  4. 4. 5 of Y A single car has about 30,000 parts, counting every part down to the smallest screws
  5. 5. 6 of Y In the beginning…
  6. 6. 7 of Y libNetwork https://github.com/docker/libnetwork
  7. 7. 8 of Y • Swarm 1.0 – Required external Key/Value for scale and use with libNetwork – Container restarts required additional flags • Kubernetes – https://github.com/kelseyhightower/kubernetes-the-hard-way • Mesos – Bring your own framework with specific syntax Orchestration wasn’t easy
  8. 8. 9 of Y • Integration of SwarmKit – https://github.com/docker/swarmkit • Integrated into the Docker engine • Desired state service declaration with reconciliation • Decentralized service with managers and workers • Multi-host networking with integrated service discovery and load balancing • Rolling updates for services • Secure by default using TLS mutual authentication and encrypted communication Docker 1.12 with Swarm Mode
  9. 9. DEMO!
  10. 10. 11 of Y credit: LightBend (source: www.slideshare.net/Lightbend/the-6-traits-of-reactive-microservices)
  11. 11. 12 of Y hub.docker.com 7 of the top 12 require persistence
  12. 12. 13 of Y What's the problem? • When I run a persistent application in a container, where does my data get stored? – The container holds the data directory and structure of the entire application – Optionally use local volumes • Stateless applications work well – nginx, httpd, kibana, haproxy, memcached, solr, celery $ docker run -v redisData:/data redis redisData /etc /var /bin /opt /data
  13. 13. 14 of Y What's the problem? • Lose a container – Lose the data • Lose a server – Lose the data • Local data storage – Failed hard drives or failed RAID – Can not scale beyond the physical limit of the server /etc /var /bin /opt /data
  14. 14. 15 of Y Containers + EMC {code} https://github.com/emccode/rexray
  15. 15. 16 of Y REX-Ray github.com/emccode/rexray • Integrations: – Docker, Mesos, Marathon, Kubernetes • Support for multiple storage platforms – On-Prem: › EMC ScaleIO, XtremIO, Isilon, VMAX › Oracle VirtualBox – Cloud: › AWS › GCE › RackSpace/OpenStack Cinder • Only solution to provide High Availability • Open Source and in sync with Docker development cycle • Single binary with simple installation using curl | sh and configured using 1 YAML file
  16. 16. 17 of Y Solving the problem • Docker created a volume plugin framework, allowing volume plugins to receive API requests from the Docker daemon to perform storage operations – Create/Mount/Unmount/Delete/Sn apshot $ docker run --volume-driver=rexray -v redisData:/data redis /redisData /etc /var /bin /opt /data
  17. 17. 18 of Y Solving the problem • Lose the container or lose the server – Data persists and remains in tact on the remote storage platform /etc /var /bin /opt /redisData
  18. 18. 19 of Y Solving the problem • Attach the volume to a new container on a different host – Equivalent of a hard reset. Application starts and resumes from the last write to disk – Container schedulers can perform automated failover • Scalability – Application data can scale to the maximum supported by the storage platform /etc /var /bin /opt /data /redisData
  19. 19. 20 of Y How it works $ docker run --volume-driver=rexray -v redisData:/data redis redisData /etc /var /bin /opt /data Storage Platform Persistent Volume
  20. 20. DEMO!
  21. 21. 22 of Y • What we learned – Clustering, networking, and failover with persistent applications in containers is easier than ever before • Get Hands On! – emccode.com – github.com/emccode/rexray – github.com/emccode/vagrant Kendrick Coleman Developer Advocate @kendrickcoleman github.com/kacole2
  22. 22. 23 of Y Who is {code}? • Open Source initiative focused on next- generation infrastructure • Contribute to meaningful Open Source Software (OSS) projects • Create OSS integrations to keep EMC relevant when container-based infrastructure enters a conversation • Driving awareness of OSS opportunities with product teams • Acting in the interest of building a community

×