Severalnines Blog
The automation and management blog for open source databases

New NinesControl Features Simplify Running MySQL & MongoDB in the Cloud

Krzysztof Ksiazek
Posted in:

We were thrilled to announce the latest version of NinesControl early this week. Let’s have a closer look at some of the new features that were introduced.

Web console for accessing SSH, SQL and MongoDB command line

It is now possible to have SSH access from the NinesControl interface to any of your database servers, via a web based SSH proxy.

WebSSH and WebSQL - you can easily access your database’s shell and MySQL CLI directly from the NinesControl web page:

Just check the drop down menu for any of the database nodes, and you’ll see both WebSSH and WebSQL. If you are running MongoDB, you will have a MongoDB shell. Clicking on them opens a new window, with a connection to your database. It can be either access to the command line:

NinesControl WebSSH interface
NinesControl WebSSH interface

or access to the MySQL CLI:

NinesControl SQL CLI
NinesControl SQL CLI

Or access to the MongoDB CLI:

NinesControl MongoDB shell
NinesControl MongoDB shell

We use dedicated users to make such access possible - for the shell, it is ‘ninescontrol’ user and for the MySQL CLI - ‘ninescontroldb@localhost’. For MongoDB, it is the admin user you define when creating the MongoDB cluster. Make sure you don’t make changes to those users if you want to have this method of access available.

Add node to the cluster

With the new release of NinesControl, you have the tool to scale your cluster. If you ever find yourself in a position where you need one more database node to handle the load, you can easily add it through the “Add Node” action:

Adding a node to a cluster in NinesControl
Adding a node to a cluster in NinesControl

You will be presented with a screen where you need to pick the size of the new node:

Adding a node to a cluster in NinesControl
Adding a node to a cluster in NinesControl

After you click “Add Node”, the deployment process begins:

Adding a node to a cluster in NinesControl
Adding a node to a cluster in NinesControl

After a while node should be up and running.

Nodes running in NinesControl
Nodes running in NinesControl

Of course, whenever you feel like you don’t utilize all of your nodes, you can remove some of them:

Removing a node in ClusterControl
Removing a node in ClusterControl

While scaling your cluster up and down, please keep in mind that it is recommended to have odd number of nodes in both Galera and MongoDB clusters. You also should not reduce the number of nodes below three - this is a requirement if you want your cluster to be fault-tolerant.

Disable autorecovery for the cluster

NinesControl works in the background to make sure your cluster is up and running and your application can reach it and issue queries. Failed nodes are automatically recovered and restarted. Still, it may happen that you don’t want NinesControl to bring a node back up. It could be that you are performing some maintenance which requires the database instance to stay down. Maybe you want to restore an external binary backup and then bootstrap the rest of the cluster from that node? Right now it is extremely easy to disable automated recovery - all you need to do is to click on the Autorecovery switch in the UI:

Disabling Auto Recovery in NinesControl
Disabling Auto Recovery in NinesControl

It will change to:

Auto Recovery Disabled in NinesControl
Auto Recovery Disabled in NinesControl

Right now NinesControl will not attempt to restore nodes which failed.

Google Compute Engine Support

Last but definitely not least, NinesControl now also supports Google Compute Engine. You can learn more on how to setup access credentials and deploy MySQL or MongoDB on this new cloud provider.

We hope that this blog post helped you better understand the new features available in NinesControl. Please give them a try and let us know what you think.