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 task is done manually. If this sound scenario sounds familiar, this blog can help you automate open source heterogeneous databases management using database automation tools like ClusterControl.
For organizations or companies looking for enterprise solutions to manage their open source database of 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 used by large organizations and companies for enterprise applications and complex architectures.
Solutions 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 open source databases right from RDBMS to NoSQL databases. All you have to do is provide server connectivity information such as SSH credentials. ClusterControl will manage all the quirks and tidbits to run your database servers limited to the supported Linux operating systems.ClusterControl will add the required configuration parameters, 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 (excluding MongoDB variants and NDB) that ClusterControl supports can be tied up easily with various load balancers or proxies, which is feasibly easy to set up with a few clicks using ClusterControl UI.
This is how it looks like for a ClusterControl with multiple database technologies being managed,
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
The 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-sync replication, which offers more consistency than asynchronous replication. This is configured and set as the standard configuration by 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 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, then 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 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.
PostgreSQL/TimescaleDB
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 specialize 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 manage a NoSQL support by ClusterControlares applicable for both vendors. You can deploy a ReplicaSet or MongoDB Shards with ClusterControl, and it is pretty easy to manage and set up through ClusterControl.
Automatic Failover with ClusterControl
ClusterControl is built to manage failures automatically without any further changes from the administrative side. Failures can come hardware failure, data corruption, or accidents such as process ID beings killed or the data directory physically deleted, ClusterControl is built with from 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 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 of this, you can read more about how ClusterControl performs automatic database recovery and failover.
Ensuring a Secure Infrastructure
Security is 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 the 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.
Rather than letting your teams manually set up their open source databases, With ClusterControl 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 SS,L 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 the 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 feature which lets you enable encryption at rest as the screenshot below.

Database Automation with ClusterControl
Automation scripts are not required when you have ClusterContro!For example, in ClusterControl, backups can be created and run on the fly and 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 theapplication’s backgroundn and you will be notified when the job is For example, based on the backup that we triggered earlier. Once this job is done, an alarm is triggered and delivered appropriately via e-mail or your integrated third party notification system. This depends on your setup preferences with ClusterControl. In the example screenshot below, we have ClusterControl triggers the alarm as it notifies you of a successful backup that was running via its automated environment mechanism.

Conclusion
ClusterControl is efficiently feasible to manage large databases and environments using multiple database technologies. Although ClusterControl is monolithic, it offersmanyf advantages and supports different types of architectures as it can run via cloud or containerized environments.