SlideShare a Scribd company logo
Mark Church
Product Manager, Docker
Use Cases and Practical Solutions for Docker
Container Storage on Swarm and Kubernetes
Don Stewart
Solutions Architect, Docker
Introduction
We understand Container Storage is a topic
in the forefront of many of your minds.
In this talk we want to address some
specific areas that you have asked us
about.
Whats import to you
Agenda
Storage Fake News
Application Workload
Evolution
The Data Explosion
Container Persistent State Storage Use Cases
Container Persistent State Storage Solutions
Container Storage
Landscape
Demo Windows/Azure
Demo Kubernetes
Myths in Container
Persistence
Storage Fake News
Persistent applications should not
be run in containers. Containers are for
stateless microservices.
Myth #1
DCEU 18: Use Cases and Practical Solutions for Docker Container Storage on Swarm and Kubernetes
Externalize storage outside the container, but run
persistent application inside the container.
Truth
Myth #2
Some persistent apps are okay, but never run
structured databases on container platforms.
DCEU 18: Use Cases and Practical Solutions for Docker Container Storage on Swarm and Kubernetes
Truth
There are no storage options for Windows
containers.
Myth #3
DCEU 18: Use Cases and Practical Solutions for Docker Container Storage on Swarm and Kubernetes
Windows Container Storage
Storage Spaces Direct (S2D)
Cluster Shared Volumes (CSV)
Scale-Out File Server (SoFS)
Storage Categories
Why do we need a new approach to Storage
when using Containers anyway?
Historically storage provisioning and
management was done by specialist
infrastructure teams ahead of deployments.
Today they need to be API driven and
instantaneous, in order to support rapid
container scale out.
How it used to work
The Data Explosion
Application
Workload Evolution
Container Storage Evolution
What are the Use Cases we need to consider
when designing and implementing containers
and storage?
New Demands on Storage
• Innovative new applications
running in containers with higher
scale, performance, and availability
requirements
• Containerized apps that have more
churn and higher rates of
deployment
• Apps that are more distributed and
have more distributed data
Docker Enterprise
allows GSK to support
a multitude of tools and
technologies and
interfaces so that
scientists can run data
analysis at scale.
Application Workloads - Innovative
Autonomous car from Google: -
1GB data per second,
2 Petabytes per vehicle per annum.
264 million cars in the US alone... (An exercise for the reader)
1
https://datafloq.com/read/self-driving-cars-create-2-petabytes-data-annually/172
Application Workloads - Innovative
We are not storing that quantity of data
directly in our application container!
1
https://datafloq.com/read/self-driving-cars-create-2-petabytes-data-annually/172
The Problem Space
Now we have created a multi-layer
‘data cake’
https://www.flickr.com/photos/39551170@N02/15270339736/
● Audit Data
● Logging Data
● Monitoring Data
● Event Data
● Backup Data
● Archive Data
● Application Data
So regardless of the lifespan of the container any
necessary long term state should always persist.
The container could be scheduled to run on any
node in the cluster, meaning persistent data may
need to be accessed from any node or zone.
Container Storage - Requirement
The Storage Use Cases
Container
Persistent State
Mapping Applications to Storage
Application
Workloads
Data
Properties
Storage
Traditional - CRM, CMS, Data Warehousing, Big Data
Modern - AI/ML, IoT, Genomics, Media Processing
Latency, IOPs, Availability, Volume/Size,
Non/Transactional, Durability, Scalability, Accessibility
File, Block, Object
(Shared] File Storage
Containers/Pods
Container Engine
Applications
Software Defined Storage
Retail (Website), CMS, Media Processing, Big Data
and Analytics
Workloads
• Low IOPS
• Medium Latency
• High Availability
• Low Data Volume
• Transactional
Properties
• Medium Term
Storage
• Medium Access
Count
• Medium Access
Speed
• Medium Cost
Storage
• NFS
• CIFS/SMB
• EFS
• AFS
Block Storage
Containers/Pods
Database
Container Engine
Software Defined Storage
Retail (Order Management), CRM, Data Warehousing
Workloads
• High IOPS
• Low Latency
• High Availability
• High Data Volume
• Non-Transactional
Properties
• Long Term Storage
• High Access Count
• High Access Speed
• High Cost
• 500 MB/S
Storage
• iSCSI
• Fibre Channel
• Amazon EBS, Google
Persistent Disk,
Azure Disk Storage-
Premium Storage
Object Storage
Software Defined Storage
Big Data, Data Warehouses, Log Processing, Monitoring
Properties
• Long Term Storage
• High Access Count
• High Access Speed
• High Cost
• 500 MB/S
Storage
• Block Storage
• iSCSI
• Amazon EBS, Google
Persistent Disk,
Azure Storage Disk -
Premium Storage
Containers/Pods
Container Engine
Applications Monitoring Logging
• Medium/High IOPS
• Medium Latency
• High Availability
• High Data Volume
• Non-Transactional
Workload
Volume Lifecycle
How should the lifecycle of storage match the
lifecycle of your apps?
Dynamic Storage Provisioning
We are not going to look at any forms of pure host/node
based persistence as they do not deliver what we need.
Our goal at the beginning of the presentation was: -
‘The container could be scheduled to run on any node in
the cluster, meaning persistent data may need to be
accessed from any node’
Access Methods
● Single Container/Pod Access
● Multi-Container/Pod Access
● Read/Write Access
Container Storage
Driver Landscape
Container Storage Landscape
Storage Drivers
Driver Type What Examples
Cloud Native
Utilizes storage primitives from the cloud
environment.
AWS EFS/EBS
Azure File/Block
GCE PD
vSphere
Software Defined
Storage (SDS)
Consumes storage from block devices
and layers advanced storage functionality
on top in any environment.
Portworx
StorageOS
Ceph
Minio
Hedvig
Physical
Integration between physical storage
systems and Kubernetes/Swarm.
Dell ScaleIO
NetApp Trident
Pure Storage
EMC Isilon
Storage Orchestration Spectrum
Physical Storage Array
Physical
Storage Driver
Volume
Manually
Provisioned
Strg Protocols
/data
container
Software
Defined
Storage
Volume Volume
Cloud Storage
Cloud Storage
Driver
Manually
Provision Cloud
Storage APIs
VolumeVolume
How do we connect to storage?
Storage System
Docker Engine
CSI / FlexVolume / External
Provisioner / In-Tree
Docker Volume Plugin
K8s Kubelet
Swarm Kubernetes
Task (container) Pod (containers)
Docker Enterprise
storage control
plane
container
orchestrator
application
(storage consumer)
Docker Swarm Storage
Storage Array or SDS
/data
container
Certified Storage Driver
Docker Engine
volume
Docker Cloudstor
Azure AFS AWS EBS AWS EFS
volume
/data
container
Docker Swarm
Kubernetes Storage
image courtesy of
Docker Enterprise Certified Drivers
● Tested and validated by Docker
Inc for compatibility and
functionality
● Cross-support relationship with
driver vendor
● Kept up to date and revalidated
on ongoing basis against future
versions
Demos
● Integrates with the persistent data
platforms offered by their cloud
environment.
● Easy to use in the swarm created by the
templates:
○ Be able to share data across
tasks/nodes.
○ Have options for fast throughput/IOPs.
Docker CloudStor
In AWS, Docker Cloudstor has two backing options:
CloudStor:aws
AWS Elastic Block Store
Docker Engine
CloudStor:aws
AWS Elastic File System
Docker Swarm
/data
ctr3
/data
ctr2
/data
ctr1
Single-Access Multi-Access
In order to use CloudStor:AWS requires installing the plugin and setting
the AWS Region, Stack Id etc. in order to enable the creation of our
shared volumes.
Docker CloudStor
[don@dockercon ~]$ docker plugin install --alias cloudstor:aws 
--grant-all-permissions docker4x/cloudstor:18.06.1-ce-aws1 
CLOUD_PLATFORM=AWS 
AWS_REGION=[region] 
AWS_STACK_ID=[any name] 
EFS_SUPPORTED=1 
EFS_ID_REGULAR=[EFS_REG_ID] 
EFS_ID_MAXIO=[EFS_MAXIO_ID] 
DEBUG=1
In Azure, Docker Cloudstor has a single backing option:
CloudStor:azure
Docker Engine
CloudStor:azure
Azure Files
Docker Swarm
/data
ctr3
/data
ctr2
Multi-Access
Docker CloudStor
In order to use Cloudstor:Azure for Docker Swarm involves installing the
plugin using information for the Azure Storage Account and Storage
Endpoint.
[don@dockercon ~]$ docker plugin install --alias cloudstor:azure 
--grant-all-permissions docker4x/cloudstor:18.06.1-ce-azure1 
CLOUD_PLATFORM=AZURE 
AZURE_STORAGE_ACCOUNT_KEY=”$SA_KEY” 
AZURE_STORAGE_ACCOUNT=”$SWARM_INFO_STORAGE_ACCOUNT” 
AZURE_STORAGE_ENDPOINT=”core.cloudapi.de” 
DEBUG=1
Swarm Storage on Windows
Petshop .NET 3.5
Petshop .NET 3.5 Web
Application
Web Service
Database
Petshop is a traditional 3-tier application. This is the
5.0 version of the Pet Shop, which was updated to
.NET 3.5 in 2008.
Windows MTA
The PetShop demo is a
Modernize Traditional
(MTA) Application Use
Case where we are taking
a Windows 2008 .NET
application onto Windows
Server 2016+
Azure Demo Setup
Active
Directory PDC S2D1 S2D2
Container Host
New-SmbGlobalMapping
-RemotePath SOFSSOFSContainerStorage
-LocalPath G:
Azure Resource Group
Windows Native Storage
Petshop .NET 3.5 Demo link
https://github.com/donmstewart/DCEU-Petshop
The compose file in use in the demo is contained in the app
directory named docker-compose.yml
Demo Recording
Kubernetes Storage on Linux
Kubernetes Storage Demo
https://github.com/mark-church/storage-demo
Deployment Storage Class
Storage
Provisioner
Storage
Backend
(AWS EBS)
Persistent
Volume Claim
Persistent
Volume
Pod
● Storage Workshop
○ https://github.com/donmstewart/
docker-storage-workshop
● docs.docker.com
Where to find more

