Managing multiple open source database technologies in any environment can be a daunting task, especially if you have fewer resources. The scenario could be worse if deployment, monitoring, and other database management tasks are done manually. If this scenario sounds familiar, this blog can help you automate the management of open-source heterogeneous databases using database automation tools like ClusterControl.
For organizations or companies looking for enterprise solutions to manage their open source databases based on different technologies, ClusterControl would be a great option. ClusterControl supports various popular open source database technologies, including MySQL, MongoDB, PostgreSQL, MariaDB, and many more, and is used by large organizations and companies for enterprise applications and complex architectures alike.
Solution architects can efficiently utilize ClusterControl to fit into their existing environment and architecture. ClusterControl is a monolithic application but has multiple components that communicate with cmon. These components work cooperatively to seamlessly manage the different types of open source databases that ClusterControl supports.
Database Vendors Supported by ClusterControl
ClusterControl allows you to deploy or create a database cluster from scratch for various open-source databases ranging from RDBMS to NoSQL. All you have to do is provide server connectivity information such as SSH credentials. ClusterControl will manage all the quirks and tidbits required to run your database servers limited to the supported Linux operating systems. ClusterControl will add the required configuration parameters, help with tuning and users which it deems necessary, especially for backups, redundancy, and high availability for registered (or created) and imported databases.
Most of the database technologies that ClusterControl supports (excluding MongoDB variants and NDB) can be tied up easily with various load balancers or proxies, which is feasibly easy to set up with a few clicks using the ClusterControl UI.
This is how it looks like when ClusterControl is managing multiple database technologies:
ClusterControl can manage thousands of clusters, but this depends on the capacity and resources of your server hosting the ClusterControl software.
MySQL / MariaDB / Percona Server
Oracle MySQL can be deployed or imported in ClusterControl and can be setup as a primary-standby/master-slave replication. By default, once deployed and set up using ClusterControl, your Oracle MySQL replication will use semi-synchronized replication, which offers more consistency than asynchronous replication. This is configured and set as the standard configuration by the ClusterControl monitor – cmon – when deploying a primary standby replication.
MariaDB and Percona Server can be set up as a primary-standby/master-slave replication, and can also be set up using the Galera Replication Plugin to create a synchronous replication. Same as Oracle MySQL, the primary-standby replication setup applies the same as well for a primary-standby replication.
If MariaDB and Percona Server are set up to deploy a Galera cluster, this means that the replication to be setup is deemed as a synchronous replication.
MySQL Cluster (NDB)
ClusterControl also supports the MySQL Cluster (NDB), a distributed database system commonly used in telecommunications or related industries. This technology is built for high availability and widely used in mission-critical enterprise applications that demand high performance levels. ClusterControl deploys NDB with a UI and is reasonably easy to set up from the user standpoint. Still, the monitoring and management features for NDB are limited compared to what is offered for the other database technologies. Although MySQL Cluster (NDB) is a complicated database to manage, once you get used to working with NDB, it can be powerful, especially with its highly available capabilities.
Quoted as the World’s Most Advanced Open Source Relational Database, PostgreSQL can be deployed or imported to ClusterControl and with rich features to offer as well. ClusterControl allows the user to set up a PostgreSQL replication to choose either synchronous or traditional asynchronous replication.
TimescaleDB is an extension to PostgreSQL, which primarily specializes as an open-source relational database for time-series data. Although there are very few differences on how cmon manages TimescaleDB over PostgreSQL, most, if not all, features are the same. It can differ in supported versions, but management and monitoring for both are the same.
MongoDB/Percona Server for MongoDB
ClusterControl supports MongoDB or Percona Server for MongoDB as part of the NoSQL family of databases. Both vendors don’t have differences on how it is being managed and monitored by ClusterControl. All the features that are present to enable NoSQL support by ClusterControl are applicable for both vendors. You can deploy a ReplicaSet or MongoDB Shards with ClusterControl, and it is pretty easy to manage and set up.
Automatic Failover with ClusterControl
ClusterControl is built to manage failures automatically without any further changes from the administrative side. Failures can come in the form of a hardware failure, data corruption, or accidents such as process ID being killed or the data directory physically deleted. ClusterControl is built with automatic recovery modes for Cluster and Node recovery as seen below:
Node recovery means that ClusterControl can recover a database node in case of intermittent failure by monitoring the process and connectivity to the database nodes. The process works similarly to systemd, where it will make sure the MySQL service is started and running unless you intentionally stopped it via ClusterControl UI.
On the other hand, cluster recovery ensures that ClusterControl understands the database topology and follows best practices in performing the recovery. For a database cluster that comes with built-in fault tolerance like Galera Cluster, NDB Cluster and MongoDB Replicaset, the failover process will be performed automatically by the database server via quorum calculation, heartbeat and role switching (if any). ClusterControl monitors the process and makes the necessary adjustments to the visualization like reflecting the changes under Topology view and adjusting the monitoring and management component for the new role e.g, new primary node in a replica set.
If you want to read more about this process, do so here.
Ensuring Your Infrastructure is Secure
Security is also one of the most important aspects of running a database. Whether you are a developer or a DBA, it is your responsibility to safeguard your data and protect it from unauthorized access if you manage databases.
Keeping your databases secure requires attention to detail and an understanding of encryption, both in-transit and at-rest. Some industries are held to high-accountability standards with heftypenalties for failure to comply (think GDPR and the like.)
Rather than letting your teams manually set up their open source databases, with ClusterControl’s point-and-click UI, you can deploy easily and securely to eliminate human error. It is also equipped with advanced security features that add a high-level of protection to your database infrastructure keeping your data secure.
Safeguarding Your Data
ClusterControl offers efficient and user friendly UI to enable SSL, which automates the configuration and setting up your secure transmission layer. For example, in MySQL-database variants, this can be located under the Security tab as shown below:
ClusterControl enables SSL/TLS for client-server communication and communication within replication in a Galera-based replication cluster as shown in the screenshot above. ClusterControl also offers advanced backup features which let you enable encryption at rest as seen in the screenshot below:
Database Automation with ClusterControl
Automation scripts are not required when you have ClusterControl either. For example, in ClusterControl, backups can be created and run on the fly and one can also create a backup policy and schedule a backup so it shall run automatically. Here’s how it works:
Every action triggers a job in the application’s background, and you will be notified when the job is completed. For example, based on the backup that we triggered earlier, we will see that once this job is done, an alarm will be triggered and delivered appropriately via e-mail or via your integrated third-party notification system. This depends on your setup preferences within ClusterControl. In the example screenshot below, we have ClusterControl trigger the alarm as it notifies you of a successful backup that was running via its automated environment mechanism.
ClusterControl makes it efficient and easy to manage large databases and environments using multiple database technologies. Although ClusterControl is monolithic, it offers many advantages and supports different types of architectures as it can run via cloud or containerized environments. Try ClusterControl for free for 30 days today and we will see you in the next one.