Defining Software Defined Data Centers
After VMware touting out the new term “software defined data center,” I suddenly saw many vendors claiming they support software defined data center at VMworld. Days ago I read a news about Joe Tucci, the CEO of VMware’s parent company EMC, explaining what “software defined data center” is.
The “software defined data center” is a big step forward from the old term “software driven data center” that VMware used at VMworld Europe 2011 even though there was single word difference. I believe it’s inspired by another term from networking world, “software defined networking.” In some way, the new term led to VMware’s acquiring Nicira in July.
Time to learn how to "Google" and manage your VMware and clouds in a fast and secureHTML5 App
“Software Defined” as New Naming Pattern
After “software defined data center” and “software defined networking,” I also found “software defined storage,” which is a natural extension of “Software Defined” pattern. Moving forward, all vendors can simply add that prefix to their products or technologies, for example, “software defined converged infrastructure.” You can also make it in a smaller scope, say, “software defined firewall.”
Anyway, all these tweaks on terminology is good for marketing, but not much so for understanding technology itself. We all need to think a bit more about what software defined data center is, and hopefully use it consistently.
I think a common definition is important in that when we use a term, we know we’re referring to the same thing. While I don’t know if I can really define the “software defined data center” that we all agree upon, I can share my personal perspective.
“Define” is the Keyword
As IT professionals, we all know the software and data centers. But when they are linked together by the word “define,” it becomes interesting. To understand it better, it’s worthwhile to look up the word “define.” Per an online dictionary, it means “to fix or lay down definitely; specify distinctly: to define one’s responsibilities.” In this context, it’s exchangeable with its synonym “specify.” If your marketing team needs a new term to show innovation, it can be “software specified data centers.”
So, the “software defined data center” is really data centers whose configuration and operation are specified by software. It also refers to technologies that enable this new vision of management and operation model for future data centers.
Virtualization and server virtualization are not equal to software defined data center, but they are key enabling technology. You can think of server virtualization as software defined compute.
Scope of Data Centers to Be Defined
In theory, all parts of data centers should be definable including, but not limited to, the 3 essentials: server, storage, and networking. Going beyond these, the cooling system, uninterruptible power supply (UPS), robots that swap hard disks (I am sure I have missed some others here) can and should be included too.
As long as a device used in a data center is connected with management APIs/CLIs, it can be defined with software. Note that the connectivity is not necessarily typical networking connection with Ethernet, serial communication (RS-232 , RS-422 , RS-485), Wi-Fi, and even 3G/4G wireless network work too.
Moving above the hardware devices are the typical software stacks, including hypervisors, operating system, middleware, and applications. These execution software components can and will be provisioned and defined by management software as well. Strictly speaking, virtualization is not a must have. But because it provides lifecycle manageability for the stacks above, it’s a core enabling technology.
In terms of complexity, defining software may seem easier but really harder than hardware, therefore represent higher value in the value chain.
Software That Defines Data Centers
There are two important layers of software that help define data centers:
- Management APIs/CLIs. From the hardware side, all devices must provide full management APIs/CLIs. These management APIs/CLIs can retrieve and change device configurations. From execution software side, all the running environment on top of which an execution software to be defined must have management APIs. For example, an application server is a running environment for Web applications, therefore its management APIs must be there if Web applications to be defined there.
- Management software including automation which is the key to the all software defined data center implementation. There is no single way to automation, but mostly involving policy, workflow, designing tools.
For the management software, it can be in three forms:
- Configurations: including properties, profiles, policies, templates, and etc. To make it work, there must be a software engine that can interpret these configurations and execute them accordingly.
- Scripts (DSLs): mostly batch files of command lines, scripts using scripting languages like PowerShell, Python, Ruby, etc. The best use case is for small and sequential executions of multi-step tasks.
- Applications: full-fledged applications in features that are larger in scope than scripts and take on comprehensive tasks.
There is no clear cut in real software projects. You see these forms are mixed in most software defined data centers, especially the large data centers. Nothing correct or wrong there, but it’s important to find a pragmatic way that works for your data center.
I expect new generation of automation software coming out soon that help manage all these together. By then, you can use one tool to whatever best for your data centers.
Software Defined Data Center Ecosystem
I think all the hardware vendors that supply hardware for data centers are potentially in the ecosystem. The key is whether comprehensive management APIs/CLIs are provided by the hardware component. Same thing is for the execution software vendors that develop hypervisor, operating system, middleware. The bigger players on software are the management software vendors who build automation software on top of all the management APIs.
On the customer side, the software defined data centers can be for every data center. But I think the sweat spot will be service providers and big enterprises that can get most out of their investments.
The key benefits of software defined data center are the same for using software vs. hardware to solve problems. It’s simply more flexible and more economic in investment and operation. It’s a key enabling technology for cloud data centers.
Same as software pushed hardware commoditization and standardization, software defined data center will do the same thing for all the hardware devices in data centers, especially the networking and storage which still enjoy much higher margin than servers today. These vendors will be hurt the most.