SlideShare a Scribd company logo
1 of 39
Download to read offline
Containerized Storage for Containers
@JeffryMolanus
@openEBS
https://openebs.io
mountpoint.io - 2018
Latest (storage IO) patterns for
cloud-native applications in a k8s
environment
People
Software
&
Hardware
Applications have changed;
&
somebody forgot to tell storage
• Cloud native apps that are distributed systems themselves
• Let us use Paxos, RAFT, nobody flinches
• They want it to scale by default — batteries included
– HaProxy, Envoy — no more storage scaling
• Apps are designed to fail across DC’s, regions and providers
• Should be multi-cloud, multi-hypervisor and multi-platform
• Databases provide distributed scale out; or one can use
vitess for existing SQL (no-noSQL) databases
• Datasets of individual containers are relatively small
• The sum of the parts is greater then the whole
Cloud native software architecture
Data availability and
performance is not (anymore)
exclusively controlled at the
storage layer
• Deliver fast and frequently
• A deployment per day keeps the ….. away
• Small teams with specific goals. Shadow IT is where the
innovation happens — born in the cloud
• CI/CD pipelines — blue-green or cannery deployment
• Make install has been upgraded to make push
• Software delivery has changed, tarball on steroids
• Declarative intent, gitOps, chatOps
• K8s as the unified cross cloud control plane (control loop)
• Everything in containers either bare metal or lkvm
DevOps (the people)
• Storage appliance peculiarities bubble up in apps
• Don't do this because… don't do that because….
• Makes it hard to write code that uses the full stack optimal
when moving from c2c, private or public
• Some vendors — simply put their appliances in the cloud
• Friction; “Do not run your CI while I do backups!”
• You need LU’s again? Gave you 100 yesterday!
• “We simply use DAS as nothing is faster than that”
• NVMe and PDIMs enforce a change in the way we do things
• Increasing core counts create new challenges
• caches, migrations, NUMA and yes — not fully utilised cores
HW / Storage trends
HW / Storage trends
HW / Storage trends
What if storage for container
native applications was itself
container native?
• Not yet another distributed storage system; small is the new big
• Cloud native (not washed) applications are, inherently
distributed applications
• One on top of the other, an operational nightmare?
• Per workload storage system, using declarative intent defined
by the developer
• Applications defined storage
• Reduce blast radius and no IO blender
• Runs in containers for containers — in user space
• Not a clustered storage instance rather a cluster of storage
instances
Design constraints
Containers & k8s
Manifests express
intent
stateless
Container 1 Container 2 Container 3
Container 1 Container 2 Container 3
Container 1 Container 2 Container 3
stateful
Data Container Data Container Data Container
Any Server, Any Cloud Any Server, Any Cloud
Solution
1. Small working sets
2. Ephemeral
3. Scale by N
4. Mobile workloads
5. DevOps responsible
for operations
6. Cloud lock-in
7. Per workload
optimisation
1. Keep data local
2. Controller in POD
3. N more containers
4. Follow the workload
5. Just another micro
service
6. Workload migration
7. Declarative intent
Challenge
High level CAS architecture
Using the k8s substrate
• Betting on k8s; don't integrate with plugins actually build on-top of it
• CSI plugin standardised API to communicate with external storage
(controller and agent)
• Implement dynamic provisioner to construct “volumes” (openEBS operator)
• Using the operator framework to construct storage topology and reflect
storage systems state (kubectl describe)
• watchers and CRDs to invoke logic to reconcile desired state
• Again, using the operator framework to discover local devices and their
properties to create storage pools dynamically (NDM)
• Fully operated by kubectl i.e no external tools required (*)
• Visualise topology and EE testing (Litmus)
k8s control plane for storage
Patterns; sidecars & meshes
• A CAS volume consists out of controller
and a replica and lives somewhere
• The fallacies of distributed computing
(L. Peter Deutsch)
• The only constant is change
• How do we dynamic (re) configure?
• Optimal transport/path
• Rescheduling
• Different (virtual) machines
• Data mesh for dynamic IO
reconfiguration
K8s pattern; service mesh
Kasun Indrasiri
Data mesh negotiated transport
kind: DataFrabricConnection
apiVersion: V1
metadata:
labels:
- ….
spec:
name: my-iospec
ioChannel: my-first-channel
request:
type: block
- nvmeof
- nbd
- iscsi
- .....
properties:
compress: false
encrypt : true
....
....
• Controller and replica need to find
optimal path — but also the app to
the controller
• Virtual “HBA” uses negotiated
transport and features (VHCI)
• Capable of using different
transport types
• Connection types and state reflected
in custom resources
• kubectl edit or update -f xyz.yaml
• Opportunity to innovate for
application optimised IO patterns:
smart endpoints dumb pipes
Storage just fades away as a concern
Implementation details
• JIVA, the primordial soup to determine feasibility
• Praised for its ease of use by users
• Instrumental to use to find and explore uses case for the
cloud native landscape
• Does not provide efficient “enterprise” storage features
• Swapping out JIVA with something else is just a matter of
adding storage classes so we are evolving (pluggable)
• Yay for the micro service approach
• The biggest problem to solve however is user space IO
• Different kernels on different clouds — tainting
• Performance in public cloud not yet the biggest concern
Input output container (IOC)
• If containers perform (mostly) API request to one and
other, why not have them do storage IO to each other?
• Select devices (NDM) and claim resources in the pod spec
• DSM can handle this automatically as well
• IOC DaemonSet grabs the devices and exposes them
through a variety of different protocols
• Leveraging Storage Plane Development Kit
• There are other things available like UNVMe however
• Bypass the kernel using UIO/VFIO and DMA straight into the
devices by leveraging huge pages (Poll Mode Drivers)
IOC overview
PVPV
IOC
(DS)
Target
Replica
Target
Replica
DMS
openEBS services
SC
Reusing virtio for containers
• Widely used and actively developed protocol which uses
shared memory to interact with several types of hardware
• In the case of openEBS — interested in user space virtio-
{blk,nvme} initiator
• Primary reason for developing this was to have a loosely
coupling with SPDK which use Poll Mode Drivers (PMD)
• Perhaps also LIO’s vhost support
• Even-though we have plenty of cores — having anything
and everything attached to openEBS do polling is not
acceptable
• There was no “libvirtio” unfortunately, so we created one
Feasibility test
• SPDK in full polling mode using the
SPDK provided plugin
• Virtio plugin using SHM, to issue IO
to SPDKs
• Experiment expectations:
• Due to non polling mode
performance will drop
• Due to eventfd() performance
will drop (context switches)
• Desired result: ~kernel
• Quid pro quo
SPDK
FIO
Virtio
FIO
SPDK
Kick
Results of the first test
SPDK
Kernel
openEBS
0 125 250 375 500
490
IOPS(K)
Results using adaptive polling
SPDK
Kernel
openEBS
0 125 250 375 500
490
Maximum
IOPS(K)
100ms
10ms
5ms
350 400 450 500
484
Maximum
Sleep time
Initial observation
• SPDK can indeed out perform the kernel
• Using it however has some ramifications but is IO processing
in user space becoming a new trend?
• Using virtio as a user space library to do block IO is feasible
• Using eventfd() to kick the vhost controller has very high negative
impact on performance (how much actually was surprising)
• Sleepy polling improves performance reaching (~0.82%) of
direct NVMe with no virtio only a 6K IOPS drop)
• Implement adaptive polling that dynamically updates the sleep
interval based on measured throughput
Go-virtio API
• Can we implement virtio in Go such that the read and write
interfaces use virtio?
• Golang interfaces are like classes If you implement the methods
you satisfy the interface
• Go uses go routines — user level threads, should provide less
scheduling overhead when using multiple routines
• Less context switches is good for performance
• Need to understand the “M”, “G” and “P” which is part of the go
runtime
• C functions are always executed on a separate M,
implement it natively in go
Go virtio-blk (not the same HW)
SR-4
PR-4
SW-4
PW-4
10 20 30 40
34,6
MaximumIOPS(K)
• Cant use small sleeps in Golang
to do polling
• #25471
• Results shown use eventfd()
• Clearly more work needed but its
a start
• Results obtained using go test -
bench
• Note; not the same HW as before!
Other protocols
• Most applications wont be able to connect directly with virtio
• Support for iSCSI, NBD, TCMU,
• To really keep up with NVMe we need nvme-of to be more widely adopted
• Should work over TCP as well as RNICs for transitions in particular for
cloud based deployments (softroce and nvmeof-tcp)
• Add support for contiv which leverages VPP-VCL to accelerate network and
stay in user space
• At current requires TAP/TAP2 — to expose interface to the container
• Microsoft FreeFlow also aimed at network acceleration
• Both implementations use LD_PRELOADs to intercept syscalls to avoid
application changes
File based access
• Inject syscall interception library for applications that
need basic file operations typically for databases
that have data consistency models built in
• Not targeted towards file servers
• DB have a very typical IO pattern, mostly append
only as they typically have some form of WAL with
compaction
• Library is mounted in the namespace configured
based on developer intent
• Crucial to have proper testing and regression
framework
• CI/CD, devOps, End 2 End (litmus)
DB
PRELOAD
POD spec
shm
9p
• Bring advanced storage feature to individual container
workloads
• Cloud native; using the same software development paradigm
• Build for containers in containers
• IO handling from the IOC implemented fully in user space
• Control release cadence, extra performance is a bonus
• Declarative provisioning and protection policies
• Remove friction between teams
• Multi cloud from public to private
• Not a clustered storage instance rather a cluster of storage
instances
Summary about OpenEBS
QUESTIONS?
https://openebs.io

