Directed Graphs in ONAP
The Linux Foundation Open Network Automation Project or ONAP takes its promise of being able to change the behavior of the platform without requiring programming, to the degree possible, quite seriously. The philosophy is pervasive -- ranging from areas such as creating closed loop automation pipelines, describing hardware platform requirements for VNFs, modifying/creating new network service orchestration workflows or modifying/creating new behavior for APP-C (application) and SDN-C (Software Defined Networking) controllers.
Take SDN-C and APP-C for example. In addition to configuration and other data in the form of models (e.g. YANG), they take programming inputs represented through something called Directed Graphs (DGs). These DGs are processed by a service logic interpreter and converted to Java objects. Most importantly, DGs can be written by non-programmers. They can also be changed dynamically without requiring any system restart. APP-C, for example, comes with DGs that can configure, start/stop, rebuild a VNF along with numerous other actions. They can be modified by users. Furthermore, they can be supplemented with additional DGs to create new features.
Figure: ONAP DG Editor
Unfortunately, I don't have an Ubuntu desktop. Rather than figuring out how to install the DG Editor on my mac, I decided to spin it up on Google Cloud. Here are the instructions. You can watch a YouTube video of this demo as well.
1. Create an Ubuntu 16.04 VM with 2vCPUs. Go with the default memory and disk size that come with 2 vCPUs.
2. Install relevant packages and start the DG editor:
# Install these packages one-at-a-time
sudo apt-get install default-jre
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installer
sudo apt-get install -y nodejs
sudo ln -s /usr/bin/nodejs /usr/bin/node
sudo apt-get install maven
sudo apt-get install graphviz
sudo apt-get install npm
# Install DG Builder editor
# This entire command is one line
git clone http://gerrit.onap.org/r/sdnc/oam && (cd oam && curl -kLo `git rev-parse --git-dir`/hooks/commit-msg http://gerrit.onap.org/r/tools/hooks/commit-msg; chmod +x `git rev-parse --git-dir`/hooks/commit-msg)
# username can be anything e.g. akapadia in my case
# enter one of your email addresses as well
# This whole command is one line
./createReleaseDir.sh 15.10 <username> <email_address> ~/sdnc/1510/service-logic
npm install sqlite3
http://<VM public IP address>:3101/#
# Username: username from above
# Password: test123
# Ignore following errors
# 25 Sep 00:04:51 - [red] Flows file not found...
# Could not load the file /home/.../oam/dgbuilder/releases/15.10/selected_modules
3. Try out the "Your First Graph" exercise. Of course, you won't be able to upload or activate the DG since the editor is not connected to ONAP. But you will be able to learn about the various DG "nodes" in the areas of flow control, device management, Java plugin support, logging/recording and resource management. If there's sufficient interest, I might do a subsequent blog explaining each of the various DG nodes.
If you would like to learn more about ONAP, please request one of our ONAP training courses. Or if you would like to set up ONAP in your lab, check out our professional services. Setting up ONAP in your own lab seems to be a trend right now. We've just completed 3 such setups in the last month. Pardon the sales pitch, but don't be late on this critical technology, start playing with it in your lab ASAP.