Should I really have heard of the Xinu embedded operating system?
Sounds a bit...Thetan, to me.
Software Defined Networking (SDN) has changed the landscape of networking, but along the way it has created its own problems. Doug Comer of Purdue University thinks disaggregating SDN controllers like the Open Source Network Operating System (ONOS) could be a way forward. Comer's name should be familiar to most of The Register …
I mean SDN could be simple. After all you just have a set of more or less standard components which need their settings.
Now the hard part is to connect that all into someting more powerfull and expose that power to an interface without it spiralling into millions of codelines. What would be needed is a simple overlying idea, kinda like the UNIX philosophy.
Adding complex message passing systems like Kafka certainly doesn't help in that regard, but it may aid in finding a way towards something good.
Essentially he is saying ditch SDN for Kafka - have your semi-dumb controller (that only does network layer processing) talk to and from a Kafka cluster and make Kafka stream processes do the hard work. It turns out there's life in the OSI 7-layer model and specialised processing by layer is a good idea.
Aside from efficiency concerns, it would seem yet another point of failure is added on an already failure-ridden comms stack. Getting from front-end to back-end used to be straighforward to operate. Now layers and layers of SD firewalls and SD networks intervene. The idea that this can be E2E tested for all situations is no longer tenable.
Thanks for your comments. Kafka is just a message distribution system that we used to externalize packet processing. We are working on a new implementation based on gRPC to reduce the overhead as much as we can and generalize the idea to an event distribution system that also allows us to implement controller services and apps using any programming language with a minimum effort. You will hear more about it soon but our preliminary results show that its overhead is almost nothing when compared with its advantages.
In the monolithic approach, If one of the services in the controller fails, it can potentially affect everything (i.e. other apps and services) because of the strong dependency between the modules. In the disaggregated model, each service/app will be executed in a container and we can orchestrate multiple instances of the same service/app using container orchestrators like Kubernetes or Docker swarm. If one of them fails, another instance can be replaced easily. In this model, each service and app can be developed independent of the other services and even in a separate github repository. It gives more flexibility to the programmers to choose their programming language and third libraries to implement their SDN management apps. I hope my comments answer some of your questions.
Adib Rastegarnia
This conversation makes me feel like an idiot. Compared to the Networking Gods on Mount Olympus I know that I'm a lowly idiot, but I'd like to know what the big kids are talking about. Can someone dumb it down for me?
Yesterday, I was giving a lecture on how switches work to my new crop of vocational students, when the very best one of the new students, out of the corner of my eye, started eating his boogers. I was shocked, but couldn't stop the lecture. I had to watch him have a snack a few times as I explained port tables and MAC addresses.
Reading this I feel like I'm that booger eater. Please! Dumb this down for this booger eater.