It’s a bold supplier that says it is set to be the “undisputed leader” in an emerging and critical area of datacentre operations.
But that’s one claim MinIO makes for its status as a provider of private cloud object storage for Kubernetes.
“We out-innovate the competition across multiple dimensions,” said CMO Jonathan Symonds. “We are positioned to be disproportionate winners in the hybrid cloud storage market.”
It’s a confident claim – made recently during the virtual edition of the IT Press Tour –and one we can’t adjudicate on. But this is how they back it up.
MinIO’s confidence stems from the fact that it is a relatively new company and product in the market (first release in 2016). So it has first-mover advantage to some extent and is built to suit the newest ways of working in the datacentre, which means containerisation.
MinIO is S3-compatible object storage built to support Kubernetes and to provide storage for the containers it orchestrates. And it is built in Kubernetes and is orchestratable by it, so conforms to the ethos of portability, scaling, creation and teardown that containerisation brings.
MinIO also makes a point of its emphasis on storage performance. “Everything we have done, we looked through the lens of performance – the erasure coding, the encryption – are all inline and focused on performance,” said Symonds.
“We’ve always seen things through the lens of Kubernetes – containerisation, orchestration, micro-services and restful APIs.”
Founder and CEO AB Periasamy set out how the company sees its offer contrasting sharply with what it calls “legacy object storage”. That’s when Kubernetes storage is provisioned in hardware appliances and using CSI (container storage interface), for example to talk to the container orchestrator.
But Periasamy said: “This is not what the Kubernetes community is looking for. When they ask for storage, they are looking at it from a data management point of view and at storage managed or provisioned inside Kubernetes.
“When you bring in object storage appliances and adapters, that’s not what the cloud storage/Kubernetes community is expecting.”
By contrast, MinIO sets out to provide storage in keeping with what the Kubernetes world expects, which means object storage provisioned as containers. “That’s no different from a Cassandra database or a Kafka messaging queue – object storage that’s seen as a data store,” said Periasamy.
“At the beginning, MinIO was containerised, but I was asking the communities, it’s such a small binary, 40MB, why would you put it in a container? It would be so much simpler to run it on a machine with a bunch of drives,” he added.
“But what they are asking for is that once MinIO is containerised, they can provision their application, along with object storage on pretty much any environment.”
MinIO’s executives point to Pure’s purchase of Portworx and the launch of Pure-as-a-service as evidence of the move towards containerisation and away from hardware appliances.
Meanwhile, Dell EMC has a MinIO-like Kubernetes storage product in development, according to Symonds, who said: “If you don’t go down the Kubernetes route, you’re going to be stuck doing some legacy workloads, and those companies don’t want to be there.”
A further source of cap feathers arrived this time last year, when VMware made MinIO a launch partner in its vSAN Data Persistence platform that connects Kubernetes operators from VMware partners with VMware vSphere.
Under the bonnet, MinIO is software-defined object storage that operates on commodity servers with locally attached HDD or flash/NVMe drives. It writes data and metadata together and so does away with the need for a metadata database. It performs all functions (erasure coding, bitrot check, encryption) as inline operations.
MinIO runs as lightweight containers managed by external orchestration services such as Kubernetes. It can be managed by the Kubectl CLI, Kubernetes Operator CRDs, or a management console, with self-service automation available to developers.
MinIO doesn’t use CSI, but instead communicates with Kubernetes via APIs, using Kubernetes to provision storage or via the MinIO Operator.
This is the favoured method and allows developers to manage storage using the language of Kubernetes. Operators are the way Kubernetes relates to other applications that need to be controlled, and can make use of automation functionality to do that, such as scaling, handling failures, and so on.