Building Network Automation Solutions

10 module online course

Start now!

Building Network Automation Solutions

This highly interactive online course will give you all the knowledge (and confidence) you need to build and deploy your first network automation solution.

Facing any of these challenges?

  • You're sick-and-tired of repetitive work being done by your department
  • Interested in network automation but don't know where/how to start
  • Confused by the plethora of open-source and vendor tools
  • Have to make network infrastructure or services delivery more predictable and reliable
  • Faced with a large deployment with aggressive roll-out deadlines
  • Everyone is asking for faster service delivery, but you can't make it happen due to the rigid processes
  • Looking for a small proof-of-concept project that you could deploy in a production network

You came to the right place

This highly interactive online course structured into 10 modules will give you all the knowledge (and confidence) you need to build and deploy your first network automation solution. A month after starting the course you’ll have your own code (or Ansible playbook) ready for a pilot deployment.

You will get direct access to network automation experts who created the course, membership in a wide community (600+ members) of fellow engineers with similar challenges, and access to all past and future course-related materials. Unlimited and for the lifetime of the course.

Is this you?

  • Network architect, technical pre-sales engineer, or similar senior, technical leader role
  • Traditional networking engineer striving to improve your career prospects
  • Automation user (sysadmin or programmer) aiming to extend automation to networking devices
  • Have limited time in your schedule to stay up to date, separate truth from vendor hype, and evaluate the true impact of new technologies
  • Want to avoid expensive solutions and untested technologies that benefit vendors but not end-users
  • Prefer to build systems from small components over buying monolithic vendor platforms

What will you get with this course?

  • Transparent and vendor-neutral course, based on more than 25 years of design and deployment experiences
  • Focus on real-world problems and optimal solutions, not technologies and products promoted by individual vendors

Content created by leading industry experts

  • 10 modules
  • Recorded past guest speaker sessions including Q&A

Hands-on experience

  • You'll design and develop a simple network automation system
  • You'll use Ansible (or another automation tool) to solve one of your problems
  • You'll make your code ready for pilot or production deployment

We'll be there for you

  • Sample solutions from Ivan Pepelnjak, guest speakers, and past attendees
  • Strong Slack-based community support from 600+ engineers, Ivan Pepelnjak, and past and current guest speakers
  • Email support through the duration of the live course

Watch the course introduction video to learn more about how this course works, its contents, and guest speakers:

We’ll Talk About

  • Fundamentals: Scoping, Starting small, Shipping Early
  • Building the data model
  • Implementing your solution with Ansible playbooks
  • Multi-vendor support and dealing with platform differences
  • Using third-party Ansible libraries (NAPALM, NTC-Ansible) and modules
  • Integration with operational data
  • Packaging and prettifying
Rob van de Laar, Network Architect at Atos
A chain reaction took place in my head. I'm down to earth now and I'm busy with my first Ansible project - automating deployment of an EoMPLS service.

Heard enough?

We have no immediate plans for the next live course at the moment, but you can always enroll in the self-study version of the course – you can either:

  • Buy the course, getting lifetime access to the course materials, or
  • Buy the Expert Subscription, getting 12 month access to a course of your choice and standard webinars.

Online Course

Expert Subscription

Access to materialsLifetime access12 months
Included materialsCourse materials
+ webinars in course curriculum
One course of your choice
+ all webinars
Online Support
Hands-on Exercises
Review of Your Solutions


  • Prices are in USD and do not include VAT or sales tax. Based on your country of residence you might have to pay them - some countries want to tax all purchases of their residents, and unfortunately there's nothing we can do about that.
  • For more details about the buying process check out the buying related frequently-asked questions.

At a Glance

  • 10 modules
  • Over 120 hours of self-study materials including 89 hours of course materials and 22 hours of Ansible content
  • Hands-on experience working on a solution to your own problem
  • Design and coding assignments
  • Strong Slack-based support from your peers, Ivan Pepelnjak, and past and current guest speakers
  • Final course completion certificate