More Related Content

What's hot

Ceph, Xen, and CloudStack: Semper Melior-XPUS13 McGarry
Ceph, Xen, and CloudStack: Semper Melior-XPUS13 McGarryCeph, Xen, and CloudStack: Semper Melior-XPUS13 McGarry
Ceph, Xen, and CloudStack: Semper Melior-XPUS13 McGarryThe Linux Foundation
 
VMworld 2013: Three Advantages of Running Cloud Foundry in a VMware Private C...
VMworld 2013: Three Advantages of Running Cloud Foundry in a VMware Private C...VMworld 2013: Three Advantages of Running Cloud Foundry in a VMware Private C...
VMworld 2013: Three Advantages of Running Cloud Foundry in a VMware Private C...VMworld
 
Revolutionary Storage for Modern Databases, Applications and Infrastrcture
Revolutionary Storage for Modern Databases, Applications and InfrastrctureRevolutionary Storage for Modern Databases, Applications and Infrastrcture
Revolutionary Storage for Modern Databases, Applications and Infrastrcturesabnees
 
A Performance Comparison of Container-based Virtualization Systems for MapRed...
A Performance Comparison of Container-based Virtualization Systems for MapRed...A Performance Comparison of Container-based Virtualization Systems for MapRed...
A Performance Comparison of Container-based Virtualization Systems for MapRed...Marcelo Veiga Neves
 
