DB-Ex

01 · High Availability

High availability

Databases come in so many shapes and forms that it may not be clear how to design an environment that matches your expectations and stays stable in production.

Even if we stick to MySQL, we are still talking about several different solutions and flavours. Are you going to use MariaDB or MySQL? Maybe Percona Server for MySQL? What is the difference? Asynchronous or semisynchronous replication? What would work better: replication or Galera Cluster? How does it compare to InnoDB Cluster? Can MySQL NDB Cluster be used for something useful?

Then you may want to consider load balancers. Which one? ProxySQL? MaxScale? MySQL Router? What are the pros and cons of them all? Have you considered scaling? Do you need to shard your database? If so, how are you going to do that? Will you use query rules in ProxySQL, or maybe Vitess?

How are you going to build the cache layer? Redis Sentinel or Redis Cluster? Maybe you would use ProxySQL instead? Or maybe just rely on a web-layer cache and not implement caching on the database side?

Designing a proper architecture requires you to answer more than one question. Bad design may not be visible from the start; issues may surface later, when your environment is under load. There may not be much time to figure out the fix and implement it. Having someone point you in a good direction may save you time and significant money later.

If you are interested in help designing the proper architecture for your solution, reach out and we will do our best to help you solve your problems and answer your questions so that the environment you build matches your expectations.