Reserve your seat

Carl Buchmann, Managing Solution Consultant at TeraMach
I would highly recommend this training to anyone who wants to become proficient in Network Automation! Ivan + his many guest speakers do a great job at delivering relevant training addressing real problems!

Course outline

The course is structured in 10 modules:

Each module includes self-study materials and hands-on exercises. Our content management system will guide you through each module, and our mentor (Ivan Pepelnjak) will review and comment every hands-on exercise you'll submit.

For more details, explore the detailed course description.

Self-study materials

Each of the 10 modules has extensive guided self-study materials that include:

  • Selected webinars;
  • Recordings of the past live course sessions;
  • PDFs and books;
  • Recommended podcasts and reading lists;
  • Case studies and more.

For more details, explore the current self-study materials.

Hands-on exercises

Most of the modules includes numerous hands-on exercises that will help you get started on your network automation journey, or give you an outline of a solution that you need in your network.

For more details, explore the current list of hands-on exercises.

Community, support, and guidance

Access to the course-attendees-only Slack discussion group (with 600+ members) allows you to work as part of a large team, solve tough problems and share experiences.

  • Connect and discuss your challenges with experts in the networking field.
  • Get expert and peer feedback on your toughest challenges.
  • Stay in touch long after the course & expand your network.

Reserve your seat

Terry Slattery
Terry Slattery, CCIE#1026, Principal Architect at NetCraftsmen
I found Ivan's Network Automation online course to be very useful in helping me get started with my own efforts. There are several tools that could be used and starting with Ansible is a good approach. I was previously not aware of the other tools that were presented in the course, so I learned a whole new tool set, but perhaps the best was seeing how other people are using automation to do things like automate BGP configuration and validation. Another person has automated the configuration of a multi-rack data center compute module with just a few parameters.

You'll get the most out of it if you do the preparation study and keep up with the labs. Be prepared to be challenged.

Logistics Details

How much time will you need?

  • The course is split into 10 modules which include recordings of guest speaker presentations (2-3 hours) and self-study materials (up to 10 hours per module).
  • You might need up to 5 hours per week to study the materials, but as you get them when you register for the course you'll be able to study them over a longer period of time.
  • Plan to spend an additional day or two per module on hands-on exercises;
  • Don't be surprised if you'll need up to 6 months to complete all the course modules.

Past Guest Speakers sessions

Live sessions of this course included numerous guest speakers and extensive Q&A discussions. When joining this course, you'll be able to enjoy presentations from these experts:

Autumn 2020

Sander SteffannSander Steffann focused on a real-life network automation solution integrating NetBox, GitLab, and Ansible.

His solution uses NetBox as the source of truth for network automation, change management and auditing in GitLab, and validation and deployment with Ansible. This provides a full toolchain that not only satisfies the need for technical staff but also those of management, and provides a separation of responsibilities between engineering and operations.

More about Sander Steffann…

David GeeAs IT infrastructure continues to decompose into smaller components, so does the network. At all levels, from the network operating system to virtual network functions, containerized network functions, and the unseen virtual routing and switching from cloud environments, it’s becoming crystal clear that the orchestration of automation for this trend has to change to meet system demands. This session by David Gee covered a different approach to network automation than you may be familiar, an approach that provides a solution for this continuing trend.

More about David Gee…

Mircea UlinicSalt comes with some beautiful aspects, but the price paid may not always be worthy, e.g., you probably don't want to have a process running at 100MB memory consumption just for changing a port label on a console server once a year or less, right? Mircea Ulinic decided to turn his frustration into something useful and crafted a Salt plugin that should alleviate all these headaches and make it much easier to get started - the salt-sproxy.

Using salt-sproxy, you can continue to benefit from the scalability, flexibility, and extensibility of Salt, while you don’t have to manage thousands of proxy Minion services. However, you are still able to combine traditional minions, proxy minions, and salt-sproxy, to get optimal flexibility and performance.

