Private Training

Imagine what’s possible with customized private training and workshops.

Network to Code’s private training and enablement programs are meant to fit the needs of your organization. Whether you’re looking to get your team started with automation or aiming to develop advanced workflows, our courses can be tailored to the specifics of both your team and your organization.

Private training programs are often customized to cover several topics over the course of weeks to months. The industry is experiencing a transformation and adopting new automation technologies can be daunting for network engineering teams. We at NTC believe in empowering people over process. A focus on organizational change management in tandem with a diversified approach to learning is critical to success. This approach could include varied types of enablement such as one-on-one coaching, hackathons, challenges, and bite-sized sessions, in addition to 4-8 hour workshops. Learn more about the curriculums we’ve developed for clients or reach out to training@networktocode.com to discuss creating a course of your own.

Network Programming & Automation Course (Beginner)

Enablement Type, Number of Hours: 5-day Bootcamp, 8 hours/day

+
Description:

This is our flagship course originally launched in early 2015. It was the industry’s first comprehensive network programmability and automation training course, and it continues to be refined and optimized for the most optimal and relevant topics offered in a one-week boot camp. In this course, you will be immersed into using Python and Ansible, covering many topics required for a jumpstart into network automation.

Prerequisites

While there are no programming, software/dev, or automation prerequisites, students should have:

  • Good grasp on networking concepts such as device configuration of interfaces, VLANs, SNMP configuration, and basic routing
  • Ability of the Linux filesystem (creating and viewing files, navigating directories)
  • Be aware of how to use a text editor: SublimeText, nano, vi/vim, notepad++, VSCode

Network Automation with Python (Beginner)

Enablement Type, Number of Hours: 3-day Bootcamp, 8 hours/day

+
Description:

In this 3-day course, you will learn about foundational skills as they pertain to network automation and programmability. The network industry is in the midst of change, and one part of that is the operational models and technologies used to manage and operate networks on a day to day basis. For over 20 years, the CLI has been the primary means to manage networks. Going forward, we are starting to see more open and programmable network devices emerge – this means having device APIs not only on network switches, but also on SDN controllers in the form of northbound RESTful APIs. This course covers the skills needed to take advantage of these modern network devices. This course will cover raw concepts and technologies with a focus on Python.

Suggested Prerequisites:

While there are no programming, software/dev, or automation prerequisites, students should have basic familiarity with:

  • Good grasp on networking concepts such as device configuration of interfaces, VLANs, SNMP configuration, and basic routing
  • Ability of the Linux filesystem (creating and viewing files, navigating directories)
  • Be aware of how to use a text editor: SublimeText, nano, vi/vim, notepad++, VSCode

Network Automation with Ansible (Beginner)

Enablement Type, Number of Hours: 3-day Bootcamp, 8 hours/day

+
Description:

In this 3-day course, you will learn about foundational skills as they pertain to network automation with Ansible. The network industry is in the midst of change, and the operational models and technologies used to manage and operate networks on a day to day basis are changing too. For over 20 years, the CLI has been the primary means to manage networks. Going forward, network engineers will be using platforms such as Ansible due to its low barrier to entry. This course covers the skills needed to get a jump start with Ansible for Network Automation covering data types, data models, and then in depth look at Ansible. Everything in this course is 100% focused on using Ansible to manage network infrastructure.

Prerequisites

While there are no programming, software/dev, or automation prerequisites, students should have:

  • Good grasp on networking concepts such as device configuration of interfaces, VLANs, SNMP configuration, and basic routing
  • Ability of the Linux filesystem (creating and viewing files, navigating directories)
  • Be aware of how to use a text editor: SublimeText, nano, vi/vim, notepad++, VSCode

Source of Truth and NetBox (Beginner)

Enablement Type, Number of Hours: Workshop, 4 hours/half-day

+
Description:

NetBox is an open source, Source of Truth (SoT) application for network environments that helps define what should be both from a physical and logical perspective including defining sites, regions, racks, rack elevations, device types, and also configuration data. As a central component of the Network Automation Platform, it serves as a Source of Truth and includes a device inventory that is intended to represent the desired state of the network versus the operational state of the network. Upon completion of this training, you will understand the fundamental design philosophy of Source of Truth, Systems of Record and the benefits of tracking both the desired state and the operational state of enterprise networks.

Suggested Prerequisites:
  • Basic networking knowledge, e.g. CCNA
  • Network operations experience, e.g. IP Address Management, Racking, Cabling, etc.

Getting Started with Linux and Text Editors (Beginner)

Enablement Type, Number of Hours: Workshop, 4 hours/half-day

+
Description:

