SDN Boot Camp
Cormac J. Sreenan (http://www.cs.ucc.ie/~cjs/) from University College Cork (UCC) organized a course on SDN for the Irish Telecommunication Graduate Initiative (TGI, http://www.tgi.ie). Prof. Nick Feamster (@feamster, http://www.cc.gatech.edu/~feamster/) traveled to Cork to teach his well-known Coursera SDN course as a 1 week boot camp. A lot of information can also be taken from the SDN videos Nick hosts on his YouTube channel.
The course syllabus and reading list is here: http://gtnoise.net/classes/tgi-ucc/summer2014/. The boot camp had teaching lessons in the morning (0900-1230) and lab classes in the afternoon (1330-1700). Tough going, every day lessons and assignments.
It is helpful to
- Understand the basic principles of networking on layer2/3
- Know how to use a Linux system, e.g. ssh, some scripting, process control (to start/kill processes), tcpdump, editing files (vi or emacs)
- Know how to use VirtualBox (the assignments are running in a VirtualBox VM)
- Program in Python, which means to know something about functional programming as well as the specific syntax of Python. A crash course, e.g. http://learnpythonthehardway.org/book/, can be helpful
LessonsThe teaching is structured in modules. The modules are divided into lessons. Each lesson comes with a summary. The course material is very good, and contains a lot of links for further reading. It is helpful to study the reading list (papers for each module) while going along. The lectures start with an introduction into SDN, including the history (which is very good imho). Then it dives into the details: Control Plane, Virtualization, Programmable Data Plane, Programming SDNs and finally verification and trouble shooting. So this is a complete course, not just scratching the surface.
There are assignments for each module. Each assignment comes with a detailed description of the underlying scenario and starts with examples that one can simply run. This helps to understand what the assignment is about and to put it into context. The actual assignment then is well-described. Skeleton programs are provided and the evaluation of the assignment is clearly stated. That doesn’t make it easier though. But Nick and his staff where in the labs and provided valuable help for all involved. The assignments are not build on top of each other, so missing one or being late on one doesn’t not hamper progress.
What you learn
A lot of things: using visualization environments and Linux of course. Then mininet to create network topologies. Using the POX controller in several ways (hub, switch, firewall) and later higher-level projects (Pyretic, Resonance) to control an SDN network.
An excellent course if one wants to figure out what SDN really is about, on PowerPoint level as well as in practice. I’d recommend the course for people who want to know SDN, understand the state of available software, or simply want to see where networking might go to in the next years. It is also helpful to understand the networking principles of virtual environments and data centers. Will Dennis has written more detailed experiences from taking the Coursera course in 2013.
Special thanks to Nick, Cormac, Mary Noonan (for organising all the logistics perfectly).
Post a Comment