More about Mircea Ulinic…

Dinesh DuttDinesh Dutt presented Suzieq - A framework and application for network observability.

Suzieq is both a framework and an application using that framework, that is focused on improving the observability of your network. We define observability as the ability of a system to answer either trivial or complex questions that you pose as you go about operating your network. How easily you can answer your questions is a measure of how good the system's observability is. A good observable system goes well beyond monitoring and alerting. Suzieq is primarily meant for use by network engineers and designers.

Suzieq does multiple things. It collects data from different devices and systems. It normalizes the data and then stores it in a vendor-independent way. Then it allows analysis of that data.

More about Dinesh Dutt…

Damien GarrosDamien Garros described how to build a monitoring solution based on Prometheus, a modern time-series database, and Grafana, including hints on data collection in a multi-vendor multi-protocol world including monitoring interfaces like SNMP, streaming telemetry, and CLI.

More about Damien Garros…

David BarrosoIn this session with David Barroso we focused on designing and writing an application focusing on three aspects; scalability, maintainability, and reliability. We looked at design principles, tools, and patterns to help us grow our application without compromising long-term quality and increasing confidence and speed when developing new features or changing existing ones. Even though he uses Nornir, the session content is agnostic and everything can be applied to any software project regardless of frameworks and libraries used.

More about David Barroso…

Kurt Wauters Wim De Hul Kurt Wauters and Wim De Hul presented an automation solution used in the large wholesale carrier, and explain how automating carrier-grade services differs from the typical datacenter-focused automation? Their presentation also documents the journey they took, the challenges they had to solve along the way, and the importance of keeping the “state” of your network.

More about Kurt Wauters…

More about Wim De Hu…

Autumn 2019

Matthias LuftMatthias Luft focused on secure software sourcing aspects of the tools used in the course. While using the tools to deploy automation (and thus standardization) can increase the security level of an environment drastically, it must also be ensured that only trusted software is used to implement this automation.

Matthias covered security goals in software sourcing, differences in open vs. closed/commercial software, known security incidents, and of course how to develop a model to deal with all those challenges.

More about Matthias Luft…

Damien GarrosDamien Garros explained how to build a network automation framework from the ground up:

  • How and why he organized the project around a source of truth (NetBox & GitHub);
  • How to integrate an automation framework to manage the network devices with the source of truth (Ansible);
  • How to leverage Docker to package Ansible and create a consistent environment;
  • How to properly import data into the source of truth and how to manage many roles and variations of the network design;
  • How to migrate from a traditional SNMP based monitoring to a modern architecture using Influxdb & Grafana.

More about Damien Garros…

Anton KarneliukService providers are huge elephants in terms of the complexity both of the networks and operational processes. On the other hand, there is a tough competition in the industry not only between the service providers but also between the tier-1 web companies and the service providers. There is only option to survive in this battle, and this option is the acceleration and the simplification of the whole service provider operational activities through the automation.

In the session, Anton Karneliuk presented some real use cases of the automation of the operational activities in the service provider networks using Ansible. He used numerous examples to explain what the main problems are, how they can be solved and why Ansible could be your number-one tool to start the transformation of the traditional service provider (or any other network) towards the infrastructure as a code. As an additional highlight, he demonstrated how he used Ansible to glue together NETCONF/YANG, REST API, SSH/CLI, XML and other entities existing in the networks over ages.

More about Anton Karneliuk…

Hans VerkerkHans Verkerk demonstrated some easy-to-understand scripts written in Python. These scripts abstract Cisco IOS configurations into Python data structures, enabling you to query the data gathered from network devices using standard Python utilities in a simple but effective way. He explained how the scripts work with live "mini scenarios" using interactive Python interpreter.

