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.