This course explores the tools and techniques commonly used by network engineers to achieve their day-to-day work in a Linux environment. It is designed for experienced computer users who have limited or no previous exposure to Linux. Upon completion of this training you will have a good working knowledge of the Linux command line to create and navigate directories, install Linux and Python packages, and explore common text editors such as nano, vim, and VS Code. This course sets engineers up with some of the basic tools required for the following NTC network automation training events, workshops and daily work activities.

Prerequisites
  • Eagerness to jump into the world of network automation!

Git Fundamentals (Beginner)

Enablement Type, Number of Hours: Workshop, 3 hours

+
Description:

This course introduces the basics of Git: a distributed version control system that helps a software team manage changes to source code over time. A mix of lecture and demo, topics include the history and architecture of Git, working on example projects with Git (cloning and forking), as well as the demonstration of a basic project workflow (init, add, commit, and push operations). The course concludes with practical examples of integrating with a cloud-based remote software repository such as GitHub, BitBucket or GitLab. At the completion of this course, the student will have a solid foundational understanding of how to put Git version control into everyday use.

Prerequisites:
  • Basic operating system command line skills

Developer Environments (Beginner)

Enablement Type, Number of Hours: Workshop, 2.5 hours

+
Description:

A development environment is a combination of a text editor and a runtime implementation. The text editor allows you to write code for your applications. The runtime implementation provides the method for packaging and executing code. A majority of the time in this session will be spent exploring mechanisms to ensure anything you do will execute well in any environment, on any machine, and for any individual. This session explores tools such as Python virtual environments, Docker, and Vagrant. Upon completion of this training you will have a solid understanding of common development environments for network automation ensuring your code or scripts will work seamlessly every time. This workshop includes hands-on lab exercises to increase proficiency in using the developer environment.

Prerequisites:
  • Eagerness to jump into the world of network automation!

Telemetry and Visibility (Beginner)

Enablement Type, Number of Hours: Workshop, 1 hour

+
Description:

Telemetry, most commonly known as network monitoring, assists with critical data-driven decisions about inefficiencies. Telemetry is about gaining and improving visibility into an automated network that will help create a closed-loop system, e.g. continuously collect data from devices to then be able to alert and react to it. Telemetry could also help predict network outages for better provisioning or projection of capacity planning by improving visibility. Upon completion of this course you will be better equipped to identify opportunities where network operations or automation can most improve outcomes and reduce inefficiencies. This session will explore the use of Prometheus and Grafana.

Prerequisites:
  • None

Configuration Templating (Jinja2) Deep Dive

Enablement Type, Number of Hours: Workshop, 4 hours/half-day

+
Description:

Jinja2 is one of the most commonly used templating engines within network automation since it is natively built into Ansible (and built for Python). It enables network engineers to codify those existing “templates” or “standards” that are tucked away in MS Word or notepad files. This session dives deeper into Jinja templating covering more complex templates, Jinja logic, and a deeper dive of Jinja filters, all within the context of Ansible. Upon completion of this hands-on workshop you will be able to create and manage Jinja2 configuration templates that will be used to define, enforce, and deploy enterprise configuration standards.

Prerequisites:
  • CCNA Level Experience

Extending Ansible

Enablement Type, Number of Hours: Workshop, 8 hours/1 day

+
Description:

As you get started with Ansible, you create inventory files and write playbooks using modules and roles. However, you must be aware of how to extend. The next step is learning to extend Ansible. That happens from software extensions deployed with the Ansible plugin system. These important pieces of code augment Ansible’s core functionality such as adding new modules for new device types, new Jinja filters for parsing show commands and managing data, or creating inventory plugins that interface with internal systems. Essentially, Ansible uses plugins to extend what the system is doing under the hood. Upon completion of this full day training course, you will possess the knowledge and skills to write your own plugin to extend Ansible functionality.

Prerequisites:
  • Working knowledge of Ansible having written playbooks and Jinja2 templates
  • Course “Network Programming & Automation” or 6+ months of using Python

Network Services Orchestrator (NSO)

Enablement Type, Number of Hours: Workshop, 8 hours/1 day

+
Description:

This is a one (1) day hands-on course that provides an introduction to using Cisco Network Services Orchestrator (NSO) for network automation with 50% lab time. You’ll learn how to install NSO, configure network devices, and get insight into using templates, services, and services models.

Prerequisites
  • Basic networking knowledge, e.g. CCNA
  • Basic familiarity with XML
  • Understand the role of YANG
  • Understand how to use Text Editors such as Sublime Text and VSCode

NetBox Extensibility

Enablement Type, Number of Hours: Workshop, 4 hours/half-day

+
Description:

