The popularity of 2014’s GEN14 conference raised the bar for the 2015 event, this time held in Texas. MEF rose to the challenge and again did some good work. However, it wasn’t the conference itself, but the Lifecycle Service Orchestration (LSO) Hackathon that brought me to the Omni hotel in Dallas. This initiative was the first of the steps MEF is taking toward promoting solutions based on open, software-defined technologies. And further similar steps will follow – MEF already has a number of LSO Hackathons planned for 2016.
For those who are not familiar with the term, a hackathon is simply a one day event gathering software specialists who convert caffeine into usable software. In Dallas, all of us hackathoners were sitting in a spacious, caffeine-equipped room not for a single day but for almost three. The room was full – and I mean it. There were over 45 participants from more than 20 companies on the registration list, but my personal headcount was by far greater.
We spent the first day preparing for some serious coding ahead. While network engineers were busy setting up our lab for the hackathon, the project leader and domain specialists guided us through the agenda and introduced us to the projects on which we could choose to work during the following days.
There were four projects proposed – all fitting the same pattern – to implement LSO-based orchestration that exposed capabilities to configure and provision MEF-defined services on physical and virtual network components. In these projects we were to use LSO Allegro, Presto, and Adagio APIs to deliver UNI manager and software configuration and activation (SCA) features using cutting-edge SDN controllers and front-end technologies.
I decided to participate in the project mentored by Donald Hunter from Cisco DevNet. The goal was to deliver an SDN controller exposing the MEF SCA/NRP API using REST. It took a few moments before most of the people made their decisions on which group to join, and the teams were formed. As it happened, we had eight team members with network and software engineers equally represented in the team.
Now, we were finally able to get our hands dirty with work… almost. First things first. We sat at the table for the rest of the evening discussing the design and getting familiar with the technologies we were about to use.
The SDN controller for our project was OpenDaylight (ODL). It was really interesting to see the evolution of the project since its early days. The heart of the controller is a Model-Driven Service Abstraction Level (MD-SAL) that determines, to some extent, the architecture of the plug-ins. The module delivers infrastructure for data storage, software service routing, and change notifications within the platform. Extension developers define their models in YANG, and they are ready to focus on the business logic.
The boilerplate is handled by the controller. The current version of the controller runs on top of Karaf OSGi container, and has a number of useful features including AKKA-based clustering. Have I mentioned it is Java 8 compliant? Neat! The initiative has really gained the right momentum – the ODL community has already developed 40+ projects as I am writing this post.
Our solution was designed as a set of plug-ins (see Figure above) for the ODL platform that constitute the Karaf feature. We have two data model plug-ins here – one defining SCA API, and the second defining XR 9001 device abstractions – and two additional modules encapsulating business logic for northbound (sca-api-web) and southbound (sca-api-provider) interfaces. The Web module is an implementation of REST SCA interface. The module transforms a request into an SCA model and stores it in the data repository. The provider module gets the request, performs the decomposition, and generates southbound requests to specific devices using an appropriate activation driver. The modules communicate using data store change events – one of the MD-SAL features.
Now, if you happen to take high-quality software design and development seriously, you might be wondering how this could be accomplished within two days. Well, it can’t. We compromised. We invested time in good design and delivered the functionality for only the devices we had in the hackathon lab. We talked NETCONF to Cisco devices and delivered only a proof-of-concept XR activation driver, but left a well-defined API to plug other activation drivers like the one talking OpenFlow.
The development process was not that smooth either. Sometimes I was busy browsing the latest changes in ODL architecture and had a few struggles with the constraints of the OSGi container. We even found a bug in ODL YANG Tools module itself. That felt familiar, because identifying problems and finding solutions is exactly what I do on a daily basis.
All of the groups came together to summarize the hackathon during a reflection meeting at the end of the last day. It was interesting to see that we ended up with five projects instead of four – some guys decided to experiment with their own ideas. Although we had the same APIs, the projects and their outcomes were more complementary than similar. I think that we all felt the same way it, that it was so great that we wished the event could continue for a few more days. That’s a result of closing a bunch of dedicated people in one room (with caffeine, of course). Thank you, MEF, for this opportunity.
For me, the LSO Hackathon was a terrific experience and I think it is worth publicizing, as it re-enforces industry collaboration, promotes the open source approach, and provides a challenging hands-on experience. I met and collaborated with great and dedicated people. Hey, I was able to expand my ODL knowledge while contributing to the open-source community; to me, that is the definition of a perfect day!
I have a feeling that the LSO MEF APIs we were evaluating and implementing might shape the future of the networking. If you would like to see more details on the projects you can check out the LSO Hackathon Wiki page. Are you interested in changing the face of the industry? Stop hesitating, sign up for the next LSO Hackathon, and make history with us!