In the second half of his presentation, Hans focused on another script that converts interface- and VLAN properties from multiple switch configurations into a Python data structure and an Excel file. You can use the collected data to migrate to a new setup with different equipment or to a new network design, generating new configurations with Python Jinja2 library. Finally, Hans concluded with a script that audits network configurations.

More about Hans Verkerk…

Jeremy SchulmanAs a network engineer, you may be asked to perform basic and repetitive tasks. Your users keep asking for a "self-service" portal. You want to give them one, and you wonder what options exist and what would work best for your company. Slack provides interactive messaging and dialogs-boxes mechanisms that could be used to create wizard-like user experiences.

In this presentation, Jeremy Schulman talked about real-world use cases using Slack to create commands that drive network automation workflows. He discussed Slack's features he found most useful, described what he'd learned so far in terms of pros-and-cons, and demonstrated how he integrated Slack with other systems like AnsibleTower and IPAM.

More about Jeremy Schulman…

Spring 2019

Matt OswaltIn the past, it's been tremendously difficult to learn new networking technologies and platforms because of the cost and complexity of acquiring hardware. However, in recent years, several tools have made it possible to build a fully-functional lab, virtually! In this session, Matt Oswalt provided a guided tour that will help you get started building your own virtual lab environment, right on your laptop.

More about Matt Oswalt…

David GeeDavid Gee dived deep into the foundational stuff that no one ever wants to mention - the hygiene of automation, the equivalent of washing your hands before doing that big operation and disposing of toxic items afterward.

He described a golden approach to solving automation challenges, a maximum time return investment strategy, justification of "stop doing the bare minimum" and the results achievable from good old engineering and solid design.

More about David Gee…

Patrick OgenstadPatrick Ogenstad focused on the concepts of setting up a zero-touch provisioning system, starting with basic building blocks, the relevant protocols, and the glue needed to tie everything together. While his final solution used open source tools and custom written Python code, the goal of the session is to get into the right mindset around what the actual objectives of a ZTP system and other automation efforts should be.

More about Patrick Ogenstad…

Kristian LarssonThe development environment is an often-forgotten area that deserves a lot more focus. The right environment allows for rapid experimentation and development as well as verification through CI testing. Above all, a good environment makes developing so much more enjoyable.

Kristian Larsson explained how to set up a development environment - with tools - that's conducive to carrying out network automation development and demonstrated how to build a sweet setup for yourself using virtual routers (vrnetlab) that you can use to speed up development as well as automatically validate changes through CI testing.

More about Kristian Larsson…

Mitja RobasMitja Robas described a real-life environment that uses automation to achieve the goal of truly independent DC sites instead of the usual hodgepodge of stretched VLANs. The customer used NSX virtual networking accompanied by EVPN physical network to implement multiple tenants and relied heavily on automation to minimize deployment errors and inconsistencies between sites.

More about Mitja Robas…

Autumn 2018

Dirk FeldhausDirk Feldhaus described how to automate service deployment with Ansible within a network fabric to make the implementation faster, more consistent and less error-prone. His solution deploys a new customer environment within a Cisco ACI fabric including a tenant, VRF, bridge domains, application profiles, endpoint groups, etc.

During his presentation, he showed how he used YAML to represent an abstract model of the components of his environment, standard Ansible modules to configure these components, and Jinja for customizing configuration steps that are not covered by standard modules.

More about Dirk Feldhaus…

David BarrosoDavid Barroso demonstrated Nornir: a pluggable multi-threaded framework with inventory management that makes it easier to operate a collection of devices with tons of data than server-focused tools like Ansible. Nornir abstracts the complexity of dealing with data and multithreading so you can focus on solving your automation needs whichever they are.

With this session you will learn how easy it is to write Nornir code even if you're not proficient with Python, how easy it is to integrate with other frameworks like a flask or click, and how to leverage your text editor features for autocompletion, easy access to documentation, or even debugging and troubleshooting. As always - all through hands-on examples :)

More about David Barroso…

