MySQL Clusters Is Now Available in Public Beta

November 27, 2020
MySQL Clusters Is Now Available in Public Beta

Update : MySQL Clusters are now available on Scalingo. Check our pricing page if you're looking for MySQL Clusters to add High Availability (HA) to your MySQL database :

We are happy to announce that MySQL clusters are now available in public beta on Scalingo. MySQL clusters add High Availability (HA) to one of the most used open source database in the market.

This big step is following our launch of MySQL Clusters in private beta and it empowers our road to offer high availability to all databases available on Scalingo.

As of now we already served hundreds of clients worldwide with our european PaaS and we are happy to be among the first to offer MySQL Clusters in Public Beta to all our prospects. We will explain in this article how you can choose MySQL High Availability on Scalingo.

But first things first, let's present what are MySQL Clusters and how it works before explaining how you can use it on Scalingo.

What are MySQL Clusters?

In today’s world, data is a priority for every company. If you use MySQL as a database or any other database on the market in your organization you are probably aware that every minute of downtime can have repercussions on your business.

Consequently and as announced in our blog article about MySQL 8, the last major release of MySQL introduced the InnoDB Cluster feature. This feature greatly simplifies and improves the high availability setup of MySQL.

Thanks to this feature and if you use MySQL Clusters database on Scalingo, we ensure a 99.96% availability of your databases.

MySQL InnoDB Cluster in details

As stated on MySQL.com InnoDB offers a high availability solution for your databases.

MySQL InnoDB Cluster consists of:

  • MySQL Servers with Group Replication to replicate data to all members of the cluster while providing fault tolerance, automated failover, and elasticity.
  • MySQL Router to ensure client requests are load balanced and routed to the correct servers in case of any database failures.
  • MySQL Shell to create and administer InnoDB Clusters using the built-in AdminAPI.

What are the advantages of MySQL Clusters for your business?

MySQL Clusters is an excellent solution for your business needs.

Thanks to MySQL Clusters on Scalingo you can reach High Availability for your MySQL database. If you are an e-commerce website or a SaaS product

As you can understand MySQL HA is a great solution to maintain your data and to keep your business growing!

How does MySQL Clusters work on Scalingo?

When you provision a MySQL cluster on Scalingo, three MySQL nodes are started. One of the nodes becomes the primary instance and the two others are the secondaries. All queries go to the primary node.

Whenever a data is inserted, updated or removed from the database, it is immediately replicated on the secondaries. This is achieved using MySQL Group Replication feature.

Thanks to this setup, if the primary node fails, your database will only suffer a short downtime. This downtime lets the remaining instances elect a new primary.

Moreover MySQL also released the “MySQL Router”. This software acts as a lightweight gateway in front of your MySQL instances. Scalingo deploys a couple of them so that there is no single point of failure. There is a master MySQL Router which receives all incoming requests. In case of failing master, the IP address is automatically re-assigned to the second one. This is achieved using our own virtual IP manager, LinK. Hence you never need to change your environment variable!

Here is the network setup for MySQL Clusters:

MySQL High Availability Scalingo

To increase the security of your MySQL cluster, instances are booted in a dedicated private network. Scalingo ensures that all instances are deployed on different servers. For instance, if a maintenance operation impacts one of our servers, it will not impact your database availability.

From the database client perspective (usually your application), there is a single entry point to the cluster. Hence the environment variable injected into the context of your application still contains a single host name:

mysql://<username>:<password>@my-db.mysql.dbs.scalingo.com:12345/<DB name>

When your application queries the MySQL database, it enters the private network through the gateway (a MySQL Router), forwarding the requests to the MySQL primary instance.

Transport Layer Security (TLS) Everywhere

The security of the communication to your application is top priority for us. We added TLS at all level of communications:

  • from the application to the gateway,
  • from the gateway to the primary,
  • from the primary to the secondaries.

Moreover, by default your database is not reachable from outside Scalingo’s network. To make it reachable from anywhere around the world, you first need to force TLS communication to connect to the MySQL cluster.

Ready to try ? Here is How to Take Advantage of MySQL Clusters public beta on Scalingo

As of now MySQL Clusters is only available in public beta. This means that if you want to move your database to MySQL HA on Scalingo, you have to contact our support. No worries though as this is a simple 1 minute chat and our devops expert are here to answer any queries. Moreover our average response time on the support is 5 minutes.

Here is the link to contact our support.

We have opened this beta in private for several months to make sure that we launch the best product for this public beta.

Conclusion

We are very happy to announce the launch of MySQL Clusters in public beta!

Thanks to MySQL Clusters you can achieve higher SLA and leave your data in excellent hands.

Photo by 301+ Kim on Unsplash

Share the article
Étienne Michon
Étienne Michon
Étienne Michon is one of the first employee at Scalingo. With a PhD in computer science Étienne takes care of Research and Development at Scalingo. He also regularly contributes to this blog with technical articles.

Try Scalingo for free

30-day free trial / No credit card required / Hosted in Europe