Sashkin - Fotolia
Software-defined technologies have made enormous strides in recent years, buoyed by the stunning success of server virtualization, which we could easily call "software-defined servers." Today, software-defined technologies have expanded beyond servers in the data center to embrace networking and storage.
What can be "software-defined"? How far do these technologies really go in today's data center?
Software-defined networking (SDN) is a means of rethinking the way that traffic is handled. In traditional physical network devices, the switch hardware can often be visualized as a two-layer system which includes a control plane that decides how traffic is switched, along with a data plane that actually switches and forwards the network traffic to the correct port. Hardware switches are certainly fast and efficient, but setting configurations on individual switches is time-consuming and error-prone, leading to inflexible networks -- which can be inefficient as workloads and traffic types change.
Designers realized that it was possible to separate the control plane from the data plane, allowing development of a single ubiquitous control plane that could optimize traffic behavior across the greater network (all switches in the network) while also allowing the data planes of the individual switches to continue handling the local -- just using rule sets provided by the abstracted control plane. In effect, SDN allows the creation of programmable, centrally managed networks using a common protocol, like OpenFlow, to communicate between the control and data planes.
A different approach to network virtualization is the recent introduction of network functions virtualization (NFV) such as VMware's NSX software platform. NFV uses virtualization to create virtual appliances such as load balancers, firewalls, intrusion detection and network accelerators on existing servers instead of deploying dedicated hardware-based network appliances. Each virtual appliance can be logically interconnected to work together in order to provide any mix of network services which will continue to operate through underlying physical switches, routers and other network hardware devices. It's important to note that SDN and NFV are not competing technologies and can coexist in the same enterprise.
A second popular expression of software-defined computing is software-defined storage (SDS), which virtualizes the available storage from the underlying disks or disk arrays and allows rapid storage provisioning and management from the common storage pool. The SDS software may include a policy engine, along with high-level storage features like thin provisioning, snapshots, deduplication and other storage capabilities. SDS can be deployed as a software-only framework, but it may also exist as embedded capabilities of intelligent storage arrays, so it's important to investigate the way that SDS is implemented in the enterprise.
Eventually, software-defined technology promises to expand its reach into all aspects of the data center, allowing the virtualization, pooling and automation of all data center resources including storage, compute, network, security and so on -- it embraces server virtualization, SDN/NFV and SDS and other IT services. The result is dubbed a software-defined data center (SDDC), and its ultimate goal is to provide all of the data center's resources and services as a single overarching service (sometimes called IT as a service or ITaaS ). SDDC development is still in its infancy, and may evolve in any number of permutations before reaching general acceptance in the industry.
Why software-defined networking is becoming a reality
Software-defined storage might not be so radical after all
Dive into the different software-defined options
What separates software-defined technology from the rest?
Dig Deeper on Improving server management with virtualization
Related Q&A from Stephen J. Bigelow
Navigating data center malfunctions when hardware is off premises can be tricky. Organizations must have strong SLAs with their colo provider to ... Continue Reading
Regression tests and UAT ensure software quality and both require a sizeable investment. Learn when and how to perform each one, and some tips to get... Continue Reading
Learn the meaning of functional vs. nonfunctional requirements in software engineering, with helpful examples. Then, see how to write both and build ... Continue Reading