News Stay informed about the latest enterprise technology news and product updates.

Q&A: Nick Feamster on how he developed the first college SDN course

Georgia Tech's Nick Feamster speaks with SearchSDN about the challenges associated with developing the first-ever college-level SDN course.

The demand for SDN education is growing, and so are programs that include college courses and professional certifications. Since the technology is rapidly evolving, there are challenges in developing SDN course content, but the Georgia Institute of Technology forged ahead to offer the first SDN college course of its kind, spearheaded by Associate Professor of Computer Science Nick Feamster.

It's definitely not too early to learn about OpenFlow. … How do you write programs on top of it … [those] principles will carry over as the technology evolves. But the principles of the control plane separation and network virtualization, as far as certification, I don't know.

Nick Feamster,
associate professor of computer science, Georgia Institute of Technology

Feamster spoke with SearchSDN about the development of his course -- which serves more than 50,000 virtual students -- as well as the challenges of developing course content. He also addressed what lies ahead for SDN courses at Georgia Tech, and whether or not professional certifications are worth the time.

Describe the SDN online course at Georgia Tech. How was it developed, and what type of course content does it include?

Nick Feamster: The course was designed from scratch [by Feamster, a teacher's assistant and an instructional designer]. [Previously] there was no classroom course or material on SDN. So it was a clean slate.

That was nice -- being able to work from scratch in terms of what I wanted to include. As far as the course is concerned, there are several parts. First is the history of SDN: where do the principles come from? … After that, we dive into network virtualization, which is a hot topic this year and is basically the bread and butter. We look at what it is, as well as the technologies that enable it and what does SDN have to do with it. In addition to studying the technology behind virtualization, we look at the role SDN plays in network virtualization -- it's an enabler for network virtualizing technologies. Conceptually, SDN is two things: the separation of the data and control planes, and the controller controlling multiple switches. We spend a week looking at what is control-based plane separation, where does the concept come from, what are the OpenFlow specifications, etc.

In the middle part of the course, we look at different controllers. We got people up and running once and building their own virtual networks using POX controllers to control virtual networks. Now, in the fifth week, we're getting people to use this controller to program interesting things in SDN: so to write a program in POX or Python, to simplify roles and also looking at the northbound API and some of the controllers in Georgia Tech. Finally, at the end of the course, we look at use cases -- data centers, enterprise networks, how SDN is used in these various contexts, and how it can be used to solve problems.

Since SDN is evolving, is it difficult to determine what to teach? How do you choose what to teach and how will that change down the road?

Feamster: One of the challenges is the wide variety of people taking the course. There are people who are abroad in India. We have people who are professionals and who want to gain exposure to the topic. We have the engineering types and also the management types who have heard the hype about SDN and they want to know the nuts and bolts. I also have students from various universities … who are doing research. It's a wide variety of people, and what that challenge presents is: How do you design material and assignments for this group? Some say it's too high level, and some say it's not high enough, so you have to tailor it. One thing I'll do when I do the course again is probably consider multiple tracks: one geared toward programmers and one more geared toward concepts.

As far as material, one area that's evolving is the northbound API [application programming interface]. That's all very fresh. I was basically writing code for that part of the course, and I expect that to be a lot more mature and [there to be] a lot more protocols out there for people to use in two or three years. One of the other [challenges] too was use cases of SDN. There is a lot of press on SDN in the data center, but it's really network virtualization. SDN is a tool for enabling that. [In terms of use cases, there's] SDN and inter-domain routing … there's software-defined networking and the Internet Exchange. Enterprise networks, there's a little there. But in use cases, there isn't a whole lot to teach yet because there hasn't been a lot published on it, Google being the exception. In two or three years, as northbound APIs mature and use cases grow, we'll have more to talk about.

If you were to offer an SDN class three years ago, how would that differ from the class today?

Feamster: It's interesting -- I did teach a future Internet architecture class a few years ago. SDN didn't quite exist in its current form, but there certainly was network virtualization and there was also control plane separation. So I think basically, the biggest difference … [would be] the Internet has allowed us to teach this content in scale. If you want to emulate a network, you basically have to give people hardware to do it. In our case, it's an academic cluster of seats, a small data center geared toward networking. But with network virtualization and things like faster hardware, you can build a network on your laptop. But it's also because of the control data plane separation: You can write a controller and you emulate the network. So I think that's one of the most powerful things within the past few years. Before, you [had] an emulated environment with software routers and limited scale. With the rise of OpenFlow, we can now say, 'Do this on your laptop.'

What are your thoughts on vendor certification programs? Could it be too early to offer programs like these? Should network professionals seek SDN certification through vendors like Cisco that may have a proprietary approach?

A look at SDN education

Colleges create SDN offerings

Vendors take a look at SDN certifications

Learning about SDN basics

Feamster: I would say there are two points to discuss -- one, teaching the principles of SDN and giving people hands-on experience with various tools. It's definitely not too early to learn about OpenFlow; what is the protocol, how do you write programs on top of it … [those] principles will carry over as the technology evolves. But the principles of the control plane separation and network virtualization, as far as certification, I don't know.

As a university professor who used to be in networking, we can talk about routing and network measurements, and at the end of the day [professionals] can go take their systems certification and their Cisco router switch [certifications] because…Cisco controls the software, and they also packaged their own features, etc. In the university environment, we're not focused on getting people up to speed on a particular set of products. … For example, I wouldn't want [students] to worry so much about Java or Python, but I would want them to know about data switches and so forth. In the same way, I don't think the type of course I'm teaching would ever be geared toward SDN certification.

Now whether or not there's another vendor track for [SDN education is] hard to say. It seems to me you could have something for someone with OpenFlow specs, but it's a moving target. To that end, with networking protocols and Cisco, I don't think it's too early, but it's not something I would be doing.

Dig Deeper on Networking careers and certifications

Join the conversation

1 comment

Send me notifications when other members comment.

Please create a username to comment.

I would love to see the SDN education open up a bit to include a discussion of frameworks (what is there now), protocols (expanding to include PCE, BGP-TE, ALTO, I2RS), deployments (greenfield is nice but hybrid is reality), and then management (particularly monitoring and troubleshooting, but also orchestration more broadly).

My fear is that OpenFlow has a lot of mindshare in academia but is really a fairly narrow piece of the overall pie. I wonder how we get a more inclusive educational experience.

There are also practical business things to consider: talent, org design, change management, etc. Though I understand why those don't get rolled into a technical class, they might be interesting for people looking to actually impact things.

Mike Bushong (@mbushong)