Adventures in Research
Adventures in ResearchAdventures in Research
Adventures in ResearchNETWAYS
 
DevNexus 2015: Kubernetes & Container Engine
DevNexus 2015: Kubernetes & Container EngineDevNexus 2015: Kubernetes & Container Engine
DevNexus 2015: Kubernetes & Container EngineKit Merker
 
Kubernetes - A Short Ride Throught the project and its ecosystem
Kubernetes - A Short Ride Throught the project and its ecosystemKubernetes - A Short Ride Throught the project and its ecosystem
Kubernetes - A Short Ride Throught the project and its ecosystemMaciej Kwiek
 
Sergey Dzyuban "To Build My Own Cloud with Blackjack…"
Sergey Dzyuban "To Build My Own Cloud with Blackjack…"Sergey Dzyuban "To Build My Own Cloud with Blackjack…"
Sergey Dzyuban "To Build My Own Cloud with Blackjack…"Fwdays
 
컨테이너 기술 소개 - Warden, Garden, Docker
컨테이너 기술 소개 - Warden, Garden, Docker컨테이너 기술 소개 - Warden, Garden, Docker
컨테이너 기술 소개 - Warden, Garden, Dockerseungdon Choi
 
Microcontainers and Tools for Hardcore Container Debugging
Microcontainers and Tools for Hardcore Container DebuggingMicrocontainers and Tools for Hardcore Container Debugging
Microcontainers and Tools for Hardcore Container DebuggingOracle Developers
 
Evolution of unix environments and the road to faster deployments
Evolution of unix environments and the road to faster deploymentsEvolution of unix environments and the road to faster deployments
Evolution of unix environments and the road to faster deploymentsRakuten Group, Inc.
 
Hot to build continuously processing for 24/7 real-time data streaming platform?
Hot to build continuously processing for 24/7 real-time data streaming platform?Hot to build continuously processing for 24/7 real-time data streaming platform?
Hot to build continuously processing for 24/7 real-time data streaming platform?GetInData
 
Opinionated containers and the future of game servers by Brendan Fosberry
Opinionated containers and the future of game servers by Brendan FosberryOpinionated containers and the future of game servers by Brendan Fosberry
Opinionated containers and the future of game servers by Brendan FosberryDocker, Inc.
 
Hadoop Cluster on Docker Containers
Hadoop Cluster on Docker ContainersHadoop Cluster on Docker Containers
Hadoop Cluster on Docker Containerspranav_joshi
 
Oscon 2012 : From Datacenter to the Cloud - Featuring Xen and XCP
Oscon 2012 : From Datacenter to the Cloud - Featuring Xen and XCPOscon 2012 : From Datacenter to the Cloud - Featuring Xen and XCP
Oscon 2012 : From Datacenter to the Cloud - Featuring Xen and XCPThe Linux Foundation
 
The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...
The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...
The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...Daniel Krook
 
Micro services vs hadoop
Micro services vs hadoopMicro services vs hadoop
Micro services vs hadoopGergely Devenyi
 
Pro2516 10 things about oracle and k8s.pptx-final
Pro2516   10 things about oracle and k8s.pptx-finalPro2516   10 things about oracle and k8s.pptx-final
Pro2516 10 things about oracle and k8s.pptx-finalMichel Schildmeijer
 

What's hot (20)

Ceph, Xen, and CloudStack: Semper Melior-XPUS13 McGarry
Ceph, Xen, and CloudStack: Semper Melior-XPUS13 McGarryCeph, Xen, and CloudStack: Semper Melior-XPUS13 McGarry
Ceph, Xen, and CloudStack: Semper Melior-XPUS13 McGarry
 
VMworld 2013: Three Advantages of Running Cloud Foundry in a VMware Private C...
VMworld 2013: Three Advantages of Running Cloud Foundry in a VMware Private C...VMworld 2013: Three Advantages of Running Cloud Foundry in a VMware Private C...
VMworld 2013: Three Advantages of Running Cloud Foundry in a VMware Private C...
 
Revolutionary Storage for Modern Databases, Applications and Infrastrcture
Revolutionary Storage for Modern Databases, Applications and InfrastrctureRevolutionary Storage for Modern Databases, Applications and Infrastrcture
Revolutionary Storage for Modern Databases, Applications and Infrastrcture
 
A Performance Comparison of Container-based Virtualization Systems for MapRed...
A Performance Comparison of Container-based Virtualization Systems for MapRed...A Performance Comparison of Container-based Virtualization Systems for MapRed...
A Performance Comparison of Container-based Virtualization Systems for MapRed...
 
Adventures in Research
Adventures in ResearchAdventures in Research
Adventures in Research
 
LinuxTag 2013
LinuxTag 2013LinuxTag 2013
LinuxTag 2013
 
DevNexus 2015: Kubernetes & Container Engine
DevNexus 2015: Kubernetes & Container EngineDevNexus 2015: Kubernetes & Container Engine
DevNexus 2015: Kubernetes & Container Engine
 
Kubernetes - A Short Ride Throught the project and its ecosystem
Kubernetes - A Short Ride Throught the project and its ecosystemKubernetes - A Short Ride Throught the project and its ecosystem
Kubernetes - A Short Ride Throught the project and its ecosystem
 
Fully automated kubernetes deployment and management
Fully automated kubernetes deployment and managementFully automated kubernetes deployment and management
Fully automated kubernetes deployment and management
 
Sergey Dzyuban "To Build My Own Cloud with Blackjack…"
Sergey Dzyuban "To Build My Own Cloud with Blackjack…"Sergey Dzyuban "To Build My Own Cloud with Blackjack…"
Sergey Dzyuban "To Build My Own Cloud with Blackjack…"
 
