In the contemporary SDN world, ONAP (Open Network Automation Platform) is quite a trend. ONAP is a big project composed of a number of sub-projects (or components if you like), which together form a platform for orchestration and automation of network functions. There are big companies involved in ONAP and its development is speeding up rapidly.
SDN-C is one of many ONAP’s components, which is essentially OpenDaylight with added functionality for the execution of directed graphs.
SDN-C deployment architecture
ONAP SDN-C deployment is composed of several Docker containers. One of these containers runs Directed Graph Builder. It’s a web UI you can use to build directed graphs in a user-friendly manner.
Another container runs Admin Portal, which is another web UI for SDNC.
The next one runs the relational database, which is the central point of SNDC deployment and each container is using it.
Finally, there is a container that runs the SDNC controller itself. This is the one we are in particular interested in because it has all the logic behind the execution of directed graphs.
We found out that the SDNC container takes more than 300 seconds to initialize and it consumes 1,125 GiB of RAM after initialization. We were thinking – could we do something to make it more efficient? lighty.io comes to the rescue!
Migration of SDNC to lighty.io
As we already mentioned, SDNC is based on Opendaylight and what we wanted to achieve is make it more efficient and more suitable for microservice deployments. This is exactly the use case for lighty.io. We decided to migrate SDNC from Opendaylight to lighty.io and build our own Docker image for it.
We cover some of the technical aspects behind this migration in a separate article, here we will only summarize our achievements:
- Ability to execute directed graphs (you can see it in action in our video)
- Less memory usage
- Quicker startup time
Here is a simple table with a comparison of our Pantheon lighty.io SDNC container with vanilla SDNC container:
|Vanilla SDN-C container||lighty.io SDN-C container|
|Initialization time||388 s||147 s|
|Memory usage after startup||1,125 GiB||613,1 MiB|
|Memory usage after test graph execution||1,246 GiB||937 MiB|
|Average execution time of test graph||1,49 s||1,2 s|
|Average cpu usage during test graph execution||115,27 %||108,06 %|
The execution time of init script running in containers
The graph used for testing reads data from MD-SAL and writes them to log 1000 times in a loop.
Containers have available 4 CPU cores
Thanks to the migration exercise we proved that even a quite complex application can be migrated to lighty.io in a short time and achieve measurable improvements. Click here to read more about the migration process!
If you are interested in further SDN/C performance and architecture optimizations, contact us!