Database as a Service


About DBaaS

Database as a Service - is a service on the user portal allowing users to easily deploy private database instances. Comparing to manual deployment of databases using compute resources, this approach has a number of benefits:

  • A new database instance can be deployed within minutes, not hours. No manual software download and configuration is required.
  • The process is repeatable and can be fully UI or API driven. No any additional scripting is required.
  • Multiple database types are available, including most popular open source databases - mysql, couchdb, redis, and many others.
  • There is no need to manage compute or operating system as it is hidden from the user entirely.

Overview

The process of new database instance creation consists of:

  • Choosing appropriate datastore (which is a type of the database desirable) and its version.
  • Choosing appropriate compute instance. Size and a power of the compute instance depends on the requirements of the database - the larger the database is, and higher performance is required, more resources you’ll need to assign to that instance. Consider that the instance will not run anything but the database engine and stripped version of the operating system.
  • Choosing the volume size and tier. Volume is used to store the database files. The size is defined by the size of databases you plan to store on that instance, while the tier (on deployments where multiple tiers are defined) defines what kind of IO performance the database will receive

The compute instance used by the databases does not show in the regular “Instances” section of the portal. Same is true for the volumes used by those instances to store the databases - they do not show in the “Volumes” section. However, they are accounted as compute or storage resources, and will be included to the account invoices with the regular compute and storage pricing. Backups, when created, are stored in the object storage. The size of these backups will also be charged to the user account at object storage pricing.

Supported features

The service supports multiple datastores types. However, not all of them support the same set of management operations. The table below summarizes set of operations available to the user, for specific datastores and their versions.

DBaaS Datastore supported features
Datastore Available
versions
Create
datastore
Create
database
Manage
users
Manage
floating IP
Backup/
restore
mysql 5.7 Yes Yes Yes Yes Yes
postgresql 9.4; 9.5, 9.6 Yes Yes Yes Yes Yes
cassandra 2.11 Yes Yes Yes Yes Yes
pxc 5.6 Yes Yes Yes Yes No
percona 5.6; 5.7 Yes Yes Yes Yes Yes

Datastore instance creation

To create a new Datastore instance, expand the "Database" section in the left-hand navigation menu, and click on "Instances". Then, click "Create database instance" button.

Now, do the following:

  • Choose a unique name for your datastore instance.
  • Choose datastore type (for example, mysql) and version (for example, 5.7).
  • Select a flavor to run the instance. If the flavor chosen is too small and does not have enough resources, the database creation may fail, or performance of the created database can be unacceptably slow. If in doubt, consult the documentation of appropriate database about minimum resources requirements.
  • Choose the volume size and tier to attach to the datastore instance. This volume will host all database files.
  • Select the network(s) to connect that instance to. It can he the same network where your compute instances running applications that will connect to the database are running. Or, you can a use a different network and connect them with a router. If you need to provide external access to the database, you will be able to attach a floating IP to the instance as soon as the instance is created.
  • Click “Create”. Note that datastore instance creation consists of building a compute instance, and then deploying a datastore in it. Therefore, creating a datastore instance can take significantly more time than creating a regular compute instance.

Note that there is no guarantee that the execution of the script mentioned above will begin when instance configuration is fully completed (services are up, networking is operational, etc) - so, if your script depends on these condition, make sure that verification and waiting for these conditions is a part of the script, too.

Other available operations

After the instance has been created, at any time you can:

  • Delete the instance. Note the instance deletion removes all instance data. The instance backups will not be deleted.
  • Create or delete a new database within a datastore instance (not all datastore types support that functionality - see compatibility matrix for details).
  • Create/remove a user who can access the database (not all datastore types support that functionality - see compatibility matrix for details).
  • Assign floating IP to a datastore instance.
  • Create an instance backup and create new instance from a backup (not all datastore types support that functionality - see compatibility matrix for details).