컨테이너 기술 소개 - Warden, Garden, Docker
컨테이너 기술 소개 - Warden, Garden, Docker컨테이너 기술 소개 - Warden, Garden, Docker
컨테이너 기술 소개 - Warden, Garden, Docker
 
Microcontainers and Tools for Hardcore Container Debugging
Microcontainers and Tools for Hardcore Container DebuggingMicrocontainers and Tools for Hardcore Container Debugging
Microcontainers and Tools for Hardcore Container Debugging
 
Evolution of unix environments and the road to faster deployments
Evolution of unix environments and the road to faster deploymentsEvolution of unix environments and the road to faster deployments
Evolution of unix environments and the road to faster deployments
 
Hot to build continuously processing for 24/7 real-time data streaming platform?
Hot to build continuously processing for 24/7 real-time data streaming platform?Hot to build continuously processing for 24/7 real-time data streaming platform?
Hot to build continuously processing for 24/7 real-time data streaming platform?
 
Opinionated containers and the future of game servers by Brendan Fosberry
Opinionated containers and the future of game servers by Brendan FosberryOpinionated containers and the future of game servers by Brendan Fosberry
Opinionated containers and the future of game servers by Brendan Fosberry
 
Hadoop Cluster on Docker Containers
Hadoop Cluster on Docker ContainersHadoop Cluster on Docker Containers
Hadoop Cluster on Docker Containers
 
Oscon 2012 : From Datacenter to the Cloud - Featuring Xen and XCP
Oscon 2012 : From Datacenter to the Cloud - Featuring Xen and XCPOscon 2012 : From Datacenter to the Cloud - Featuring Xen and XCP
Oscon 2012 : From Datacenter to the Cloud - Featuring Xen and XCP
 
The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...
The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...
The Containers Ecosystem, the OpenStack Magnum Project, the Open Container In...
 
Micro services vs hadoop
Micro services vs hadoopMicro services vs hadoop
Micro services vs hadoop
 
Pro2516 10 things about oracle and k8s.pptx-final
Pro2516   10 things about oracle and k8s.pptx-finalPro2516   10 things about oracle and k8s.pptx-final
Pro2516 10 things about oracle and k8s.pptx-final
 

Similar to Latest (storage IO) patterns for cloud-native applications

Introduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OSIntroduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OSSteve Wong
 
Kubernetes at NU.nl (Kubernetes meetup 2019-09-05)
Kubernetes at NU.nl   (Kubernetes meetup 2019-09-05)Kubernetes at NU.nl   (Kubernetes meetup 2019-09-05)
Kubernetes at NU.nl (Kubernetes meetup 2019-09-05)Tibo Beijen
 
Solving k8s persistent workloads using k8s DevOps style
Solving k8s persistent workloads using k8s DevOps styleSolving k8s persistent workloads using k8s DevOps style
Solving k8s persistent workloads using k8s DevOps styleMayaData
 
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storageWebinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storageMayaData Inc
 
State of the Container Ecosystem
State of the Container EcosystemState of the Container Ecosystem
State of the Container EcosystemVinay Rao
 
Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...
Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...
Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...OpenEBS
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterpriseBert Poller
 
Sanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansSanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansPeter Clapham
 
HPC and cloud distributed computing, as a journey
HPC and cloud distributed computing, as a journeyHPC and cloud distributed computing, as a journey
HPC and cloud distributed computing, as a journeyPeter Clapham
 
Kubernetes for Serverless - Serverless Summit 2017 - Krishna Kumar
Kubernetes for Serverless  - Serverless Summit 2017 - Krishna KumarKubernetes for Serverless  - Serverless Summit 2017 - Krishna Kumar
Kubernetes for Serverless - Serverless Summit 2017 - Krishna KumarCodeOps Technologies LLP
 
Distributed Tensorflow with Kubernetes - data2day - Jakob Karalus
Distributed Tensorflow with Kubernetes - data2day - Jakob KaralusDistributed Tensorflow with Kubernetes - data2day - Jakob Karalus
Distributed Tensorflow with Kubernetes - data2day - Jakob KaralusJakob Karalus
 
How Container Schedulers and Software-based Storage will Change the Cloud
How Container Schedulers and Software-based Storage will Change the CloudHow Container Schedulers and Software-based Storage will Change the Cloud
How Container Schedulers and Software-based Storage will Change the CloudDavid vonThenen
 
Data Lake and the rise of the microservices
Data Lake and the rise of the microservicesData Lake and the rise of the microservices
Data Lake and the rise of the microservicesBigstep
 
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
 The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ... The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...Josef Adersberger
 
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...QAware GmbH
 
Kubernetes Manchester - 6th December 2018
Kubernetes Manchester - 6th December 2018Kubernetes Manchester - 6th December 2018
Kubernetes Manchester - 6th December 2018David Stockton
 
stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...
stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...
stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...NETWAYS
 
Hpc lunch and learn
Hpc lunch and learnHpc lunch and learn
Hpc lunch and learnJohn D Almon
 

Similar to Latest (storage IO) patterns for cloud-native applications (20)

Introduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OSIntroduction to Apache Mesos and DC/OS
Introduction to Apache Mesos and DC/OS
 
Kubernetes at NU.nl (Kubernetes meetup 2019-09-05)
Kubernetes at NU.nl   (Kubernetes meetup 2019-09-05)Kubernetes at NU.nl   (Kubernetes meetup 2019-09-05)
Kubernetes at NU.nl (Kubernetes meetup 2019-09-05)
 
