MariaDB’s Latest Release Illustrates the New Demand to Run Databases in Containers
The interest in how databases are used with container technologies has become increasingly apparent. For example, Couchbase Server can run under Docker using Triton, Joyent’s Docker container service. And now MariaDB, the relational database, has a new release which includes support for Docker containers.
“Adoption of Docker is growing as is adoption of the automation tools. … Within the enterprise, so much of it is the day-to-day,”said Roger Levy, vice president of product management. “It’s deploying yet another database, it’s upgrading, reconfiguring. These are not the glamour areas, but it’s where customers spend a lot of time and effort. We really look to provide them with the support and ease of use with MariaDB Enterprise.”
Among the company’s summer release announcements:
- The ability to run Docker-based MariaDB instances, with a private repository for a tested and certified Docker version of MariaDB Enterprise.
- A Chef cookbook of recipes for provisioning, configuring, deploying MariaDB via Chef. It plans to bring out a Puppet cookbook later on.
- The addition of MariaDB Enterprise to the Microsoft Azure Cloud, which will formally launch in its Azure marketplace in September. Offerings are planned with Google and AWS later on.
- It previously introduced optimized binaries for servers, which the company said provided a 15 to 20 percent performance boost. It has done the same thing for its cluster capabilities, which use Galera Cluster technology. The optimized cluster binaries produce a similar 15-to-20 percent performance improvement, he said.
- A database scalability and high availability framework bundled in MaxScale, its previously announced proxy system that allows for scale rollout without affecting end users. It has added failure detection which can initiate recovery, additional security with an optional client-side SSL, the ability to run MaxScale as an en-route if you don’t want to share route passwords. It plans to build out MaxScale capabilities further in the future connecting MariaDB to other parts of the platform, such as the ability to replicate between MariaDB and a Hadoop cluster.
- Ability to launch email notifications and external scripts via MaxScale event triggers.
- MaxScale binlog server extended to support MariaDB 10 master and slaves.
- Enhanced capabilities with its connectors including failover to the JDBC connector. Amazon will be recommending the MariaDB connectors in Amazon’s new Aurora database service, Levy said.
MariaDB is the community-developed branch of the MySQL database, which Oracle acquired with its $7.4 billion buyout of Sun Microsystems in 2010.
Some members of the MySQL team, including David Axmark, Michael ‘Monty’ Widenius and Kaj Arnö, however, left Oracle to form their own MySQL support company called SkySQL, which changed its name to MariaDB Corp. last fall.
The new company, headquartered in Finland, has raised $31.9 million in venture funding, including a $20m funding round from a consortium led by Intel in 2013 and a $3.4 million Series B round in February.
Its commercial product, MariaDB Enterprise, using Red Hat’s model with Linux, is offered as a subscription service and is made up of server binaries based on the open source MariaDB community server.
Levy calls MariaDB the new “M” in the LAMP stack. It teamed up with Canonical and IBM on a new version called Turbo LAMP aimed at e-commerce. It is now the default database in in Red Hat and SUSE architectures. Its customers include Google, Wikipedia, Home Depot, Disney and others.
Earlier this year, Google added encryption into MariaDB to help shut out SQL injection attacks. For the spring release, MariaDB was expanded to run on Red Hat Enterprise Linux 7.1, SUSE Enterprise Linux Server 12, Ubuntu 14.04 and binaries for IBM’s POWER 8 architecture.
It also introduced MaxScale, an open source proxy that allows databases and apps to be decoupled, meaning admin processes can run without affecting apps, and apps modified without affecting underlying databases. It provides capabilities such as load balancing, sharding and firewall protection without the need to modify existing applications.
MariaDB also is included in Pivotal Cloud Foundry, Rackspace and other cloud stacks. Gartner has predicted that by 2018, more than 70 percent of new in-house applications will be developed on an open source database management system.
The myriad of databases in the market tackle different types of data: graphs, JSON files, key-value stores, social graphs and others. Antony Falco, CEO and co-founder of Orchestrate, previously told The New Stack he believes there are 35 to 40 databases in production that didn’t exist 10 years ago.
Falco said investors have predicted the consolidation in the market that has been taking place — the buyout of Orchestrate by CenturyLink Cloud and the acquisition of Foundation DB, for instance — as inevitable.
Levy sees a trend in the market to create a multi-purpose database. At its heart, he says, MariaDB is a transational database, though it offers an engine that handles graph data and supports an interface to Cassandra, which is a column store. It will be adding new capabilities such as JSON and key-value store in the future, and plans new tie-ups with Google and AWS later on, he said.
“It’s easier for a relational and transactional database, which already knows how to maintain all of the consistency and integrity of data to add capabilities like key-value and others, than for other types of databases to add the so-called ACID capabilities (atomicity, consistency, isolation, durability),” he said.
He said it’s common to hear within the industry that relational databases can’t scale.
“Yet some of our customers like Google, Wikipedia and Booking.com are running some of the biggest databases on the planet. … We’ve proven that relational databases can scale to quite dramatic lengths.”
ClusterHQ is definitely seeing demand from enterprises running databases in containers, so this is a good strategy for MariaDB, according to Michael Ferranti, vice president of marketing at ClusterHQ, parent company of data volume manager and cluster management tool Flocker.
“It is great to see both the uptake of MariaDB and their focus on providing an official Docker image to make it easier to run MariaDB in a container,” he said.
“Since Flocker works with any database that runs on Linux, it is easy now to run MariaDB in a container and have it be portable between servers, something that is a requirement for most operations teams running databases in production.”
In a piece at InfoQ, Luke Marsden, CTO and founder at ClusterHQ, talked about four advantages to running a database in a container, including:
- Dev/Prod Parity: You’re more likely to find bugs early by creating parity between the development and production environments, suggesting that all parts of an application, including stateful services like databases, should be tested locally, just as they will run in production.
- Avoiding vendor lock-in: Before containers, running on multiple clouds was tricky, but Docker’s write-once, run-anywhere mantra promises a way to avoid vendor lock-in. Databases, however, work best when located close to their app servers, so the ability to move stateless app servers between cloud hosts is of limited value. But if a full data center migration is necessary, an entire containerized application can be moved between data centers.
- Reduced management surface for ops: If standardizing on the container format is only for stateless application components, then the benefits of standardization are reduced, since there are still two systems to manage: stateless and stateful. Providing a narrow and well-defined surface area between all application components, both stateful and stateless, as well as the underlying infrastructure, can reduce the adversarial relationship between developers and operations.
- Bare-metal performance without sacrificing multi-tenancy: As more businesses rely on software to deliver services, they need to optimize their infrastructure cost and at the same time increase performance. Running databases in containers helps put the focus back on revenue.
The biggest downside, Ferranti said, is that without proper tooling, databases running in containers break if a container is ever moved to a different server.
“With Docker, when you move a container between servers, something that is often called scheduling or rescheduling, the data volume that the database was accessing stays on the original server. When a database starts up without its data, the application is essentially broken,” he said, pointing out that with Flocker, the data volume moves with the container.
Docker-hosting platform Tutum built one of the first MariaDB container images in April 2014. Tutum has its containerized MariaDB open source repository available in GitHub, and it’s also publicly available in the DockerHub, where it has been downloaded more than 17,000 times, according to Tutum CEO and co-founder Borja Burgos Galindo.
By maintaining its own Docker image, MariaDB will make installation and deployment of the database easier, he said, adding that while there continue to be issues with volume and data management when using containers, running a containerized DB is great for development and testing purposes.
Docker, IBM, Pivotal and Red Hat are sponsors of The New Stack.
Feature image: “Lego Store!” by Michelle Carl is licensed under CC BY-ND 2.0.