Storage Orchestration for Cloud
Native Environments
https://github.com/rook/rook
https://rook.io
Bassam	Tabbara	(@bassamtabbara)
CTO	@	Quantum	Corp.
Rook	Overview
• Open	Sourced	Nov’16	(Apache	2.0)
• Turns	distributed	storage	software	into	a	self-managing,	self-scaling,	and	self-
healing	storage	services
• Automates	deployment,	bootstrapping,	configuration,	provisioning,	scaling,	upgrading,	
migration,	disaster	recovery,	monitoring,	and	resource	management
• Uses	the	facilities	provided	by	the	underlying	cloud-native	container	management,	
scheduling	and	orchestration	platform	to	perform	its	duties
• Integrates	deeply	into	cloud	native	environments	leveraging	extension	points	and	
providing	a	seamless	experience	for	scheduling,	lifecycle	management,	resource	
management,	security,	monitoring,	and	user	experience.
• Initial	support	for	Ceph and	Kubernetes	– more	to	come	with	community	help
• Currently	in	Alpha,	Beta	planned	in	the	Fall,	Production	Ready	by	end	of	year
Why	is	Storage	outside	the	Cloud-Native	Cluster?
File,	Block,	Object
volume	plugins
à CSI	/	CVI
Cloud	Storage	Services
Open	Storage
Software
Commercial	Storage
Software	&	Hardware
Use	Case:	GitLab on	Kubernetes	On-Premise
Dynamic
Volume
Provisioning
Provisioning
Open	Source
Multi-Cloud
Federation
Integrated	Security
Integrated	Scheduling
Integrated	QoS
Availability
Backup	and	DR
Upgrades
Migrations
Monitoring
Use	Case:	GitLab on	Kubernetes	on	AWS
Dynamic
Volume
Provisioning
EBS,	S3,	EFS
Provisioning
Open	Source
Multi-Cloud
Federation
Integrated	Security
Integrated	Scheduling
Integrated	QoS
Availability
Backup	and	DR
Upgrades
Migrations
Monitoring
Use	Case:	Kubernetes	Pod	failover	in	AWS
EBS
Failovercrash
1	hr
Single	Availability	Zone
EBS
Failover
crash
Zone	1 Zone	2
S3
EBS
manual
snapshot
manual
restore
Multi	Availability	Zone
Storage	Services	should	run	inside	the	Cluster
Provisioning
Open	Source
Multi-Cloud
Federation
Integrated	Security
Integrated	Scheduling
Integrated	QoS
Availability
Backup	and	DR
Upgrades
Migrations
Monitoring
DemoDemo
Architecture
Rook	Operator,	
Controllers,		
Provisioners
Kubernetes	
API
New	Objects:
Storage	Clusters
Storage	Pools
Object	Store
File	Store
Objects:
Deployments
DaemonSets
Pods
Services
StorageClass /	PV	/	PVC
ClusterRole
Namespace
Config Maps
Kubelet
Rook	Volume	
Plugin
Rookd Pod
kubectl
New	Objects:
Volume	Attachments
Management	&	Health	API
Community
• Started	Nov’2016
• 1493+	stars
• 106	forks
• 27	contributors
• 91	gitter	members
• ~500K+	container	pulls
Rook	and	the	CNCF
• Well-aligned	with	CNCF	core	principles	of	cloud-native	systems:	
container	packaged,	micro-services	oriented,	and	dynamically	
managed.
• Complimentary	to	other	CNCF	projects	like	Kubernetes	and	
Prometheus.
• Integrating	storage	services	helps	the	CNCF	offer	a	more	complete	
stack	and	unlock	powerful	scenarios	around	federation,	portability	
and	multi-cloud.
Thank you!

Rook cncf-wg-storage