More Related Content

What's hot (20)

PDF
Docker for any type of workload and any IT Infrastructure
Docker, Inc.
 
PDF
DCEU 18: Provisioning and Managing Storage for Docker Containers
Docker, Inc.
 
PDF
DCSF19 How To Build Your Containerization Strategy
Docker, Inc.
 
PDF
DockerCon EU 2015: Shipping Manifests, Bill of Lading and Docker Metadata and...
Docker, Inc.
 
PDF
DCEU 18: Docker Enterprise Platform and Architecture
Docker, Inc.
 
PDF
Docker for developers on mac and windows
Docker, Inc.
 
PDF
DCEU 18: Building Your Development Pipeline
Docker, Inc.
 
PDF
DCSF19 Containers for Beginners
Docker, Inc.
 
PPTX
Photon Controller: An Open Source Container Infrastructure Platform from VMware
Docker, Inc.
 
PDF
DockerCon EU 2015: Trading Bitcoin with Docker
Docker, Inc.
 
PPTX
Docker Datacenter Overview and Production Setup Slides
Docker, Inc.
 
PPTX
Docker Container As A Service - March 2016
Patrick Chanezon
 
PDF
DCSF19 Docker Containers & Java: What I Wish I Had Been Told
Docker, Inc.
 
PDF
DCSF 19 Kubernetes and Container Storage Interface Update
Docker, Inc.
 
