Back few years ago, a very popular term being thrown around by sales and technical people alike was "the cloud".
We are going to bring you servers to the cloud
Everything we provide as a company is cloud-based
The days of datacenters is over - the era of the cloud has just begun.
You've heard these sentences in the past. You know more or less what they mean - or - what the person you're speaking to wants to sell you by using the "cloud" term. Similar terms used in this manner are "artificial intelligence", "automation" and, more recently, "blockchain".
Bear in mind - all of these words have proper meaning and are not some kind of pointless buzz words or catch phrases IT people came up with. Just like "Software-Defined", all of these words can be used to describe real technology trends in the industry. AI engines are making a difference in programming and web development, we are automating more and more manual tasks in both end user and server/networking world, while blockchain in being actively developed and researched and should start popping up everywhere in the next couple of years.
Let's end the IT marketing here - it's time to see what "Software-Defined Everything" really means from the technical point of view.
Software-Defined == Virtual?
When speaking about the concept of Software-Defined Everything, people usually tend to be a bit more specific and use one of its derivative terms instead (depending on the point they're trying to get across):
- Software-Defined Compute (SDC)
- Software-Defined Storage (SDS)
- Software-Defined Networking (SDN)
- Software-Defined Data Center (SDDC)
- Software-Defined Facilities (SDF)
- Software-Defined Administration (SDA)
- Software-Defined Infrastructure (SDI)
All of the above terms are, again, valid and describe one of different concepts about the dame idea. Let's get through them one by one:
SDC refers to computational functions which can happen in any number of hardware devices in the datacenter, as needed, rather than be assigned to a specific hardware device. In addition, the compute functions can be moved around to different pieces of virtual infrastructure, depending on the availability of resources. Examples of well-known SDC solutions are VMware vMotion, VMware DRS and VMware Fault Tolerance.
SDS can be used to describe storage virtualization technologies such as VMware vSAN. The concept is simple; by "virtualizing" storage, we can get rid of many limitations of traditional solutions such as storage area network (SAN), network atttached storage (NASes), tape storage, RAIDs etc. By abstracting the storage layer, we don't have to worry about most of the physical limitations which come along the storage type in our datacenters. For example, expanding a vSAN means (in summary) adding more disks - that's it; no re-configuration and with essentially no downtime.
The new kid on the block - SDN - is a new approach to networks in cloud computing. It is meant to address the fact that the static architecture of traditional networks is decentralized and complex while current networks require more flexibility and easy troubleshooting. Just like with SDS, SDN is, in simple terms, a codeword for "virtualizing" the network. A prime example of an SDN solution is VMware NSX.
Software-Defined Data Center
Some call it a "marketing" term, however in reality, SDDC is a general term to describe a data center with most of its traditional functions abstracted from the physical layer (virtualized), through using the previously mentioned SDS and SDN. In addition to this, an SDDC has also an orchestration & automation layer, which allows it to be managed and automatized in a centralized manner. This layer allows for more proactive monitoring, automated policy management and automated provisioning, as well as more effective capacity planning
The orchestration & automation layer is also what makes an SDDC different from a hyper-converged infrastructure (also referred to as "datacenter-in-a-box), in which SDS, SDN and compute reside on a single hypervisor or hypervisor cluster. Having that said, it is correct to name the HCI as one of the core building blocks of a complete SDDC environment.
In summary, SDDC is a datacenter in which virtual machines have little to no dependency on individual hardware components, physically located in the data center - for example, the VMs should not be impacted during upgrades or outages of individual servers, storage units etc. SDDC also allows the administrators and architects to focus on more high-level tasks such as preventing outages before they even happen or planing upgrades way before the deadline so they would have no effect on production environment.
An important thing to note is that the SDDC differs from a private cloud, since a private cloud only has to offer virtual-machine self-service, beneath which it could use traditional provisioning and management. Instead, SDDC concepts imagine a data center that can encompass private, public, and hybrid clouds.
If SDDC goal is to abstract the datacenter from the physical layer & centralize its management, then SDI's is to completely separate the SDDC from "human" layer by essentially turning an ideal SDDC into an autonomous environment, which wouldn't need any hardware, software or hypervisor management whatsoever. This would be possible through software-defined administration, which would off-load all maintenance tasks from infrastructure administrators. The SDI should also include a way to control the non-IT (electricity, heating etc.) part of a datacenter (software-defined facilities), making the whole environment fully independent & resilient.
By using more sophisticated language - SDI is the definition of IT infrastructure entirely under the control of software with no operator or human intervention. An SDI operates independent of any hardware-specific dependencies and is programmatically extensible. In this approach, an application's infrastructure requirements are defined declaratively (both functional and non-functional requirements) such that sufficient and appropriate hardware can be automatically derived and provisioned to deliver those requirements.
While SDDC is a technical term, describing an approach to architectural design already deployed in many production environments around the world, the SDI is sometimes still assumed to be just a concept or an idea. Because of yet unclear definition of SDI and its extremely high infrastructural "requirements", it is hard to say if any actual deployment of such design exists. At the same time, SDI is considered by people in the industry to be in high-demand and whoever will be first to fully bring that idea to life will conquer the virtualization & data center world.
Software-Defined == Impossible?
The concepts of Software-Defined Everything in general, and Software-Defined Data Centers in particular, have been dismissed by many in the industry as “nonsense,” “marketecture,” and “software-defined hype”. It is not uncommon to see skeptics criticizing the ideas of SDDC, SDI and SDx.
Many critics and non-technical observers claim that only very few companies in the world (the likes of Google, Miscrosoft, Apple etc.), could completely transition their infrastructure into an SDDC and "maybe" into an SDI at some point in the future.
According to some, SDDCs won’t necessarily eliminate challenges that relate to handling the differences between development and production environments; managing a mix of legacy and new applications; or delivering service-level agreements (SLAs). Their main concern is that in many environments there are still production-critical applications which did not even fully adapt to the traditional "virtual" world (single, non-clustered hypervisors etc.) and might never be fully compatible with SDDC.
An example of technology proving critics wrong is Software-Defined Networking, which was considered to be the “least mature technology” required to enable the software-defined data center and impossible to fully implement as per SDDC concept. The current availability & advancement of SDN solutions, such as VMware NSX, are a real-world proof of SDDC being much closer to reality than what the skeptics would ever believe.
Software-Defined == Reality.
As with all previous technological revolutions in the infrastructural & enterprise world, the Software-Defined approach will force organizations to adapt. SDx environments will require rethinking many IT processes—including automation, metering, and billing—and executing service delivery, service activation, and service assurance.
While a widespread transition to the SDDC (and then SDx) could take years, this process will certainly become a necessity for the industry very, very soon. Those who will refuse to change their approach to IT, will eventually become obsolete, just like the critics who opposed virtualization as a whole in the past.