Comparing Software Defined Storage with Appliances

Everybody claims to be a software company these days. From the nearly decade old pronouncement by Marc Andressen that “Software Is Eating the World” to the push from Wall Street to produce recurring software revenue; the pressure is on to claim - at least - that you are a software company.

This is obviously problematic for appliance vendors. Try as they might, it does not take much inspection to determine which ones have become truly software defined, and which ones are hoping to use financial engineering to fake it until they get there.

Either way, the ongoing debate about which is better, software defined storage or hardware storage appliances. Is pretty much over.

Like Marc predicted, software won.

We need to start with a clear definition of software defined storage. First of all, it is software. It most likely started as software too - it wasn’t “extracted” from a proprietary hardware platform.

Software defined storage should run on multiple customer servers with direct access storage (DAS) SSDs or disk drives or JBoDs (just a bunch of disks) or JBoF (just a bunch of flash) shelves that are SAS/NVMe attached to the servers.

True software defined storage doesn’t run on a narrow list of pre-approved boxes - that is just hardware defined storage with choices. Software defined storage should run on almost anything. For example a Raspberry Pi. Or IBM Power9 infrastructure. Or anything in-between.

Hardware defined storage (appliances) combine server and storage hardware and software into one packaged solution that a customer buys whole from that vendor. Hardware defined storage is normally deployed by vendor personnel and can take the form of rackable hardware with vendor covers but underneath, is typically two or more servers with SAS or NVMe storage shelves attached. Hardware defined storage vendors provide the internal networking to connect the multiple servers and storage together. The appliance vendor personnel are responsible for servicing the appliance server and storage hardware as well as the storage software.

Let’s break it down further shall we?

Software Defined Hardware Defined/Appliance
Cost Superior. The customer supplies
their own servers & storage
designed for the price/performance
configuration the deployment
calls for.
Worse. The storage vendor supplies
all of the hardware,
software and service for
the solution. Difficult to unbundle.
Performance Dependent on what is provisioned.
True high performance SDS on
fast HW and a fast network
outperforms even the “fast”
appliance vendors. This trend
will only continue. To be sure,
there will be niche cases
- but fast software is the
starting point.
Vendors optimize hardware and
software to get the most
performance and availability
out of the system. Price/Performance
curves are pretty linear.
Scalability Better, as these are deployed
as a storage cluster, they
can often range from 3-4 nodes
to 100s of nodes and anything
in between.
Worse. Appliances typically come
with dual (server) controllers
and can typically scale up
to 4 of these (8 servers)
but generally not much higher.
Fault
tolerance
Good software defined storage
treats failure as a normal event.
Done well, clusters seamlessly
redirect, heal or recover.
Sophisticated erasure-coding
and bitrot protection are software
inventions - and ensure manageability is
prioritized.
Appliances are generally optimized
for providing high levels of
fault tolerance. They are
typically deployed with dual
controllers that quickly failover
when one dies and provide
sophisticated storage protection
policies. Replacing the appliance
is not the same, however, as
replacing COTS hardware.
Automation Software defined storage is
API driven. These APIs typically
support most DevOps and
infrastructure automation and
monitoring packages currently
deployed in a data center.
Appliances generally support a
GUI first and APIs as second-class
citizens, if at all. This limits
automation and application failure
management. It is why most appliances
are only used for archival and not
modern apps.
Configuration
flexibility
Customers deploy these solutions
on whatever performance and
capacity they want (within HCLs).
The configuration flexibility is
nearly infinite - critical when
considering the modern range
(data center to edge).
Appliances typically limit options
to very specific offerings,
generally 3-5 models are available
with DRAM & capacity limits for
each model. Performance is often
limited by the appliance model
selected. Mixing and matching
models is a no-no.
Trialability Want to try out software
defined storage - download it
and get started. If your
provider is truly open source
- what you are playing with
is the same software their
best customers run.
Appliances must be made available
to the customer on their data
center premises or at some other
test facility to be tried out.
Massive friction in the sales process.
Upgradeability Customers can switch out
current servers or storage
with better ones anytime
they want and do
this themselves.
Appliance vendors generally
offer only specific model
upgrades to appliances which
have to be purchased and
are typically done by vendor
personnel.
Ease
of installation
Better. As customers add
server or storage hardware
and deploy software on servers
all the time, they
can deploy software defined
storage on current or new servers
anytime they want.
Appliance vendors personnel are
typically used to deploy the
appliances. This may require
cross scheduling of data center
and vendor service personnel.
Ease
of operations
Software defined storage is
API first, but also supports
GUIs and/or are integrated
into larger solution interfaces
(think MinIO + Cisco).
Application vendors have invested
heavily in their GUI’s and
they are typically fully featured.
A good GUI can be a powerful form
of lock-in with IT.
Feature
update frequency
True software defined storage
releases continuously. Often weekly.
Customers consume those on
demand. This means more features,
better security and less disruption.
Worse. Due to their tight
performance and availability
optimizations, testing must often
be more stringent and take
longer. This lengthens the interval
between feature
updates.
Footprint
density
Density traditionally favored appliances
- but with boxes like this,
that gap has been eliminated.
Appliances control the hardware,
and target the densest storage
shelves available - even if that
requires proprietary hardware.
Hardware
reuseability
Customers can take server and storage
hardware out of the cluster anytime
they wish and deploy this
for other uses. Licensing
terms may or may not need
to be changed. Server maintenance
options are at the discretion
of the customer and their
server vendor.
Other than using older appliances
as slower storage (aka boat anchors)
there’s not much that can be done
with it. However, to continue
to use appliances as (slower)
storage , vendor maintenance contracts
will need to be maintained.
Complexity Good software defined storage
abstracts complexity. Great software
defined storage eliminates it.
A rare bright spot for appliance
vendors, the lack of flexibility
drives homogeneity and therefore
some semblance of simplicity.
It is why IT can be fiercely loyal
to their vendors.

Ultimately, there is a place for both solutions in the market today but the world is changing.

It burns a lot of cash to run a hardware appliance business. It ties up capital, requires large field sales and field sales support. Appliances are not built for the world we live in today. Further, as we have most famously pointed out - you can’t containerize an appliance. Given that Kubernetes is the new normal - it is going to be increasingly difficult to make a living slinging steel.

That is why everyone is eager to say they are a “software-company” these days. Truth is, if their website is adorned with boxes showcasing their logo - it is not a software company. When they tweet a win and show some boxes, that is what they sold - not software. Just because for 45 mins every three months they say words like “revenue from software subscriptions” doesn’t mean they are a software company - it means they are on their quarterly analyst call.

So think about what you really want to achieve. If you want high-performance, Kubernetes-native object storage - choose software. If you want modern application support in addition to archival - choose software. If you want flexibility to design to your use case - choose software.

Don’t, however, choose hardware masquerading as software.