The mania around software is at an all-time high. Everyone is a software vendor and it seems no one wants to be in the hardware business anymore. Software is the new, sexy item and people flock to software solutions like teens flock to Taylor Swift — hardware is so last century.
However, I think it’s important to understand that not everything is optimized to be run in software. Some functions are better done in hardware and some are better off being performed in silicon. A good, quality network product that performs at scale is a combination of software, hardware, and often silicon capabilities.
This is one of the reasons why many “software only” solutions are sold as hardware appliances. I interviewed the CEO of one of these software-only solutions last week and he told me that despite the ability to sell as a pure software load, almost 70% of customers buy the appliance. Why? Well, the appliance gives customers a tuned and pre-tested solution that they know works. He confessed that even when specs are given as to what hardware the solution should run, any little change such as memory, CPU, or even a network interface card, can cause the solution to perform poorly.
Software is great when flexibility, interoperability, or programmability is required. For a network vendor, this would include functions like the operating system, scripting capabilities, OpenStack or CloudStack integration, and other higher-level functions. Obviously, any kind of interoperability with another vendor would have to be done at the software layer as well. An example of this is VXLAN or NVGRE integration. Software is also critical in expanding the role of the network to cloud architects, software developers, or DevOps groups. Software gives the network a level of agility and flexibility it’s never had before.
Software is a great at adding bells and whistles to the network but the primary role of a network device is to process packets and move them from one place to another, and this is often best done in silicon. Also, in many environments, the network must be able to operate at line rate, even when heavy loads are applied to it. Any kind of protocol translations, buffering of packets, or low latency requirements are best done in ASICs. I’ve heard the arguments about having these functions done in general-purpose processors, but ASICs (or merchant silicon) will give an order of magnitude better performance at a much better cost.
Now, I may sound like I’m poo-pooing software/virtual solutions and I’m not. Software solutions are ideal when bandwidth and processing requirements are low. This would include home CPE, branch offices, and departmental networks. Software solutions are also ideal for developers to build applications and see how they function behind certain network elements.
As processing speeds and bandwidth increases, so does the dependency on hardware and ASICs. Data centers, metro connections, layer 4-7 appliances and carrier backbones are great examples. If the network needs to do a lot of packet processing at line rate, then the hardware matters.
Go crazy for your software solutions, by all means. It’s the cool new thing. Just remember that when speed and performance matters, hardware and silicon will be there to solve your problems.