6 Replies Latest reply: Mar 27, 2018 8:48 PM by Elvin Arias RSS

    Getting Started with Network Programmability | post webinar discussion thread

    Brett Lovins

      Please consider using this as a post webinar open discussion thread for the session:
      Getting Started with Network Programmability with Jason Davis


      This webinar takes place 3/21/18 at 10:00am PT.


      The on demand recording for this session will be available by 3/29/18 (probably sooner).


      Find study materials, exam topics, view training videos and register for upcoming CCIE/CCDE Evolving Technologies webinars here:
      CCIE/CCDE Evolving Technologies


      Many thanks to Jason Davis and Kashif Zeeshan for bringing you this great CCIE/CCDE Evolving Technologies content.

      Slides attached...


      Thank you.

      Brett Lovins

        • 1. Re: Getting Started with Network Programmability | post webinar discussion thread

          Hello JSON and CIA!


          Thank you very much for the presentation!


          Best regards,



          • 2. Re: Getting Started with Network Programmability | post webinar discussion thread
            Vitali Aivazov

            Hi Brett,


            Thanks again to you and Jason for a great session. Is the recording posted somewhere yet?




            • 4. Re: Getting Started with Network Programmability | post webinar discussion thread
              Brett Lovins

              Adding in some Q&A from the session that Jason answered.


              Q: What about mongo db or node.js?


              A: MongoDB is a great open-source option for customers that are doing unstructured data storage and retrieveal, like documents.  I’ve used it best for inventory/asset tracking solutions.  So, I definitely support it’s use.  Today I was showing data graphs that were data-points against time.  Those are best suited through the use of ‘time series databases’ (TSDB).  InfluxDB is a good option I used in our examples.  OpenTSDB is another.  When designing systems we have to think about the type of data we’re storing to ensure the optimal data ingestion and extraction.  Using MongoDB for a time-series piece of data would work, but it would be suboptimal.  Likewise, if I stored unstructured data (like inventory data) into InfluxDB, I could do it, but the time-stamp nature of it would be sub-optimal.


              Node.js is also good when developing server-side JavaScript code.  That was a bit more technical than I wanted to go today, but it’s great we have options!


              Q: Other Cisco tools we use VTS, NSO and Pronghorn by Itential


              A: Currently this is just an Intro to NP, we will be hosting upcoming sessions for these topics mapped to our BP. Stay tuned - Thanks. –


              Sure thing.  I’ve used NSO pretty well, along with VTS.  Itential Pronghorn is a third-party portal/workflow engine that works well with NSO.   The Cisco tools I showed today work in a similar fashion and can extend beyond NSO very easily.  I’d love to hear more about your experiences with your management tools.  I’ve worked with Verizon before on IPSLA latency measurements to the cell sites.


              Q: can you explain difference between API and Restful API?


              A: Rest API are subset of API - Rest API allows you to  build API using HTTP, JSON and URI but there are other API's which works suited for your use case. ‑


              REST APIs are just one of a type of Application Programming Interface (API).  There are other types – Java Remote Method Invocation (RMI), Simple Object Access Protocol (SOAP), Remote Procedure Call (RPC).

              REST tends to be the most popular, certainly at Cisco within our management tools and products.


              Q: what is use of base64 output


              Base64 encoding of the username and password and passing through a Web message body like a REST PUT method is an industry defacto ‘standard’.  It’s not the most optimal form of security, but if your Web server is protected by SSL (HTTPS) with reasonable cyphers, then having the username/password authentication encoded within the encrypted payload is generally acceptable for “less than financial/banking” purposes.


              Cisco is not the ‘innovator’ on this method – you’ll see it used by several other applications that provide a REST API.  Other methods are oAuth, token sharing and pre-shared keys.


              Q: At this moment in SDN,what role does DEVops play?


              A: Nikhil, Currently this is a Intro to NP, DevOps will be in upcoming sessions. These are broader topics and require much  more time. ‑


              DevOps is a logical progression of the Developer/Operations role when doing SDNs.  If you think about it, the transition to a more software-based architecture requires programmers to embrace software development models and processes that are widely accepted and reflect sound collaboration principles.  A customer looking to skill-up in the DevOps discipline may be thinking about Agile development frameworks.  They may be encouraging the use of Eclipse Integrated Development Environment, Jenkins code development/testing engines, SonarCube code testing systems, Git/GitHub repositories, and Artifactory repository management tools, etc.  But mostly DevOps is about establishing better communication avenues between Developers and Operations teams.  I have a DevOps CiscoLive presentation at: https://www.ciscolive.com/global/on-demand-library/?search=davis%20devops#/session/1454486437105001Qjia




              Q: Does CPO support integration to run commands with all OpenStack components like Nova, Neutron or just some of them?


              Cisco Process Orchestrator does have an OpenStack adapter built in…




              I double-checked the Nova Compute and Neutron Networking APIs – they are both standard REST APIs, which CPO can support easily.

              Since Openstack Heat is the module responsible for most of the architecture orchestration, I would leverage the REST APIs there, also.




              Q: can you use this to read packet headers and process specific information, such as latency and port utilization?


              Cisco Process Orchestrator is a Run-book automation/Orchestration tool that generally interfaces with other products and tells them what to do in a workflow.

              If you had some other system monitoring packet capture, like Wireshark/tethereal, then CPO could start the capture, redefine the filters, stop the capture, etc.

              You wouldn’t build the packet capturing function in CPO.


              So here’s a word-picture for how CPO might be helpful…

              Let’s say you have a security monitoring application that triggers events when a certain traffic threshold is violated or when too much traffic from ‘Country X’ is coming in.

              CPO could receive that trigger and follow a workflow to tell Wireshark to start a packet capture for 5 minutes.  After 5 minutes CPO could come back to wireshark (tell it to stop, if necessary), copy the capture file over to a file repository, then CPO could do a REST API call to the Umbrella SPAMmers list to see if any matches existed in the capture.  If so CPO could put a message into a Spark (or Slack) chat room “Found X number of entries from Spammer Y in Country Z”.


              As far as latency goes, you could certainly use CPO to configure and collect IPSLA or TWAMP data from the routers doing the collections.

              Port Utilization would involve SNMP port collectors or CLI scraping of ‘show interface status’ data.  That’s entirely do-able also.

              • 5. Re: Getting Started with Network Programmability | post webinar discussion thread
                Brett Lovins

                Yes... the recordings are ready for you to watch: Overview of SDN/Controllers

                • 6. Re: Getting Started with Network Programmability | post webinar discussion thread
                  Elvin Arias

                  This is a nice one, thanks for posting.