napalm-yang has been abandoned :(

15 May 2019    networking automation 

It’s with sadness that I announce that napalm-yang is officially abandoned. It’s a strange feeling to abandon a project, specially one that some people may be relying on, but that’s always a risk in the opensource world. If you are a napalm-yang user or were planning to use it there are two paths for you right now:

  1. Fork the project. I encourage you to do so if you feel that’s the best course of action for you. I will try to support you as best as possible and direct new and existing users to your fork.
  2. Migrate to yangify and other related projects that will be released soon.

My recommended path would be to go yangify for a few reasons. First, it replaces pyangbind with yangson. This brings some memory and CPU efficiencies and makes the project simpler to maintain as there is no need for bindings. This doesn’t mean you can’t use bindings, it just makes it optional.

More importantly, it replaces the custom DSL with a python framework. This brings a list of advantages:

  1. Less code to maintain as there is no need to translate the DSL to actual python code
  2. Orders of magnitude faster as there is no need to go back and forth between the DSL and the python code
  3. More flexibility as there is so much you can express with a DSL.

Don’t hesitate to contact me directly if you are concerned about this announcement or if you want help migrating to yangify or forking napalm-yang.

Global Routing as a Service GRAAS

07 December 2018    networking automation 

A few months back I gave a talk at PLNOG21 about how we manage our global internet presence at Fastly. You can find the recording of the talk here

Network telemetry from SNMP to prometheus

22 May 2018    monitoring networking 

Whether you just don’t like SNMP or you want to leverage the same tooling for monitoring and alerting as the rest of your organization, this “tutorial” has you covered. What we are going to do is see how we can monitor our network infrastructure with prometheus and grafana.

In this blogpost we are going to see how to build a webapp using flask+nornir that gathers metrics from the network and presents it via a web application. Then we will scrape that web application with prometheus to store those metrics and finally we will see how we can present those metrics with grafana. In summary, you will learn how to replace your old-fashioned SNMP monitoring system with a next-generation-12-factor-app-compliant-telemetry-system.

Continue reading on github

GoBGP grpc code examples

18 April 2017    bgp automation networking 

For those that haven’t heard about it yet, GoBGP is, as they say “an open source BGP implementation designed from scratch for modern environment and implemented in a modern programming language, the Go Programming Language”.

To me, the most interesting part of GoBGP is that it uses a grpc interface to interact with the daemon and anything that can be done via its configuration file and/or CLI can be done via this interface. As a matter of fact, the CLI actually uses this interface to retrieve data and configure things.


09 April 2017    ops automation networking napalm 

It’s been quite some time since my last blog post and, truth be told, I don’t have that much time to blog as I am quite busy with work, napalm and life in general. However, I wanted to take a few minutes today to announce napalm-yang.

In summary, napalm-yang tries to bring support for YANG models to devices where:

  1. There is no support for models at all
  2. There is some limited support as models may evolve quicker than vendors