PDF
Orchestrating Linux Containers while tolerating failures
Docker, Inc.
 
PPTX
DockerCon EU 2015: Stop Being Lazy and Test Your Software!
Docker, Inc.
 
PDF
DCSF19 CMD and Conquer: Containerizing the Monolith
Docker, Inc.
 
PDF
Docker on docker leveraging kubernetes in docker ee
Docker, Inc.
 
PDF
Docker Multi-arch All The Things
Docker, Inc.
 
PDF
Introduction to Docker
Aditya Konarde
 
Docker for any type of workload and any IT Infrastructure
Docker, Inc.
 
DCEU 18: Provisioning and Managing Storage for Docker Containers
Docker, Inc.
 
DCSF19 How To Build Your Containerization Strategy
Docker, Inc.
 
DockerCon EU 2015: Shipping Manifests, Bill of Lading and Docker Metadata and...
Docker, Inc.
 
DCEU 18: Docker Enterprise Platform and Architecture
Docker, Inc.
 
Docker for developers on mac and windows
Docker, Inc.
 
DCEU 18: Building Your Development Pipeline
Docker, Inc.
 
DCSF19 Containers for Beginners
Docker, Inc.
 
Photon Controller: An Open Source Container Infrastructure Platform from VMware
Docker, Inc.
 
DockerCon EU 2015: Trading Bitcoin with Docker
Docker, Inc.
 
