We have been witnessing that much of the hardware functionality in traditional enterprise IT is increasingly getting absorbed into software. Virtualization is one aspect of this phenomenon. Virtualization of servers and desktops is now a mainstream practice with the efficiency and economics of software clearly delivering value over hardware.
Now we have software taking over networking under the name of software-defined networking, ripe for commercial adoption. Similarly, software-defined storage is also under development and fast moving into commercial phase. Taken together, we have software-defined datacenter, a term much bandied about by various vendors.
The overarching theme here is that software is wielding power over hardware and this is changing the balance of power in all things IT. It is a powershift of sorts in IT and it is shaping the next phase in enterprise IT. Of all things, it is making enterprise IT richer and powerful.
The direct consequence of the software-defined world is that the traditional stack of enterprise IT comprising server, storage, networking, database, middleware, and applications is breaking out from silos to create converged blocks of enterprise functionality. Vendors are coming at it from various directions with proprietary versions like engineered systems, converged infrastructure, open network environment and such others and also open standards based OpenStack. The net effect of it is that IT is moving from being infrastructure-centric to being service-centric. This is the biggest import of the software-defined world.
I often wonder where it all began. Are things like virtualization and cloud the cause or the effect? It takes me to 1984, which is thirty years back, to a prescient statement I didn’t quite understand then as a student of engineering taking one of my first courses in computer science. Here’s the statement (verbatim) from a textbook authored by Andrew Tanenbaum, who is read even today:
“Hardware and software are logically equivalent. Any operation performed by software can also be built directly into the hardware and any instruction executed by the hardware can also be simulated in software. The decision to put certain features in hardware and others in software is based on such factors as cost, speed, reliability and frequency of change. There are no hard and fast rules to the effect that X must go into the hardware and Y must be programmed explicitly. Designers with different goals may, and often do, make different decisions … the boundary between hardware and software is arbitrary and constantly changing. Today’s software is tomorrow’s hardware, and vice versa.”
Welcome to the world of software-defined IT!