Software Defined Data Center (SDDC) is something big, but not always it’s easy to understand it.
So all the time you hear about this buzzword, but what does it means exactly?
How will it help us? Let’s start.
Define Hardware Defined Data Center
Basically in a data center there are many devices / appliances which are doing specific logic. They are basically based on software with vendor’s propriatary hardware (which is based on some commodity hardware such as Intel CPU, memory chips/sticks, expansion cards like PCI-E devices and so forth).
Remember! all the computing equipment have one thing in common at least – they work with bits!
How does the physical appliances holds the software?
The software comes mostly in the following shapes:
- As a standard binary code on standard media such as hard drive, flash drive and flash ROM (non-volatile media).
- ASIC / FPGA (Hardware specific Integrated Circuit. software is complied into electronic circuit).
All of this using ALU at the end to calculate bits, which is the heart of every CPU.
Examples for appliances:
- Switches and Routers
- Storage Arrays
So all is good and working, so why changing it?
Let’s understand first what are the main disadvantages in physical appliances:
- You have to order the device, bring it to the data center, mount it on rack, configure it, etc.
- It takes time until you make it work.
- Usually it’s not automatically such as Plug-and-Play. each time you insert a device you have to do something actively in order to make it work, aka human touch must be taken into account.
- It’s not always can be bound into the boundaries of virtual environment – let’s say you put physical firewall on your data center and there are two virtual machines on the same hypervisor communicating with each other. the physical firewall not participating in the communication between those two VMs, so basically it’s worthless for those situations.
all those physical appliances are just manipulating bits… yeah, that’s all they are doing at the end!
Each one of the appliances just manipulating the bits with its own business logic, aka by the software we mentioned before.
Wait, here comes the light bulb above my head!
Now, after you are familiar with this fact, let’s think… “but wait a minute, all the regular computers are manipulating bits”.
That’s right! so those logics can be done on any machine, include virtual machines!
And if you’re familiar enough with virtual environments, you know that they are elastic and can be fully automated.
So why not putting the business logic on top of the virtual environment and create as many appliances as we want? 🙂
That way, we can order any appliance and use it right ahead. that’s what we call “On demand”.
examples for SDDC components:
- virtual router
- virtual switches
- virtual storage array
- virtual storage network
How do they implemented in a virtual environment?
There are two main methods to do it:
- By creating virtual machine on top of the hypervisor.
- By embedding code right into the hypervisor as a module/driver.
One thing that it’s important to know, you’re still depended on physical hardware which transport and store the bits (physical network such as switches to connect the hosts together and to the outside world and raw disks at least).
the rest will be done by SDDC components.
SDDC components can be distributed across hosts
yes, distributed architecture is brilliant! you can take some logic and spread it across hosts! just like application clusters working.
Why do I mention it? because all good and nice, but at the end you’ll get the following conclusions –
“But sometimes the hardware which on the host built has not enough power to run those business logics!”
“But I’m limited to how many raw disks I can put into one host!”
“What about redundancy?”
SDDC have the solution for all those questions.
Where do we go from here?
In the next post I’ll bring some examples for implementations based on SDDC concept (Both commercial products and open source).
In fact, you’ll be able to do it by yourself at home and start loving the idea!