Preface
Database management has come a long way over the last decade or so. The process of provisioning databases used to start with racking and stacking a physical server, installing and configuring an operating system, and finally, installing and configuring a database management system. This entire process took weeks and, in some cases, months. Once the database is provisioned, you then of course have a whole host of things to be managed, including availability, backups, security, and performance. This provisioning and management consumed a lot of time and resources. During the evolution, we had two trends that have had a significant impact on the way databases were provisioned and managed. Automation eased the management aspect and virtualization eased the provisioning, at least up to the operating-system layer. Meanwhile, the other trend that we have seen is that enterprises are moving away from a single database technology model to a model which is fancily termed "polyglot persistence". This basically means adopting multiple database technologies with the intention of storing the data in a database that is best suited for that type of data. With multiple types of database technologies coming into play, enterprises are finding it difficult to manage this complexity while maintaining corporate standards and compliance.
Fortunately for us, over the last couple of years, cloud is the other trend that came to our rescue. With the advent of cloud, we have initially seen self-service based agile provisioning of infrastructure take off, which has been termed as Infrastructure as a Service and has automated a lot of aspects and made infrastructure management easier. Building on this a bit more, we now have self-service based agile provisioning of multiple types of databases, which is popularly known as Database as a Service (DBaaS). This has made things much easier for enterprises in terms of bringing in efficiencies and enforcing corporate standards and compliance. Enterprises can avail DBaaS from a public cloud such as Amazon Web Services or Microsoft Azure. Alternatively, they can build their own private cloud-based DBaaS and the need for this could be owing to various reasons such as data privacy and security. This is where OpenStack and Trove comes into the picture. OpenStack Trove is an open source implementation of DBaaS. While it has been in existence for a couple of years, it has started gaining momentum only recently with enterprises giving it a serious thought.
The benefits of DBaaS in general and OpenStack Trove in particular are obvious. The key challenge, however, is that beyond the documentation that is available from the OpenStack project itself, there is not much reading material out there to help potential DBAs and system/cloud administrators. This lack of skill and know-how is one of the potential inhibitors to OpenStack Trove adoption.
This book is an attempt to provide all the essential information that is necessary to kick-start your learning of OpenStack Trove and set up your own cloud-based DBaaS. In this book, the readers will be introduced to all major components of OpenStack Trove. Following this, the readers will get to understand how to set up Trove in both development and production environments, configuring it, and performing management activities such as backup and restore. Not to mention, it also deals with certain advanced database features, such as replication and clustering. This book takes a more practical approach to learning, as the learning from each chapter will contribute to the reader's ability to build his/her own private cloud-based DBaaS by the time he/she completes reading this book. We hope you will enjoy reading this book and, more importantly, find it useful in your journey towards learning and implementing DBaaS using OpenStack Trove.
What this book covers
Chapter 1, Introducing OpenStack Trove, introduces the concept of Database as a Service and its advantages, followed by a quick introduction to the OpenStack Trove project and its components.
Chapter 2, Setting up Trove with DevStack in a Box, provides a list of prerequisites for the book. This chapter also helps you understand DevStack and its components and then helps you set up Trove with DevStack.
Chapter 3, Installing Trove in an Existing OpenStack Environment, gives you an overview of the different available methods to deploy Trove. It deals a little bit more in detail with installing Trove from source and the Ubuntu repository.
Chapter 4, Preparing the Guest Images, as the name implies, details how to build production-ready images that will be required by Trove.
Chapter 5, Provisioning Database Instances, looks at creating and launching instances using both CLI and GUI.
Chapter 6, Configuring the Trove Instances, introduces you to configuring Trove instances and also how to make configuration changes to multiple Trove instances using configuration groups.
Chapter 7, Database Backup and Restore, introduces the concept of Strategies and provides an overview of how to back up and restore Trove instances.
Chapter 8, Advanced Database Features, deals with advanced features such as replication and clustering in Trove.
What you need for this book
For all the chapters, you will require Ubuntu system and DevStack installed.
Who this book is for
This book is intended for database administrators having experience with RDBMS and NoSQL databases wanting to offer DBaaS (short for Database as a Service) to the end users using OpenStack Trove. It assumes that the readers have experience in database administration with one or more databases, preferably with MySQL
This book will help any reader trying to build their skills in OpenStack Trove. We believe that this is the right kind of opportunity for all those of you who have embarked on a journey to build OpenStack Trove skills and enhance your career in the next generation cloud world
Conventions
In this book, you will find a number of text styles that distinguish between different kinds of information. Here are some examples of these styles and an explanation of their meaning.
Code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles are shown as follows: "We should be able to find the screen name using the screen –ls
command."
A block of code is set as follows:
FLOATING_RANGE=192.168.1.0/27 FIXED_RANGE=10.1.10.0/24 FIXED_NETWORK_SIZE=256 FLAT_INTERFACE=eth0 ADMIN_PASSWORD=adm1npwd DATABASE_PASSWORD=dbr00tpwd RABBIT_PASSWORD=rabb1tpwd SERVICE_PASSWORD=oss3rvice SERVICE_TOKEN=x1y1z1token
Any command-line input or output is written as follows:
export http_proxy=http://172.21.2.17:80 export https_proxy=http://172.21.2.17:80 export no_proxy=localhost,172.22.6.0/24
New terms and important words are shown in bold. Words that you see on the screen, for example, in menus or dialog boxes, appear in the text like this: "Once you are able to log in, navigate to System | System Information."
Note
Warnings or important notes appear in a box like this.
Tip
Tips and tricks appear like this.
Reader feedback
Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or disliked. Reader feedback is important for us as it helps us develop titles that you will really get the most out of.
To send us general feedback, simply e-mail <feedback@packtpub.com>
, and mention the book's title in the subject of your message.
If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide at www.packtpub.com/authors.
Customer support
Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.
Errata
Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you could report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded to our website or added to any list of existing errata under the Errata section of that title.
To view the previously submitted errata, go to https://www.packtpub.com/books/content/support and enter the name of the book in the search field. The required information will appear under the Errata section.
Piracy
Piracy of copyrighted material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works in any form on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.
Please contact us at <copyright@packtpub.com>
with a link to the suspected pirated material.
We appreciate your help in protecting our authors and our ability to bring you valuable content.
Questions
If you have a problem with any aspect of this book, you can contact us at <questions@packtpub.com>
, and we will do our best to address the problem.