5. ... BUT DOES EVERYONE NEED
TO BUILD THEIR OWN?
• Platform/Distribution Support
• System Tuning Idiosyncrasies
• Flavors, Forks, Branches
HX111.1 An Introduction to Database-as-a-Service
6. WHAT'S SPECIAL ABOUT THE
CLOUD?
• Little to no control over infrastructure
• Everything is virtualized and orchestrated
• QoS is limited
HX111.1 An Introduction to Database-as-a-Service
7. ONE APPROACH
The DBA now becomes a cloud operator.
But that's rather undesirable.
HX111.1 An Introduction to Database-as-a-Service
12. A BIT OF PROJECT HISTORY
• Originally named Reddwarf (alternatively RedDwarf)
• First public presentation at Percona Live 2012 by Brian
Aker
• Renamed Trove in 2013
HX111.2 An Introduction to OpenStack Trove
13. RELEASE HISTORY
• Incubated until Havana release (October 2013)
• Graduated shortly before Icehouse Summit
• Integrated in Icehouse release (April 2014)
HX111.2 An Introduction to OpenStack Trove
14. CONTRIBUTORS AND
SUPPORTERS
• Original project sponsor: Hewlett-Packard
• Current major backers: eBay, HP, Rackspace
• More than 75 individual contributors
• Current PTL: Michael Basnight, Rackspace
HX111.2 An Introduction to OpenStack Trove
17. WHAT TROVE BUILDS UPON
• Keystone: authentication, authorization, access control
• Nova: compute
• Cinder: persistent storage
• Neutron or nova-network: networking
HX111.3 Trove's Moving Parts
18. WHAT TROVE CONSISTS OF
• trove-api: ReSTful API service
• trove-taskmanager: implements API service calls and
fires up guest
• trove-guestagent: configures guest for datastore use
HX111.3 Trove's Moving Parts
20. DATASTORE
A specific RDBMS or NoSQL datastore that Trove can manage:
• MySQL
• MongoDB
• Cassandra
• ...
HX111.3 Trove's Moving Parts
21. DATASTORE VERSION
• Is linked to datastore
• Defines base image
• Defines sets of packages to be installed
HX111.3 Trove's Moving Parts
22. INSTANCE
• Is one incarnation of a datastore version
• Is managed by Nova and uses persistent volumes
managed in Cinder
• Runs a full OS plus trove-guestagent
HX111.3 Trove's Moving Parts
23. CONFIGURATION GROUP
• A set of configuration options you can set for an instance
• Enables admins to define and use best-practice
configurations for specific use cases
HX111.3 Trove's Moving Parts
24. DATABASES
• Several can run in one instance
• All database management is through OpenStack APIs
and trove-guestagent
HX111.3 Trove's Moving Parts
25. GETTING TROVE OPERATIONAL
• Install required OpenStack services
• Install Trove services
• Prepare an image
• Create a datastore
• Create a datastore version
HX111.3 Trove's Moving Parts
26. DEPLOYING TROVE
• Low maturity
• DevStack/Redstack
• Ubuntu packages in trusty (but not in Cloud Archive)
• Only client packages in RDO
• Puppet modules being worked on at eBay
HX111.3 Trove's Moving Parts
30. LISTING VERSIONS FOR A
DATASTORE
trove datastore -version -list <datastore -name>
Lists currently configured versions for a datastore
HX111.4 Working With Trove
31. GETTING DETAILS FOR A
DATASTORE VERSION
trove datastore -version -show
--datastore <name> <version -id>
HX111.4 Working With Trove
42. CREATING A USER AND
ENABLING DATABASE ACCESS
trove user-create
<instanceid >
<username >
<password >
[--host=<host >]
[--databases=<db1>,<db2>,...]
HX111.4 Working With Trove
43. GRANTING USER ACCESS
trove user-grant-access
<instanceid >
<username >
<password >
<db1>,<db2>,...
[--host=<host >]
HX111.4 Working With Trove
55. WHAT YOU LEARNED TODAY
Why DBaas?
• A step up the stack
• Almost everyone needs a database
• Cloud shifts control over infrastructure away from DBA
HX111.5 Summary
56. WHAT YOU LEARNED TODAY
What's Trove?
• DBaaS within the OpenStack Framework
• Originally "Red Dwarf"
• Integrated for Icehouse
• Backed by HP, Rackspace, eBay, Tesora
HX111.5 Summary
57. WHAT YOU LEARNED TODAY
Trove's Moving Parts
• Builds on OpenStack Nova, Glance, Neutron, Cinder
• Contains API, task manager, guest agent
• Datastores, Versions, Instances, Databases
• Deployment Considerations
HX111.5 Summary
58. WHAT YOU LEARNED TODAY
Working with Trove
• Creating an instance
• Creating a database
• Assigning users and granting permissions
• Using configuration groups
HX111.5 Summary