Solving k8s persistent workloads using k8s DevOps style
Solving k8s persistent workloads using k8s DevOps styleSolving k8s persistent workloads using k8s DevOps style
Solving k8s persistent workloads using k8s DevOps style
 
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storageWebinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
Webinar: OpenEBS - Still Free and now FASTEST Kubernetes storage
 
State of the Container Ecosystem
State of the Container EcosystemState of the Container Ecosystem
State of the Container Ecosystem
 
Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...
Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...
Container Attached Storage (CAS) with OpenEBS - Berlin Kubernetes Meetup - Ma...
 
Docker for the enterprise
Docker for the enterpriseDocker for the enterprise
Docker for the enterprise
 
Sanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticiansSanger, upcoming Openstack for Bio-informaticians
Sanger, upcoming Openstack for Bio-informaticians
 
Flexible compute
Flexible computeFlexible compute
Flexible compute
 
HPC and cloud distributed computing, as a journey
HPC and cloud distributed computing, as a journeyHPC and cloud distributed computing, as a journey
HPC and cloud distributed computing, as a journey
 
Kubernetes for Serverless - Serverless Summit 2017 - Krishna Kumar
Kubernetes for Serverless  - Serverless Summit 2017 - Krishna KumarKubernetes for Serverless  - Serverless Summit 2017 - Krishna Kumar
Kubernetes for Serverless - Serverless Summit 2017 - Krishna Kumar
 
Distributed Tensorflow with Kubernetes - data2day - Jakob Karalus
Distributed Tensorflow with Kubernetes - data2day - Jakob KaralusDistributed Tensorflow with Kubernetes - data2day - Jakob Karalus
Distributed Tensorflow with Kubernetes - data2day - Jakob Karalus
 
How Container Schedulers and Software-based Storage will Change the Cloud
How Container Schedulers and Software-based Storage will Change the CloudHow Container Schedulers and Software-based Storage will Change the Cloud
How Container Schedulers and Software-based Storage will Change the Cloud
 
Data Lake and the rise of the microservices
Data Lake and the rise of the microservicesData Lake and the rise of the microservices
Data Lake and the rise of the microservices
 
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
 The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ... The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
 
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
 
Cont0519
Cont0519Cont0519
Cont0519
 
Kubernetes Manchester - 6th December 2018
Kubernetes Manchester - 6th December 2018Kubernetes Manchester - 6th December 2018
Kubernetes Manchester - 6th December 2018
 
stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...
stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...
stackconf 2020 | Replace your Docker based Containers with Cri-o Kata Contain...
 
Hpc lunch and learn
Hpc lunch and learnHpc lunch and learn
Hpc lunch and learn
 

More from OpenEBS

Redis Conf 2019--Container Attached Storage for Redis
Redis Conf 2019--Container Attached Storage for RedisRedis Conf 2019--Container Attached Storage for Redis
Redis Conf 2019--Container Attached Storage for RedisOpenEBS
 
Replication and rebuild in cStor
Replication and rebuild in cStorReplication and rebuild in cStor
Replication and rebuild in cStorOpenEBS
 
Data Agility for Devops - OSI 2018
Data Agility for Devops - OSI 2018Data Agility for Devops - OSI 2018
Data Agility for Devops - OSI 2018OpenEBS
 
Introduction to cStor replica - Contributors Meet 5th Oct 2018
Introduction to cStor replica - Contributors Meet 5th Oct 2018Introduction to cStor replica - Contributors Meet 5th Oct 2018
Introduction to cStor replica - Contributors Meet 5th Oct 2018OpenEBS
 
Running OpenEBS on GPDs - Weekly Contributors Meet 28th Sep 2018
Running OpenEBS on GPDs - Weekly Contributors Meet 28th Sep 2018Running OpenEBS on GPDs - Weekly Contributors Meet 28th Sep 2018
Running OpenEBS on GPDs - Weekly Contributors Meet 28th Sep 2018OpenEBS
 
Container Attached Storage (CAS) with OpenEBS - SDC 2018
Container Attached Storage (CAS) with OpenEBS -  SDC 2018Container Attached Storage (CAS) with OpenEBS -  SDC 2018
Container Attached Storage (CAS) with OpenEBS - SDC 2018OpenEBS
 
Volume Policies in OpenEBS 0.7
Volume Policies in OpenEBS 0.7Volume Policies in OpenEBS 0.7
Volume Policies in OpenEBS 0.7OpenEBS
 
Thoughts on heptio's ark - Contributors Meet 21st Sept 2018
Thoughts on heptio's ark - Contributors Meet 21st Sept 2018Thoughts on heptio's ark - Contributors Meet 21st Sept 2018
Thoughts on heptio's ark - Contributors Meet 21st Sept 2018OpenEBS
 
Deploying OpenEBS with Availability Zones
Deploying OpenEBS with Availability ZonesDeploying OpenEBS with Availability Zones
Deploying OpenEBS with Availability ZonesOpenEBS
 
Kubernetes Monitoring and Troubleshooting using Weavescope- Kubernetes Meetup...
Kubernetes Monitoring and Troubleshooting using Weavescope- Kubernetes Meetup...Kubernetes Monitoring and Troubleshooting using Weavescope- Kubernetes Meetup...
Kubernetes Monitoring and Troubleshooting using Weavescope- Kubernetes Meetup...OpenEBS
 
