If you’ve been trying to find a good, solid, introduction to network programmability, you need look no farther than Software Defined Networks. While the authors do include a good bit of information that’s outside the field of network programmability, overall this is about the best overview of the entire space you’ll find in one handy tome.
The authors begin with control and data planes, explaining why separating these two is important in understanding networks. This is followed by a good summary of distributed control planes, including IP routing and MPLS, and then a good synopsis of a few centralized control planes, including ATM LANE (and here you never thought your hard work in nailing down LANE would ever be useful again!). This second chapter provides a (rarely seen) good review of the concepts behind calculating paths and forwarding through them.
The third chapter moves into the realm of SDNs with a solid and useful overview of OpenFlow. The first section of the fourth chapter provides a brief history and operational description of VMWare. While VMWare, and it’s relation to virtual networking, is important, there is a good more detail than seems necessary to get the point across. The sections describing each of the available controllers, however, is invaluable, although it does depend on definitions and descriptions provided later in the book. Chapter five moves into network programmability, providing a solid overview of various network management systems. Some sections here were less useful than others, as might be expected with such a broad sweep of what is actually a complex topic.
Following this, the authors describe the history and design challenges of multitenant data centers in some detail. This chapter was useful for bringing together a lot of little bits I’ve had rattling around in my thinking for a long while, but I’m still not certain how it fits into the overall flow of the book. This seems more like material you’d find in a solid data center design book — stuff you’d expect the reader of a book covering network programmability to already know.
Network Function Virtualization is covered in chapter seven, including a clear map of the relationship between NFV and segment routing, which I found very helpful. The next chapter is dedicated to topology abstraction, and then a section on various SDN frameworks is presented. These are deeper chapters that probably won’t be as useful for the average network engineer.
The final three chapters present a set of use cases, some of which are much more compelling than others, and a number of which have a lot of hand waving (though this is to be expected given where SDNs are today). There will probably be some use cases here that will provide solid fodder for just about any network engineer, but there are probably some you already know (and have thought about).
Software Defined Networks represents a solid entry into the space of introducing the concepts and ideas behind network programmability; this is a useful volume to add to your library.