Docker Datacenter Overview and Production Setup Slides
Docker, Inc.
 
Docker Container As A Service - March 2016
Patrick Chanezon
 
DCSF19 Docker Containers & Java: What I Wish I Had Been Told
Docker, Inc.
 
DCSF 19 Kubernetes and Container Storage Interface Update
Docker, Inc.
 
Orchestrating Linux Containers while tolerating failures
Docker, Inc.
 
DockerCon EU 2015: Stop Being Lazy and Test Your Software!
Docker, Inc.
 
DCSF19 CMD and Conquer: Containerizing the Monolith
Docker, Inc.
 
Docker on docker leveraging kubernetes in docker ee
Docker, Inc.
 
Docker Multi-arch All The Things
Docker, Inc.
 
Introduction to Docker
Aditya Konarde
 

Similar to DCEU 18: Use Cases and Practical Solutions for Docker Container Storage on Swarm and Kubernetes (20)

PDF
Docker storage designing a platform for persistent data
Docker, Inc.
 
PPTX
DockerCon 18 docker storage
Daniel Finneran
 
PDF
Red Hat Storage Day LA - Persistent Storage for Linux Containers
Red_Hat_Storage
 
PDF
Think like a storage architect, in four questions
Cheryl Hung
 
PPTX
Microsoft Ignite 2017 - SQL Server on Kubernetes, Swarm, and Open Shift
Travis Wright
 
PDF
Solving k8s persistent workloads using k8s DevOps style
MayaData
 
PDF
Container Attached Storage with OpenEBS - CNCF Paris Meetup
MayaData Inc
 
PDF
Introduction to Docker storage, volume and image
ejlp12
 
PDF
Persistent storage in Docker
Cheryl Hung
 
PDF
Red Hat Storage Day Atlanta - Persistent Storage for Linux Containers
Red_Hat_Storage
 
PPTX
{code} and Containers - Open Source Infrastructure within Dell Technologies
The {code} Team
 
PPTX
Deep Dive on Container Storage Architectures - Clinton Kitson and Chris Duche...
{code} by Dell EMC
 
PDF
Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...
OpenEBS
 
PPTX
Murat Karslioglu, VP Solutions @ OpenEBS - Containerized storage for containe...
Outlyer
 
PPTX
VMworld 2015: Containers without Compromise - Persistent Storage for Docker C...
VMworld
 
PPTX
Emerging storage-trends-for-containers
kiran mova
 
PDF
Persistent Storage with Kubernetes in Production
Cheryl Hung
 
PPTX
Robust Applications in Mesos using External Storage
David vonThenen
 
PPTX
Persistent, Portable Storage for Docker Containers and Microservices
ClusterHQ
 
PPTX
{code} and containers
{code} by Dell EMC
 
Docker storage designing a platform for persistent data
Docker, Inc.
 
DockerCon 18 docker storage
Daniel Finneran
 
Red Hat Storage Day LA - Persistent Storage for Linux Containers
Red_Hat_Storage
 
Think like a storage architect, in four questions
Cheryl Hung
 
Microsoft Ignite 2017 - SQL Server on Kubernetes, Swarm, and Open Shift
Travis Wright
 
Solving k8s persistent workloads using k8s DevOps style
MayaData
 
Container Attached Storage with OpenEBS - CNCF Paris Meetup
MayaData Inc
 
Introduction to Docker storage, volume and image
ejlp12
 
Persistent storage in Docker
Cheryl Hung
 
Red Hat Storage Day Atlanta - Persistent Storage for Linux Containers
Red_Hat_Storage
 
{code} and Containers - Open Source Infrastructure within Dell Technologies
The {code} Team
 
Deep Dive on Container Storage Architectures - Clinton Kitson and Chris Duche...
{code} by Dell EMC
 
Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...
OpenEBS
 
Murat Karslioglu, VP Solutions @ OpenEBS - Containerized storage for containe...
Outlyer
 
VMworld 2015: Containers without Compromise - Persistent Storage for Docker C...
VMworld
 
Emerging storage-trends-for-containers
kiran mova
 
Persistent Storage with Kubernetes in Production
Cheryl Hung
 
Robust Applications in Mesos using External Storage
David vonThenen
 
Persistent, Portable Storage for Docker Containers and Microservices
ClusterHQ
 
{code} and containers
{code} by Dell EMC
 
Ad

More from Docker, Inc. (20)

