Our series of articles about various services starts with the world’s most widely used relational database MySQL, which can be considered to be the most sensitive in terms of fine-tuning its performance and operational security. At Zerops, we decided to use MariaDB, which is a MySQL Fork under a GNU GPL license (https://en.wikipedia.org/wiki/MariaDB). We will look at the basic differences in running MariaDB in Zerops compared to traditional cloud providers. At our parent company, vshosting~, we run thousands of managed MariaDB installations. The mission of Zerops is to offer users a service that is extremely easy to manage, automatable to the highest possible degree, suitable both for dev and for extensive production and one that will not overwhelm users with multitudes of configuration options.
Maximum Reliability Only in High Availability
High availability only
The MariaDB service in Zerops will be available only in high-availability mode, which is in a synchronously replicated, at least three-node Galera cluster, allowing us to perform a number of operations with no downtime (such as minor updates) and achieve better scaling of read queries (SELECT). In particular, Galera allows maximum availability, where users will not notice downtime of any nodes in the cluster. The Zerops infrastructure ensures that every node of the Galera Cluster will run in a different part of the physical Zerops infrastructure (on a different zNode).
The Galera Cluster is more sensitive in terms of handling from the application side and more susceptible to certain states, which is a result of it being a synchronously replicated cluster. For example, the application should adhere to read-write splitting. In order to maintain simplicity and for Galera to be compatible with applications that use regular MySQL and to prevent the need for modifications in the client application, the MariaDB Zerops Service includes a transparent application proxy for the client (https://mariadb.com/products/technology/maxscale) to ensure the secure operation of the database.
Intelligent backup with a time-machine feature (planned feature)
Zerops performs continuous backup and allows clients to “turn back time” by up to several weeks. Zerops offers developers the ability to restore the service at a specified time and overwrite the current service (the service gets the same name, traffic is routed to it from the applications from the moment of restoration), or to a new service created for the purpose of restoration. This is a useful tool for developers who need to view content e.g. from yesterday at 2:57 PM without impacting production, or if they want to restore the database condition to a specific time.
Real-time notifications and health monitoring
Zerops will notify users about certain events (automatic scaling, updates, etc.) based on selected notification levels and will also enable notifications of major events such as a deteriorated status of the service due to suboptimal and slow queries. If Zerops cannot handle such situations on its own, it will contact developers (via email, Slack) and report queries with incorrect structure. Therefore, users will immediately know if any action is required to improve the availability of the service.
Maximum simplicity and usability
Supported versions, automatic minor updates & major upgrades
Zerops will support the current stable series of MariaDB, that is 10.2.x and newer branches in the future. Zerops will ensure that minor updates do not cause any downtime or affect operations. This eliminates the need of finding suitable time windows for performing updates. Every minor update will be thoroughly tested by our administrators before it is performed automatically in Zerops. Major version upgrades, where users would only need to enter a single command to perform the ugprade and everything would be done automatically in Zerops style, will not be supported in the beggining; however, we assume that when Zerops is launched, the last major branch of MariaDB will be supported. Fully automated major version upgrades.
Intelligent automatic customization based on application behaviour
Zerops automatically adjusts configuration parameters based on the nature of operation, ratios and complexity of queries, the volume of data in the database, etc. This is why Zerops is the only cloud provider who can always ensure optimum MySQL configuration.
Scaling based on relevant metrics
Developers generally do not want to think about which metrics should be used for scaling services and what should the scope be – whether based on load, number of queries, size of database storage, etc. Zerops will design a suitable scaling metric (user-adjustable) so that the database is always reliable and there are no performance fluctuations.
Single-command service setup without the need to know the performance
As a user you may sometimes be unsure whether you need your service to perform according to x5.large or something else. As a user, i.e. a developer in the case of Zerops, you want a functional MySQL service without worrying whether the performance is sufficient or whether you are paying too much for the service.
Using one simple command, users of the MariaDB Zerops Service can create a service that starts with minimum performance and – thanks to intelligent and rapid scaling – it immediately boosts its performance and service parameters to ensure its seamless operation.
Service duplication (planned feature)
As a developer, you may need to duplicate an entire MariaDB service, e.g. for testing purposes or to test a more complex operation “in sandbox”. Zerops is capable of instant duplication of a service including data into another MariaDB service.
Free vs. Premium
Zerops will allow the operation of a MariaDB Zerops Service for full-featured applications free of charge. The free mode will have limited performance and will not offer some advanced features such as notifications, advanced backup etc. The basic required components such as intelligent settings optimisation, autoscaling, autoupdates and basic backup will all be available even in free mode, for an unlimited period of time.