Gabriele GerbinoWhen you automate, you want to make sure that you are not automating bugs and mistakes too, thereby making them spread across your environment. That is why you want to have a proper testing pipeline in place!

In his session, Gabriele Gerbino presented some practical examples on how to build a simple testing pipeline by using Travis-CI and VMs/containers to make sure that you can sleep better once you hit the DEPLOY red button.

More about Gabriele Gerbino…

Nick HilliardMost networks operators don't have the luxury of deploying in greenfield scenarios. In his presentation, Nick Hilliard will examine how to take a practical, hands-on approach to network automation for live networks, starting at business analysis, product abstraction and data modeling, and ending up with practical automation of live configurations.

More about Nick Hilliard…

JP SeniorJP Senior from Astra will go deep into intent-based networking technology and cover data models, validations, graph database queries, Jinja rendering and how abstraction removes the heavy lifting in terms of distributed state management, change management and real-time notifications.

He will illustrate these concepts by providing a simple-to-use deployment automation and ongoing analytics of one of the most complex data center technologies - multi-vendor EVPN control plane using VXLAN encapsulation.

More about JP Senior…

Spring 2018

Mark PriorIn the Network Infrastructure as Code presentation, Mark Prior described how he automated a private cloud infrastructure, and how he uses infrastructure-as-code principles to build reliable data center networking infrastructure.

Mark started his presentation with his network automation journey, and spent most of his time talking about the automation projects he completed in recent years using open-source tools like Ansible, Git, Jenkins, and Slack.

More about Mark Prior…

David GeeAfter automating device configurations and service provisioning you might start tackling the holy grail of network automation: changing your network behavior based on a real-time external event.

In his presentation, David Gee described the fundamentals of Event-Driven Automation (EDA), including Why would you want event-driven automation and what are its pitfalls? What exactly is an event and what's the difference between signals and events? How would the architecture of an event-driven solution look like? Why do we need event normalization and correlation?

He concluded with an overview of open-source and commercial tools you could use when building an event-driven solution and demonstrated the concepts with two simple examples using StackStorm and Salt.

More about David Gee…

David BarrosoDavid Barroso explained how you can use NAPALM to validate whether the actual state of a network device meets its desired state.

More about David Barroso…

Mircea UlinicMircea Ulinic explained how to get started with Salt and set up an environment for event-driven network automation and orchestration. He described the recommended steps to install Salt, and the key points to remember did a brief introduction to the CLI syntax and acquainted you with the advanced configuration management capabilities. Debugging is always very important - particularly during development, so he covered that as well, and explored the features Salt provides for debugging.

In the end, Mircea briefly discussed event-driven infrastructure that we can use to trigger fully automatic configuration changes in response to external or internal network events.

More about Mircea Ulinic…

Mitja RobasChef is not a most commonly-used network automation tool, but you might still encounter it in environments where it's already used for system management.

Mitja Robas described what Chef is, how to set it up, and how to configure Nexus OS switches using on-device Chef agent.

More about Mitja Robas…

Autumn 2017

Patrick OgenstadPatrick Ogenstad described his network automation journey, from writing firewall rules in Excel to deploying large-scale network automation solutions.

As he progressed through the problems he solved on this journey, he also identified the lessons learned, pitfalls and takeaways.

More about Patrick Ogenstad…

David BarrosoWhile configuring network devices with OpenConfig sounds really interesting, don't expect to be able to do it any time soon - the vendors are (as usual) very reluctant to add yet another layer of indirection on top of their already-bloated software.

David Barroso, the author of NAPALM and SDN Internet Router, decided to fix that problem within NAPALM and wrote a set of libraries (napalm-yang) that perform translation between OpenConfig (or any other) YANG data model and device configurations.

More about David Barroso…

Dinesh DuttDinesh Dutt explained why we need new tools to supplant existing network troubleshooting tools, and described the new technologies and tools being developed.