PDF
Containerize Your Game Server for the Best Multiplayer Experience
Docker, Inc.
 
PDF
How to Improve Your Image Builds Using Advance Docker Build
Docker, Inc.
 
PDF
Build & Deploy Multi-Container Applications to AWS
Docker, Inc.
 
PDF
Securing Your Containerized Applications with NGINX
Docker, Inc.
 
PDF
How To Build and Run Node Apps with Docker and Compose
Docker, Inc.
 
PDF
Hands-on Helm
Docker, Inc.
 
PDF
Distributed Deep Learning with Docker at Salesforce
Docker, Inc.
 
PDF
The First 10M Pulls: Building The Official Curl Image for Docker Hub
Docker, Inc.
 
PDF
Monitoring in a Microservices World
Docker, Inc.
 
PDF
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
Docker, Inc.
 
PDF
Predicting Space Weather with Docker
Docker, Inc.
 
PDF
Become a Docker Power User With Microsoft Visual Studio Code
Docker, Inc.
 
PDF
How to Use Mirroring and Caching to Optimize your Container Registry
Docker, Inc.
 
PDF
Monolithic to Microservices + Docker = SDLC on Steroids!
Docker, Inc.
 
PDF
Kubernetes at Datadog Scale
Docker, Inc.
 
PDF
Labels, Labels, Labels
Docker, Inc.
 
PDF
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Docker, Inc.
 
PDF
Build & Deploy Multi-Container Applications to AWS
Docker, Inc.
 
PDF
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
Docker, Inc.
 
PDF
Developing with Docker for the Arm Architecture
Docker, Inc.
 
Containerize Your Game Server for the Best Multiplayer Experience
Docker, Inc.
 
How to Improve Your Image Builds Using Advance Docker Build
Docker, Inc.
 
Build & Deploy Multi-Container Applications to AWS
Docker, Inc.
 
Securing Your Containerized Applications with NGINX
Docker, Inc.
 
How To Build and Run Node Apps with Docker and Compose
Docker, Inc.
 
Hands-on Helm
Docker, Inc.
 
Distributed Deep Learning with Docker at Salesforce
Docker, Inc.
 
The First 10M Pulls: Building The Official Curl Image for Docker Hub
Docker, Inc.
 
Monitoring in a Microservices World
Docker, Inc.
 
COVID-19 in Italy: How Docker is Helping the Biggest Italian IT Company Conti...
Docker, Inc.
 
Predicting Space Weather with Docker
Docker, Inc.
 
Become a Docker Power User With Microsoft Visual Studio Code
Docker, Inc.
 
How to Use Mirroring and Caching to Optimize your Container Registry
Docker, Inc.
 
Monolithic to Microservices + Docker = SDLC on Steroids!
Docker, Inc.
 
Kubernetes at Datadog Scale
Docker, Inc.
 
Labels, Labels, Labels
Docker, Inc.
 
Using Docker Hub at Scale to Support Micro Focus' Delivery and Deployment Model
Docker, Inc.
 
Build & Deploy Multi-Container Applications to AWS
Docker, Inc.
 
From Fortran on the Desktop to Kubernetes in the Cloud: A Windows Migration S...
Docker, Inc.
 
Developing with Docker for the Arm Architecture
Docker, Inc.
 
Ad

Recently uploaded (20)

PDF
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PPT
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PPTX
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
SIZING YOUR AIR CONDITIONER---A PRACTICAL GUIDE.pdf
Muhammad Rizwan Akram
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
Kit-Works Team Study_20250627_한달만에만든사내서비스키링(양다윗).pdf
Wonjun Hwang
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 

