Yes, we are hiring!
And we are hiring for quite an interesting position: As a senior developer of MariaDB Server, with merging community code contributions as a main task.
This is a very demanding job. The MariaDB Server code base is large and complex, and being a good C / C++ developer is only the starting point for being able to contribute to it. You also need to understand databases, and the existing codebase architecture.
The existing codebase is demanding. Depending on how you look at it, it’s either very efficient (if you know it well), or it has many dependencies (if you don’t).
In this blog we are going to demonstrate how to replicate a MariaDB database that runs in a Docker container (let’s call it primary) to one or more MariaDB servers that run in a Docker container (let’s call them replicas) using binary logging, a method that creates binary log files and an index that contains the record of all changes to the database (both data and structure). You can find an overview of how replication works here and you can find how to setup replication here. An example can be found in this GitHub script.
Please join MariaDB Foundation in giving a bit of financial recognition to Olivier Bertrand, the developer behind the CONNECT Storage Engine! We will match your contribution up to a total of 5.000 €, on top of the 5.000 € that we have already allocated 5000 € for Olivier Bertrand’s Lifetime MariaDB Contribution Award.
Olivier Bertrand is an unsung hero. He is the original contributor and still the main developer behind the CONNECT Storage Engine, which – much as its descriptive name indicates – enables MariaDB Server users to connect to a variety of databases other than MariaDB Server itself.
MariaDB Server Documentation is now released as a single PDF file, browsable offline. Download the over 3000 pages and check it out!
Some things take long! In 2014, there was a request on Jira for delivering the MariaDB Server Knowledgebase in one PDF file. That’s over seven years ago. MDEV-6881, you see it in the number already – we are now at well beyond MDEV-28000.
The request has always been in the back of our heads. What triggered it now was playing around with Python and the relative ease of transforming one format to another, including PDF.
In the previous blog we created a stateless application, deployed with K8s resource Deployment, which allows one to replicate the application, but where data is lost when Pods are restarted, meaning there were no data consistency. In the same blog we used PersistentVolumeClaim for dynamic provisioning of PersistentVolume, but we used Deployment, meant for stateless application, and this way is *not recommended* for statefulset application where each replica should have its own persistent volume. The proper way to achieve that is through the Statefulset resource and this post we will cover that.
In K8s one can create a stateful application, an application like a database, which needs to save data to persistent disk storage for use by the server/clients/other applications, to keep track of its state and to be able to replicate and be used in distributed systems.
In the previous blog, MariaDB & K8s: Create a Secret and use it in MariaDB deployment, we used the Secrets resource to hide confidential root user data, and in the blog before that in the series, MariaDB & K8s: Communication between containers/Deployments, we created 2 containers (namely MariaDB and phpmyadmin) in a Pod. That kind of deployment didn’t have any persistent volumes.
In this blog we are going to create separate Deployments for MariaDB and WordPress applications as well as a Service for both in order to connect them. Additionally we will create Volume in a Pods of a MariaDB Deployment.
In the previous blog we created a stateless application, deployed it with K8s resource Deployment, and exposed the root password, which, regarding security, is of course not recommended. K8s allows one to hide confidential data using specific K8s resources.
Let’s see how to use Secrets in K8s.
In order to save confidential data one can use a K8s resource called Secret.
One can create Secret from the CLI by running kubectl create secret.
Here we will use two methods to create the secret.
Seppo Jaakola is going to present the topic “MariaDB Galera Cluster Security” at the Security MariaDB Server Fest (Wed 6 April 2022).
I’m currently watching his talk. Let me share with you some details. Seppo is not talking about native MariaDB security features that are by default supported by Galera, but due to the distributed cluster topology additional security related measures are needed. He talks about cluster topology, cluster communication security, Galera enhancement Data at REST encryption and the new 10.9 feature Node screening by IP Allowlist.
Do you have questions to ask Seppo?