He concluded his presentation with a deep dive into NetQ, the tool Dinesh developed while working at Cumulus Networks.

More about Dinesh Dutt…

Jeremy StretchJeremy Stretch explained what drove him to create NetBox, a new IPAM/DCIM tool, the challenges he encountered in defining the data models, and how the API can be used to drive network automation. Or as he said: Network automation is great, but it can't happen unless you have some way to model what your network should look like.

NetBox, one of the few open-source tools focused on networking engineers' needs was developed to function as the "source of truth" for a network, covering all aspects of IP address and infrastructure management.

More about Jeremy Stretch…

Pete LumbisGitLab CI is one of the commonly-used networking-focused continuous integration tools due to its agent-based architecture.

Pete Lumbis explained how you can use the software concept of automated testing to bring a faster rate of change with a greater degree of success. He described the tools required to make automated testing a reality, and how automated testing can be easily folded into a team-wide change management system.

More about Pete Lumbis…

Thomas WackerThomas Wacker described how UBS AG embraced automation for the currently ongoing data center network rebuild. He started with prerequisites and key objectives, described the architecture, showcased the toolchain in use today, and explained the phases of build, test, documentation and ongoing operations.

In the conclusion, he went through the benefits of UBS approach, the next immediate goals, and how automation will keep changing the networking industry.

More about Thomas Wacker…

Spring 2017

Elisa JasinskaElisa Jasinska gave an overview on how to approach your automation and orchestration strategy. She described how you could:

  • Split your automation challenge into numerous small automation services;
  • Decompose each automation service into smaller components, and identify common components that could be reused across many services;
  • Design your network automation systems;
  • Create a single source of truth for your automation solution;
  • Set up data collection and monitoring systems;
  • Integrate individual services into an orchestration solution.

More about Elisa Jasinska…

Scott LoweScott Lowe started his transition from an infrastructure engineer focused on storage and virtualization into full-stack engineer familiar with open-source software in 2012. He started by exploring the intricacies of Git and GitHub and continued the journey by researching the capabilities of Open vSwitch, LibVirt, etcd, Terraform, Vagrant/VirtualBox, Docker and Ansible.

His presentation focused on lessons learned while using Git/GitHub. We also spent a significant amount of time talking about his journey toward becoming an open-source-aware full-stack engineer.

More about Scott Lowe…

David BarrosoIn this tutorial David Barroso explains the basics of network device configurations based on abstracted data models, including data derived from a back-end database.

More about David Barroso…

Marcel WigetMarcel Wiget introduced OpenConfig and explained how you can use it for configuration and telemetry. He concluded the presentation with practical examples demonstrating the capabilities of Ansible networking modules in combination with OpenConfig/YANG to provision Juniper Networks routers and switches.

More about Marcel Wiget…

Pete LumbisPete Lumbis explained the basics of Continuous Integration and Continuous Delivery (CI/CD) concepts and demonstrated how you can use GitLab and virtual labs to test network device configurations prior to production deployment.

The attendees of spring 2017 session wanted to get more details about the Continuous Integration pipeline Pete Lumbis set up with GitLab and Vagrant, and he agreed to come back and do a deep dive into CI with GitLab in Autumn 2017 course.

More about Pete Lumbis…

Ryan HeffernanRyan Heffernan focused on a seemingly simple task that haunts many enterprise networks: how do you figure out which access control lists (ACLs) the traffic between two endpoints might hit under all possible failure scenarios.

In his presentation he described how the consistent structure of Facebook's enterprise network allowed him to simplify the problem to the point where it was easily solvable with a Python script.

More about Ryan Heffernan…

Mat WoodMat Wood described how Facebook's enterprise networking team solved a common networking nightmare: enforcing consistent device configuration. His presentation outlined their journey from consistent configuration snippets generated from a source-of-truth using Jinja2 templates to configuration audits and automated remediation.

More about Mat Wood…