DCEU 18: Use Cases and Practical Solutions for Docker Container Storage on Swarm and Kubernetes

  • 1. Mark Church Product Manager, Docker Use Cases and Practical Solutions for Docker Container Storage on Swarm and Kubernetes Don Stewart Solutions Architect, Docker
  • 3. We understand Container Storage is a topic in the forefront of many of your minds. In this talk we want to address some specific areas that you have asked us about. Whats import to you
  • 4. Agenda Storage Fake News Application Workload Evolution The Data Explosion Container Persistent State Storage Use Cases Container Persistent State Storage Solutions Container Storage Landscape Demo Windows/Azure Demo Kubernetes
  • 6. Persistent applications should not be run in containers. Containers are for stateless microservices. Myth #1
  • 8. Externalize storage outside the container, but run persistent application inside the container. Truth
  • 9. Myth #2 Some persistent apps are okay, but never run structured databases on container platforms.
  • 11. Truth
  • 12. There are no storage options for Windows containers. Myth #3
  • 14. Windows Container Storage Storage Spaces Direct (S2D) Cluster Shared Volumes (CSV) Scale-Out File Server (SoFS)
  • 15. Storage Categories Why do we need a new approach to Storage when using Containers anyway?
  • 16. Historically storage provisioning and management was done by specialist infrastructure teams ahead of deployments. Today they need to be API driven and instantaneous, in order to support rapid container scale out. How it used to work
  • 18. Container Storage Evolution What are the Use Cases we need to consider when designing and implementing containers and storage?
  • 19. New Demands on Storage • Innovative new applications running in containers with higher scale, performance, and availability requirements • Containerized apps that have more churn and higher rates of deployment • Apps that are more distributed and have more distributed data Docker Enterprise allows GSK to support a multitude of tools and technologies and interfaces so that scientists can run data analysis at scale.
  • 20. Application Workloads - Innovative Autonomous car from Google: - 1GB data per second, 2 Petabytes per vehicle per annum. 264 million cars in the US alone... (An exercise for the reader) 1 https://datafloq.com/read/self-driving-cars-create-2-petabytes-data-annually/172
  • 21. Application Workloads - Innovative We are not storing that quantity of data directly in our application container! 1 https://datafloq.com/read/self-driving-cars-create-2-petabytes-data-annually/172
  • 22. The Problem Space Now we have created a multi-layer ‘data cake’ https://www.flickr.com/photos/39551170@N02/15270339736/ ● Audit Data ● Logging Data ● Monitoring Data ● Event Data ● Backup Data ● Archive Data ● Application Data
  • 23. So regardless of the lifespan of the container any necessary long term state should always persist. The container could be scheduled to run on any node in the cluster, meaning persistent data may need to be accessed from any node or zone. Container Storage - Requirement
  • 24. The Storage Use Cases Container Persistent State
  • 25. Mapping Applications to Storage Application Workloads Data Properties Storage Traditional - CRM, CMS, Data Warehousing, Big Data Modern - AI/ML, IoT, Genomics, Media Processing Latency, IOPs, Availability, Volume/Size, Non/Transactional, Durability, Scalability, Accessibility File, Block, Object
  • 26. (Shared] File Storage Containers/Pods Container Engine Applications Software Defined Storage Retail (Website), CMS, Media Processing, Big Data and Analytics Workloads • Low IOPS • Medium Latency • High Availability • Low Data Volume • Transactional Properties • Medium Term Storage • Medium Access Count • Medium Access Speed • Medium Cost Storage • NFS • CIFS/SMB • EFS • AFS
  • 27. Block Storage Containers/Pods Database Container Engine Software Defined Storage Retail (Order Management), CRM, Data Warehousing Workloads • High IOPS • Low Latency • High Availability • High Data Volume • Non-Transactional Properties • Long Term Storage • High Access Count • High Access Speed • High Cost • 500 MB/S Storage • iSCSI • Fibre Channel • Amazon EBS, Google Persistent Disk, Azure Disk Storage- Premium Storage
  • 28. Object Storage Software Defined Storage Big Data, Data Warehouses, Log Processing, Monitoring Properties • Long Term Storage • High Access Count • High Access Speed • High Cost • 500 MB/S Storage • Block Storage • iSCSI • Amazon EBS, Google Persistent Disk, Azure Storage Disk - Premium Storage Containers/Pods Container Engine Applications Monitoring Logging • Medium/High IOPS • Medium Latency • High Availability • High Data Volume • Non-Transactional Workload
  • 29. Volume Lifecycle How should the lifecycle of storage match the lifecycle of your apps?
  • 30. Dynamic Storage Provisioning We are not going to look at any forms of pure host/node based persistence as they do not deliver what we need. Our goal at the beginning of the presentation was: - ‘The container could be scheduled to run on any node in the cluster, meaning persistent data may need to be accessed from any node’
  • 31. Access Methods ● Single Container/Pod Access ● Multi-Container/Pod Access ● Read/Write Access
  • 34. Storage Drivers Driver Type What Examples Cloud Native Utilizes storage primitives from the cloud environment. AWS EFS/EBS Azure File/Block GCE PD vSphere Software Defined Storage (SDS) Consumes storage from block devices and layers advanced storage functionality on top in any environment. Portworx StorageOS Ceph Minio Hedvig Physical Integration between physical storage systems and Kubernetes/Swarm. Dell ScaleIO NetApp Trident Pure Storage EMC Isilon
  • 35. Storage Orchestration Spectrum Physical Storage Array Physical Storage Driver Volume Manually Provisioned Strg Protocols /data container Software Defined Storage Volume Volume Cloud Storage Cloud Storage Driver Manually Provision Cloud Storage APIs VolumeVolume
  • 36. How do we connect to storage? Storage System Docker Engine CSI / FlexVolume / External Provisioner / In-Tree Docker Volume Plugin K8s Kubelet Swarm Kubernetes Task (container) Pod (containers) Docker Enterprise storage control plane container orchestrator application (storage consumer)
  • 37. Docker Swarm Storage Storage Array or SDS /data container Certified Storage Driver Docker Engine volume Docker Cloudstor Azure AFS AWS EBS AWS EFS volume /data container Docker Swarm
  • 39. Docker Enterprise Certified Drivers ● Tested and validated by Docker Inc for compatibility and functionality ● Cross-support relationship with driver vendor ● Kept up to date and revalidated on ongoing basis against future versions
  • 40. Demos
  • 41. ● Integrates with the persistent data platforms offered by their cloud environment. ● Easy to use in the swarm created by the templates: ○ Be able to share data across tasks/nodes. ○ Have options for fast throughput/IOPs. Docker CloudStor
  • 42. In AWS, Docker Cloudstor has two backing options: CloudStor:aws AWS Elastic Block Store Docker Engine CloudStor:aws AWS Elastic File System Docker Swarm /data ctr3 /data ctr2 /data ctr1 Single-Access Multi-Access
  • 43. In order to use CloudStor:AWS requires installing the plugin and setting the AWS Region, Stack Id etc. in order to enable the creation of our shared volumes. Docker CloudStor [don@dockercon ~]$ docker plugin install --alias cloudstor:aws --grant-all-permissions docker4x/cloudstor:18.06.1-ce-aws1 CLOUD_PLATFORM=AWS AWS_REGION=[region] AWS_STACK_ID=[any name] EFS_SUPPORTED=1 EFS_ID_REGULAR=[EFS_REG_ID] EFS_ID_MAXIO=[EFS_MAXIO_ID] DEBUG=1
  • 44. In Azure, Docker Cloudstor has a single backing option: CloudStor:azure Docker Engine CloudStor:azure Azure Files Docker Swarm /data ctr3 /data ctr2 Multi-Access
  • 45. Docker CloudStor In order to use Cloudstor:Azure for Docker Swarm involves installing the plugin using information for the Azure Storage Account and Storage Endpoint. [don@dockercon ~]$ docker plugin install --alias cloudstor:azure --grant-all-permissions docker4x/cloudstor:18.06.1-ce-azure1 CLOUD_PLATFORM=AZURE AZURE_STORAGE_ACCOUNT_KEY=”$SA_KEY” AZURE_STORAGE_ACCOUNT=”$SWARM_INFO_STORAGE_ACCOUNT” AZURE_STORAGE_ENDPOINT=”core.cloudapi.de” DEBUG=1
  • 46. Swarm Storage on Windows
  • 48. Petshop .NET 3.5 Web Application Web Service Database Petshop is a traditional 3-tier application. This is the 5.0 version of the Pet Shop, which was updated to .NET 3.5 in 2008.
  • 49. Windows MTA The PetShop demo is a Modernize Traditional (MTA) Application Use Case where we are taking a Windows 2008 .NET application onto Windows Server 2016+
  • 50. Azure Demo Setup Active Directory PDC S2D1 S2D2 Container Host New-SmbGlobalMapping -RemotePath SOFSSOFSContainerStorage -LocalPath G: Azure Resource Group
  • 52. Petshop .NET 3.5 Demo link https://github.com/donmstewart/DCEU-Petshop The compose file in use in the demo is contained in the app directory named docker-compose.yml
  • 55. Kubernetes Storage Demo https://github.com/mark-church/storage-demo Deployment Storage Class Storage Provisioner Storage Backend (AWS EBS) Persistent Volume Claim Persistent Volume Pod
  • 56. ● Storage Workshop ○ https://github.com/donmstewart/ docker-storage-workshop ● docs.docker.com Where to find more