OpenEBS Visualization and Monitoring using Weave-scope - Contributors Meet 1s...
OpenEBS Visualization and Monitoring using Weave-scope - Contributors Meet 1s...OpenEBS Visualization and Monitoring using Weave-scope - Contributors Meet 1s...
OpenEBS Visualization and Monitoring using Weave-scope - Contributors Meet 1s...OpenEBS
 
BDD Testing Using Godog - Bangalore Golang Meetup # 32
BDD Testing Using Godog - Bangalore Golang Meetup # 32BDD Testing Using Godog - Bangalore Golang Meetup # 32
BDD Testing Using Godog - Bangalore Golang Meetup # 32OpenEBS
 
Container Attached Storage - Chennai Kubernetes Meetup #2 - April 21st 2018
Container Attached Storage - Chennai Kubernetes Meetup #2 - April 21st 2018Container Attached Storage - Chennai Kubernetes Meetup #2 - April 21st 2018
Container Attached Storage - Chennai Kubernetes Meetup #2 - April 21st 2018OpenEBS
 
Kubernetes Visualization-and-Monitoring-using-Weave-scope
Kubernetes Visualization-and-Monitoring-using-Weave-scopeKubernetes Visualization-and-Monitoring-using-Weave-scope
Kubernetes Visualization-and-Monitoring-using-Weave-scopeOpenEBS
 
OpenEBS CAS SDC India - 2018
OpenEBS CAS SDC India - 2018OpenEBS CAS SDC India - 2018
OpenEBS CAS SDC India - 2018OpenEBS
 
OpenEBS hangout #4
OpenEBS hangout #4OpenEBS hangout #4
OpenEBS hangout #4OpenEBS
 
Containerized Storage for Containers
Containerized Storage for ContainersContainerized Storage for Containers
Containerized Storage for ContainersOpenEBS
 
South Bay Kubernetes DevOps
South Bay Kubernetes DevOps South Bay Kubernetes DevOps
South Bay Kubernetes DevOps OpenEBS
 
Containerized Storage for Containers Meetup #3
Containerized Storage for Containers Meetup #3Containerized Storage for Containers Meetup #3
Containerized Storage for Containers Meetup #3OpenEBS
 
Containerized Storage for Containers- Kubernetes LA Meetup , July 2017
Containerized Storage for Containers- Kubernetes LA Meetup , July 2017Containerized Storage for Containers- Kubernetes LA Meetup , July 2017
Containerized Storage for Containers- Kubernetes LA Meetup , July 2017OpenEBS
 

More from OpenEBS (20)

Redis Conf 2019--Container Attached Storage for Redis
Redis Conf 2019--Container Attached Storage for RedisRedis Conf 2019--Container Attached Storage for Redis
Redis Conf 2019--Container Attached Storage for Redis
 
Replication and rebuild in cStor
Replication and rebuild in cStorReplication and rebuild in cStor
Replication and rebuild in cStor
 
Data Agility for Devops - OSI 2018
Data Agility for Devops - OSI 2018Data Agility for Devops - OSI 2018
Data Agility for Devops - OSI 2018
 
Introduction to cStor replica - Contributors Meet 5th Oct 2018
Introduction to cStor replica - Contributors Meet 5th Oct 2018Introduction to cStor replica - Contributors Meet 5th Oct 2018
Introduction to cStor replica - Contributors Meet 5th Oct 2018
 
Running OpenEBS on GPDs - Weekly Contributors Meet 28th Sep 2018
Running OpenEBS on GPDs - Weekly Contributors Meet 28th Sep 2018Running OpenEBS on GPDs - Weekly Contributors Meet 28th Sep 2018
Running OpenEBS on GPDs - Weekly Contributors Meet 28th Sep 2018
 
Container Attached Storage (CAS) with OpenEBS - SDC 2018
Container Attached Storage (CAS) with OpenEBS -  SDC 2018Container Attached Storage (CAS) with OpenEBS -  SDC 2018
Container Attached Storage (CAS) with OpenEBS - SDC 2018
 
Volume Policies in OpenEBS 0.7
Volume Policies in OpenEBS 0.7Volume Policies in OpenEBS 0.7
Volume Policies in OpenEBS 0.7
 
Thoughts on heptio's ark - Contributors Meet 21st Sept 2018
Thoughts on heptio's ark - Contributors Meet 21st Sept 2018Thoughts on heptio's ark - Contributors Meet 21st Sept 2018
Thoughts on heptio's ark - Contributors Meet 21st Sept 2018
 
Deploying OpenEBS with Availability Zones
Deploying OpenEBS with Availability ZonesDeploying OpenEBS with Availability Zones
Deploying OpenEBS with Availability Zones
 
Kubernetes Monitoring and Troubleshooting using Weavescope- Kubernetes Meetup...
Kubernetes Monitoring and Troubleshooting using Weavescope- Kubernetes Meetup...Kubernetes Monitoring and Troubleshooting using Weavescope- Kubernetes Meetup...
Kubernetes Monitoring and Troubleshooting using Weavescope- Kubernetes Meetup...
 
OpenEBS Visualization and Monitoring using Weave-scope - Contributors Meet 1s...
OpenEBS Visualization and Monitoring using Weave-scope - Contributors Meet 1s...OpenEBS Visualization and Monitoring using Weave-scope - Contributors Meet 1s...
OpenEBS Visualization and Monitoring using Weave-scope - Contributors Meet 1s...
 
BDD Testing Using Godog - Bangalore Golang Meetup # 32
BDD Testing Using Godog - Bangalore Golang Meetup # 32BDD Testing Using Godog - Bangalore Golang Meetup # 32
BDD Testing Using Godog - Bangalore Golang Meetup # 32
 