NetBox offers several extensibility features for customization. Exclusive of plugins (which have their own dedicated training course), this course will cover the capability to deploy NetBox integrations with NAPALM, user-defined custom fields and links, webhooks, export templates, and custom reports and scripts. This extensibility can be used for integrations with other systems such as ServiceNow, simplified device provisioning, custom reports, and ChatOps alerting. Upon completion of this 4 hour training course you will possess the knowledge and skills to deploy each of these features to extend NetBox functionality.

Prerequisites:
  • Course “Source of Truth & NetBox“ or Familiarity with NetBox, its UI, and general understanding of the NetBox Data Models

NetBox Plugins

Enablement Type, Number of Hours: Workshop, 16 hours/2 days

+
Description:

NetBox Plugins are a more advanced way to add features to NetBox. They are packaged Django applications that can be installed alongside NetBox to provide custom functionality not present in the core application. Plugins can introduce their own models (database), views, APIs. For example, overlay networks (VxLAN), or FW policies, where there aren’t native models and support, they can easily be added to NetBox via a plugin. A NetBox user may opt to install plugins provided by the community or build their own. Upon completion of this one day training course you will possess the knowledge and skills to write your own plugin to extend NetBox functionality.

Prerequisites:
  • Familiarity with Django
  • Course “Source of Truth & NetBox“ or Familiarity with NetBox, its UI, and general understanding of the NetBox data models
  • Course “NetBox Extensibility”

Git & Travis

Enablement Type, Number of Hours: Workshop, 8 hours/1 day

+
Description:

Git is a distributed version-control system for tracking changes in source code during software development. It is designed for coordinating work among programmers, but it can be used to track changes in any set of files. Its goals include speed, data integrity, and support for distributed, non-linear workflows.

Travis is a continuous integration service used to build and test software projects hosted at GitHub and Bitbucket. GitHub will notify Travis whenever new commits are pushed to a Git repository or a pull request is submitted. Travis CI will then check out the relevant branch, build the software and run any automated tests. When that process has completed, Travis notifies the developer with the test results displaying success or failure.

This session will introduce common git-based and Continuous Integration (CI)-based workflows that are common when using Ansible playbooks and YAML files for network automation.

Upon completion of this full-day training you will have the hands-on experience to deploy Git version control and automated testing in a Continuous Integration environment.

Prerequisites:
  • Understanding of programming languages and typical development environments

Automated Testing with Batfish

Enablement Type, Number of Hours: Workshop, 4 hours/half-day

+
Description:

Batfish is a network configuration analysis tool. It simply reads in configuration files (“show run”) and then finds errors and guarantees the correctness of planned or current network configurations. It is often used as part of a deployment pipeline (checking configs pre/post change), but can also model and predict paths even if traffic were to drop or not be permitted through firewalls. It enables safe and rapid network evolution, without the fear of outages or security breaches. Upon completion of this 4-hour workshop, you will have the hands-on experience to use Batfish automated testing in your daily work environment.

Prerequisites:
  • Course ”Network Programming & Automation” or 6+ months of working with Python & Ansible

Building a CI/CD Pipeline

Enablement Type, Number of Hours: Workshop, 8 hours/1 day

+
Description:

This session builds on a working knowledge of Ansible, Python, Git, Batfish, and Travis and focuses on constructing and building a CI/CD for network automation. The pipeline will perform pre-check validation using configuration files and Batfish, and if checks pass, they will be merged into a Git repository. Upon being merged into a repository, you’ll see how a deployment can be triggered along with post-change validation steps ensuring the code, playbooks, and change worked as expected.

Prerequisites:
  • Course ”Network Programming & Automation”
  • Course “Git & Travis”
  • Course “Automated Testing with Batfish”

Nornir

Enablement Type, Number of Hours: Workshop, 8 hours/1 day

+
Description:

This course will explore introductory and intermediate concepts of Nornir, starting with creating an inventory file, and gradually building an inventory file with a single device, then multiple devices and variables that belong to those devices. After focusing on the Inventory file, the class will build networking tasks to make configuration changes, gather operational data, and device facts using NAPALM and Netmiko modules.

Prerequisites:
  • Networking Concepts
  • Linux Basics
  • Python

Telemetry Deep Dive

Enablement Type, Number of Hours: Workshop, 8 hours/1 day

+
Description:

The class will explore some of the advanced concepts of Telemetry. We will start with reviewing Prometheus and PromQL, then work through various hands-on examples around the various expressions and operations that can be performed to manipulate and aggregate your time series data. It will then move into exploring Grafana dashboarding and look at the various components and methods that can be used to create dashboards and visualize your time series data.

Prerequisites:
  • Course “Telemetry and Visibility” (Beginner)