You are previewing OpenStack Trove.
O'Reilly logo
OpenStack Trove

Book Description

OpenStack Trove is your step-by-step guide to set up and run a secure and scalable cloud Database as a Service (DBaaS) solution. The book shows you how to set up and configure the Trove DBaaS framework, use prepackaged or custom database implementations, and provision and operate a variety of databases—including MySQL, PostgreSQL, MongoDB, Cassandra, and Redis—in development and production environments.

Authors Amrith Kumar and Douglas Shelley, both active technical contributors to the Trove project, describe common deployment scenarios such as single-node database instances and walk you through the setup, configuration, and ongoing management of complex database topics like replication, clustering, and high availability. The book provides detailed descriptions of how Trove works and gives you an in-depth understanding of its architecture.

It also shows you how to avoid common errors and debug and troubleshoot Trove installations, and perform common tasks such as:

Table of Contents

  1. Cover
  2. Title
  3. Copyright
  4. Dedication
  5. Contents at a Glance
  6. Contents
  7. About the Authors
  8. About the Technical Reviewer
  9. Acknowledgments
  10. Chapter 1: An Introduction to Database as a Service
    1. What Is Database as a Service?
      1. The Database
      2. The Service
      3. The Service as a Category
      4. DBaaS Defined
    2. The Challenge Databases Pose to IT Organizations
    3. Characteristics of DBaaS
      1. The Management Plane and the Data Plane
      2. Tenancy
      3. Service Location
      4. Service vs. Platform
    4. The Benefits of DBaaS
      1. Ease of Provisioning
      2. Consistent Configurations
      3. Automated Operations
      4. Autoscaling
      5. Improvements to Development Agility
      6. Better Resource Utilization and Planning
      7. Simplified Role for Provider or Operator
    5. Other DBaaS Offerings
      1. Amazon RDS
      2. Amazon RedShift
      3. Microsoft Azure SQL Database
      4. Google Cloud SQL
      5. Amazon DynamoDB
    6. OpenStack Trove
    7. A Brief History of Trove
    8. Tenancy in OpenStack Trove
    9. Trove in the OpenStack Ecosystem
    10. Summary
  11. Chapter 2: Downloading and Installing OpenStack Trove
    1. Deploying a Single-Node Development Environment
      1. Set Up the Ubuntu Environment
      2. Install Some Basic Packages
      3. Verify Your Setup
      4. Enable Password-less sudo for the “ubuntu” User
      5. Install OpenStack Using the devstack Tool
      6. Enable the Default Trove Public Key
      7. Authenticate with the System
      8. Launch Your First Trove Database
      9. Using Neutron with devstack
      10. Accessing the Dashboard
    2. Deploying Trove in a Multinode OpenStack Environment
      1. Prerequisites
      2. Install the Required Packages
      3. Create the Trove User
      4. Create the Trove Operational Database
      5. Configure OpenStack for Trove
      6. Configure the Trove Services
      7. Initialize the Trove Operational Database
      8. Configure the Trove Endpoint in Keystone
      9. Restart the Trove Services
      10. Download or Build a Trove Guest Image
      11. Configure the datastore and datastore version
    3. Summary
  12. Chapter 3: Basic Trove Operations
    1. Interacting with RESTful Services using curl
      1. Obtain a Token from Keystone
      2. Use the Token to Interact with the RESTful Service
    2. Understanding How Applications and OpenStack Services Interact
    3. Scripting with the Trove CLI
    4. Listing Instances
    5. Launching Instances
    6. Restarting an Instance
    7. Deleting an Instance
    8. Configuring Multiple Datastores
      1. Configuring Datastores
      2. Specifying the Default Datastore
    9. Creating Users and DatabasesDatabases and users
      1. Enabling the Database root User
      2. Manipulating Databases
      3. Manipulating Users
    10. Summary
  13. Chapter 4: Concepts and Architecture
    1. High-Level Trove Architecture
    2. Trove Concepts
      1. The Trove Services
      2. The Trove Guest Agent API
      3. Trove Strategies
      4. Trove Extensions
      5. Classification Model for Guest Agents and Strategies
      6. The Trove Guest Image
      7. The Trove Message Queue and the Trove Internal API
      8. The Trove Infrastructure Database
      9. The Trove Public API
    3. OpenStack Trove Architecture
    4. Summary
  14. Chapter 5: Advanced Trove Operations
    1. Custom Flavors
    2. Backup and Restore in Trove
    3. Replication in Trove
      1. Support for Replication
      2. Creating a Replica
      3. Failover
    4. Clustering in Trove
      1. Installing MongoDB
    5. Configuration Groups
    6. Instance Resizing
    7. Terminating Instances
    8. Summary
  15. Chapter 6: Debugging and Troubleshooting
    1. Accessing the Trove Guest Instance Command Line
      1. Guest Images from OpenStack
      2. Guest Images from Tesora
    2. Reading the Trove Error Logs
      1. Error Logs on Trove Controller Node
      2. Error Logs on the Guest Instance
      3. Some Practical Examples of Looking at Error Logs
    3. Understanding the Trove Log Levels
    4. Using the OpenStack Profiler with Trove
      1. Profiling Code between a Start and Stop Location
      2. Using the Python with Construct to Profile a Block of Code
      3. Using a Decorator and Profiling a Method
      4. Using a Decorator and Profiling an Entire Class
    5. Summary
  16. Chapter 7: Building Guest Images for Trove
    1. Using Prebuilt Trove Guest Images
      1. Components of a Trove Guest Image
      2. Registering a Trove Guest Image
    2. Building Guest Images with Disk Image Builder
      1. Installing Disk Image Builder
      2. Disk Image Builder Elements
      3. Building a Guest Image from Trove Reference Elements
      4. Building a Guest Image Using ‘redstack’
    3. Understanding How Disk Image Builder Works
      1. Phases Within an Element
      2. Execution Sequence
    4. Understanding the Trove Reference Elements
    5. Using the Guest Agent Code
      1. Guest Agent Code Installed at Runtime
      2. Guest Agent Code Installed at Build Time
    6. Guest Images on Different Operating Systems
    7. Summary
  17. Chapter 8: Operating Trove in Production
    1. Configuring the Trove Infrastructure
      1. Configuring Trove to Use Dedicated Infrastructure
      2. Configuring Security on the AMQP Server
      3. Providing Credentials to Access the AMQP Server
    2. Securing the Guest
      1. Using SSH on Guest Instances
      2. Using Security Groups and Network Security
    3. Trove as a Client of Other OpenStack Services
      1. Consuming Services from a Private OpenStack Setup
      2. Using Shadow Tenants and Service Tenants
    4. Summary
  18. Appendix A: Trove Configuration Options
    1. Trove Configuration Files
    2. Trove Configuration Options
    3. Datastore-Specific Configuration Options
    4. Summary
  19. Appendix B: The Trove Command-Line Interface
    1. The Command-Line Interface
      1. The trove Commandtrove command
      2. The trove-manage Command
    2. Summary
  20. Appendix C: The Trove API
    1. The Trove API Service End Point
    2. API Conventions
    3. List API Versions
    4. Instance APIs
      1. List Instances
      2. Create Instance
      3. Show Instance
      4. Instance Actions
      5. Patch Instance
      6. Update Instance
      7. Delete Instance
      8. List Backups
      9. List Instance Configuration
    5. Datastores API
      1. List Datastores
      2. List Datastore Versions
      3. Show Datastore Version (by Datastore and Version)
      4. Show Datastore Version (by UUID)
      5. List Datastore Version Configuration Options
      6. Show Datastore Version Configuration Option
      7. List Datastore Version Configuration Options
      8. Show Datastore Version Configuration Option
    6. Flavors API
      1. List Flavors
      2. Show Flavor
    7. Limits API
      1. List Limits
    8. Backups API
      1. List Backups
      2. Show Backup
      3. Create Backup
      4. Delete Backup
    9. Database Extensions API
      1. Get Root-enabled Status
      2. Enable Root
      3. Database List
      4. Database Create
      5. Database Delete
      6. User Create
      7. User List
      8. User Show Access
      9. User Delete
      10. User Grant Access
      11. User Show Access
      12. User Revoke Access
    10. Clusters API
    11. List Cluster
      1. Show Cluster
      2. Create a Cluster
      3. Perform Cluster Action to Add Instances
      4. Delete a Cluster
    12. Summary
  21. Index