Container Attached Storage - Chennai Kubernetes Meetup #2 - April 21st 2018
Container Attached Storage - Chennai Kubernetes Meetup #2 - April 21st 2018Container Attached Storage - Chennai Kubernetes Meetup #2 - April 21st 2018
Container Attached Storage - Chennai Kubernetes Meetup #2 - April 21st 2018
 
Kubernetes Visualization-and-Monitoring-using-Weave-scope
Kubernetes Visualization-and-Monitoring-using-Weave-scopeKubernetes Visualization-and-Monitoring-using-Weave-scope
Kubernetes Visualization-and-Monitoring-using-Weave-scope
 
OpenEBS CAS SDC India - 2018
OpenEBS CAS SDC India - 2018OpenEBS CAS SDC India - 2018
OpenEBS CAS SDC India - 2018
 
OpenEBS hangout #4
OpenEBS hangout #4OpenEBS hangout #4
OpenEBS hangout #4
 
Containerized Storage for Containers
Containerized Storage for ContainersContainerized Storage for Containers
Containerized Storage for Containers
 
South Bay Kubernetes DevOps
South Bay Kubernetes DevOps South Bay Kubernetes DevOps
South Bay Kubernetes DevOps
 
Containerized Storage for Containers Meetup #3
Containerized Storage for Containers Meetup #3Containerized Storage for Containers Meetup #3
Containerized Storage for Containers Meetup #3
 
Containerized Storage for Containers- Kubernetes LA Meetup , July 2017
Containerized Storage for Containers- Kubernetes LA Meetup , July 2017Containerized Storage for Containers- Kubernetes LA Meetup , July 2017
Containerized Storage for Containers- Kubernetes LA Meetup , July 2017
 

Recently uploaded

SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

