on the controller that can speak to many different devices. Different vendors, eras of
equipment, and classes of equipment (e.g., transport, simple switches, wireless base
stations, subscriber termination gateways, peering routers, core routers, and servers)
all are on the trajectory to be able to be programmed by the SDN protocols that plug
into the bottom of the controller. The programmer only uses the APIs on the top of the
controller to automate, orchestrate, and operate the network. This doesn’t necessarily
mean there is a grand unification theory of controllers and one to serve all layers and
functions of networking, but what it does mean is that the network now has been ab‐
stracted and is being programmed off box. Thus, when integrated into an IaaS (Infra‐
structure as a Service) layer in a stack, OSS, or IT system, the network is being automated
and orchestrated as fast as users log onto the net and as fast as workloads are being spun
up on servers.
The use of new tooling practices typically utilized by system administrators and new
available to network operators are related to the whole SDN movement. Tools such as
Puppet, Chef, CFEngine, and others are being used to automate and orchestrate the
network in new ways as plug-ins can now be created to utilize the network data via the
open interfaces of the network. Controller APIs also allow for easier and faster ways to
build and apply policy across the network in multiple languages and with integration
into existing tools such as IDEs (NetBeans, Eclipse, et al.). This allows for a better user
experience for network engineers versus the traditionally used CLI model.
Before we dig into examples, it’s important to understand what SDN actually solves and
why there is a shift to this particular architecture. As networks evolve and new services
are deployed, it’s critical to implement new ways for users to more easily provision and
orchestrate network resources in real time. By implementing this, cost can be reduced
by the automation of moving resources around faster and more reliably, and by allowing
the network to respond directly to a request from an application (versus the intervention
by a human). This allows for operators to use programmatic (scalable) control versus
manual to create and apply these services in a way that is simpler than a command-line
interface. Additionally, it enables the ability to utilize new resources from the network
(user data, traffic path information, etc.) and create new types of applications that can
control policy for the network in a scalable fashion. It also allows for the optimization
of infrastructure, services, and applications by allowing for new network data and ca‐
pabilities to be extended and applied into the aforementioned architecture, creating new
ways to not only optimize existing applications but also to insert new services or offer‐
ings that can provide a better user experience or create a new offering or advanced
feature that could be monetized.
As SDN evolves, it’s important to look at some implementations to understand why it’s
so critical for multiple industries (e.g., video delivery, user services and mobile, cable
and broadband, security, and provider edge) to embrace. Where SDN reaches its po‐
tential, however, is when you look at it for not just programming the network functions
and scaling those across your infrastructure, but also for actually tying server, storage,
xiv | Foreword by David Ward