Latest (storage IO) patterns for cloud-native applications

  • 1. Containerized Storage for Containers @JeffryMolanus @openEBS https://openebs.io mountpoint.io - 2018
  • 2. Latest (storage IO) patterns for cloud-native applications in a k8s environment
  • 4.
  • 5. Applications have changed; & somebody forgot to tell storage
  • 6. • Cloud native apps that are distributed systems themselves • Let us use Paxos, RAFT, nobody flinches • They want it to scale by default — batteries included – HaProxy, Envoy — no more storage scaling • Apps are designed to fail across DC’s, regions and providers • Should be multi-cloud, multi-hypervisor and multi-platform • Databases provide distributed scale out; or one can use vitess for existing SQL (no-noSQL) databases • Datasets of individual containers are relatively small • The sum of the parts is greater then the whole Cloud native software architecture
  • 7. Data availability and performance is not (anymore) exclusively controlled at the storage layer
  • 8. • Deliver fast and frequently • A deployment per day keeps the ….. away • Small teams with specific goals. Shadow IT is where the innovation happens — born in the cloud • CI/CD pipelines — blue-green or cannery deployment • Make install has been upgraded to make push • Software delivery has changed, tarball on steroids • Declarative intent, gitOps, chatOps • K8s as the unified cross cloud control plane (control loop) • Everything in containers either bare metal or lkvm DevOps (the people)
  • 9. • Storage appliance peculiarities bubble up in apps • Don't do this because… don't do that because…. • Makes it hard to write code that uses the full stack optimal when moving from c2c, private or public • Some vendors — simply put their appliances in the cloud • Friction; “Do not run your CI while I do backups!” • You need LU’s again? Gave you 100 yesterday! • “We simply use DAS as nothing is faster than that” • NVMe and PDIMs enforce a change in the way we do things • Increasing core counts create new challenges • caches, migrations, NUMA and yes — not fully utilised cores HW / Storage trends
  • 10. HW / Storage trends
  • 11. HW / Storage trends
  • 12.
  • 13. What if storage for container native applications was itself container native?
  • 14. • Not yet another distributed storage system; small is the new big • Cloud native (not washed) applications are, inherently distributed applications • One on top of the other, an operational nightmare? • Per workload storage system, using declarative intent defined by the developer • Applications defined storage • Reduce blast radius and no IO blender • Runs in containers for containers — in user space • Not a clustered storage instance rather a cluster of storage instances Design constraints
  • 15. Containers & k8s Manifests express intent stateless Container 1 Container 2 Container 3 Container 1 Container 2 Container 3 Container 1 Container 2 Container 3 stateful Data Container Data Container Data Container Any Server, Any Cloud Any Server, Any Cloud
  • 16. Solution 1. Small working sets 2. Ephemeral 3. Scale by N 4. Mobile workloads 5. DevOps responsible for operations 6. Cloud lock-in 7. Per workload optimisation 1. Keep data local 2. Controller in POD 3. N more containers 4. Follow the workload 5. Just another micro service 6. Workload migration 7. Declarative intent Challenge
  • 17. High level CAS architecture
  • 18.
  • 19. Using the k8s substrate • Betting on k8s; don't integrate with plugins actually build on-top of it • CSI plugin standardised API to communicate with external storage (controller and agent) • Implement dynamic provisioner to construct “volumes” (openEBS operator) • Using the operator framework to construct storage topology and reflect storage systems state (kubectl describe) • watchers and CRDs to invoke logic to reconcile desired state • Again, using the operator framework to discover local devices and their properties to create storage pools dynamically (NDM) • Fully operated by kubectl i.e no external tools required (*) • Visualise topology and EE testing (Litmus)
  • 20. k8s control plane for storage
  • 21.
  • 22. Patterns; sidecars & meshes • A CAS volume consists out of controller and a replica and lives somewhere • The fallacies of distributed computing (L. Peter Deutsch) • The only constant is change • How do we dynamic (re) configure? • Optimal transport/path • Rescheduling • Different (virtual) machines • Data mesh for dynamic IO reconfiguration
  • 23. K8s pattern; service mesh Kasun Indrasiri
  • 24. Data mesh negotiated transport kind: DataFrabricConnection apiVersion: V1 metadata: labels: - …. spec: name: my-iospec ioChannel: my-first-channel request: type: block - nvmeof - nbd - iscsi - ..... properties: compress: false encrypt : true .... .... • Controller and replica need to find optimal path — but also the app to the controller • Virtual “HBA” uses negotiated transport and features (VHCI) • Capable of using different transport types • Connection types and state reflected in custom resources • kubectl edit or update -f xyz.yaml • Opportunity to innovate for application optimised IO patterns: smart endpoints dumb pipes
  • 25. Storage just fades away as a concern
  • 26. Implementation details • JIVA, the primordial soup to determine feasibility • Praised for its ease of use by users • Instrumental to use to find and explore uses case for the cloud native landscape • Does not provide efficient “enterprise” storage features • Swapping out JIVA with something else is just a matter of adding storage classes so we are evolving (pluggable) • Yay for the micro service approach • The biggest problem to solve however is user space IO • Different kernels on different clouds — tainting • Performance in public cloud not yet the biggest concern
  • 27. Input output container (IOC) • If containers perform (mostly) API request to one and other, why not have them do storage IO to each other? • Select devices (NDM) and claim resources in the pod spec • DSM can handle this automatically as well • IOC DaemonSet grabs the devices and exposes them through a variety of different protocols • Leveraging Storage Plane Development Kit • There are other things available like UNVMe however • Bypass the kernel using UIO/VFIO and DMA straight into the devices by leveraging huge pages (Poll Mode Drivers)
  • 29. Reusing virtio for containers • Widely used and actively developed protocol which uses shared memory to interact with several types of hardware • In the case of openEBS — interested in user space virtio- {blk,nvme} initiator • Primary reason for developing this was to have a loosely coupling with SPDK which use Poll Mode Drivers (PMD) • Perhaps also LIO’s vhost support • Even-though we have plenty of cores — having anything and everything attached to openEBS do polling is not acceptable • There was no “libvirtio” unfortunately, so we created one
  • 30. Feasibility test • SPDK in full polling mode using the SPDK provided plugin • Virtio plugin using SHM, to issue IO to SPDKs • Experiment expectations: • Due to non polling mode performance will drop • Due to eventfd() performance will drop (context switches) • Desired result: ~kernel • Quid pro quo SPDK FIO Virtio FIO SPDK Kick
  • 31. Results of the first test SPDK Kernel openEBS 0 125 250 375 500 490 IOPS(K)
  • 32. Results using adaptive polling SPDK Kernel openEBS 0 125 250 375 500 490 Maximum IOPS(K) 100ms 10ms 5ms 350 400 450 500 484 Maximum Sleep time
  • 33. Initial observation • SPDK can indeed out perform the kernel • Using it however has some ramifications but is IO processing in user space becoming a new trend? • Using virtio as a user space library to do block IO is feasible • Using eventfd() to kick the vhost controller has very high negative impact on performance (how much actually was surprising) • Sleepy polling improves performance reaching (~0.82%) of direct NVMe with no virtio only a 6K IOPS drop) • Implement adaptive polling that dynamically updates the sleep interval based on measured throughput
  • 34. Go-virtio API • Can we implement virtio in Go such that the read and write interfaces use virtio? • Golang interfaces are like classes If you implement the methods you satisfy the interface • Go uses go routines — user level threads, should provide less scheduling overhead when using multiple routines • Less context switches is good for performance • Need to understand the “M”, “G” and “P” which is part of the go runtime • C functions are always executed on a separate M, implement it natively in go
  • 35. Go virtio-blk (not the same HW) SR-4 PR-4 SW-4 PW-4 10 20 30 40 34,6 MaximumIOPS(K) • Cant use small sleeps in Golang to do polling • #25471 • Results shown use eventfd() • Clearly more work needed but its a start • Results obtained using go test - bench • Note; not the same HW as before!
  • 36. Other protocols • Most applications wont be able to connect directly with virtio • Support for iSCSI, NBD, TCMU, • To really keep up with NVMe we need nvme-of to be more widely adopted • Should work over TCP as well as RNICs for transitions in particular for cloud based deployments (softroce and nvmeof-tcp) • Add support for contiv which leverages VPP-VCL to accelerate network and stay in user space • At current requires TAP/TAP2 — to expose interface to the container • Microsoft FreeFlow also aimed at network acceleration • Both implementations use LD_PRELOADs to intercept syscalls to avoid application changes
  • 37. File based access • Inject syscall interception library for applications that need basic file operations typically for databases that have data consistency models built in • Not targeted towards file servers • DB have a very typical IO pattern, mostly append only as they typically have some form of WAL with compaction • Library is mounted in the namespace configured based on developer intent • Crucial to have proper testing and regression framework • CI/CD, devOps, End 2 End (litmus) DB PRELOAD POD spec shm 9p
  • 38. • Bring advanced storage feature to individual container workloads • Cloud native; using the same software development paradigm • Build for containers in containers • IO handling from the IOC implemented fully in user space • Control release cadence, extra performance is a bonus • Declarative provisioning and protection policies • Remove friction between teams • Multi cloud from public to private • Not a clustered storage instance rather a cluster of storage instances Summary about OpenEBS