Data Models


Home » Courses » Building Network Automation Solutions » Data Models

You have to be registered for this online course, or have this course selected as part of an active Expert Subscription to access all course materials.

Data Models

The third module of the network automation online course describes data models and data stores. We'll start with an introduction, figure out what NETCONF, YANG and OpenConfig are, and finish with a data model abstraction case study.

More information...

1:29:43 Data Models and Data Stores

What is YANG? Why is it useful? Where can I store my data? When should I start using a database instead of text files? What about Excel spreadsheets? What’s the difference between relational and NoSQL databases? You’ll get answers to all these questions in this section.

You’ll also learn how to build a data model describing your network and how you can transform a network- or services-focused data model into a device-focused data model (and when that would be useful).

Data Models and Data Stores 2.2M 2017-01-27
Data Models - Introduction 12:53 2017-01-27
Building a Data Model 30:06 2017-01-27
Data Model Transformations 14:12 2017-01-27
Data Description Languages 9:47 2017-01-27
Data Stores 22:45 2017-01-27

1:19:59 NETCONF, YANG and OpenConfig

The guest presentation by Marcel Wiget (Juniper) describes YANG data models, briefly introduces NETCONF, and shows how you can use OpenConfig or your custom data model (described in YANG) to configure Junos devices.

Vendor-Neutral YANG Data Models 1.8M 2017-01-20
Introduction to NETCONF and YANG 26:27 2017-01-27
OpenConfig and Custom YANG Data Models 14:24 2017-01-27
Using YANG Data Models on Junos 39:08 2017-01-27

58:07 Using YANG Data Models on Traditional Network Devices with napalm-yang

While 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 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.

What Are YANG and OpenConfig 15:32 2017-10-13
napalm-yang Basics 10:29 2017-10-13
Advanced napalm-yang Features 10:01 2017-10-13
napalm-yang Integration with Ansible 22:05 2017-10-13
Slide deck: OpenConfig with NAPALM 2.7M 2017-10-09

Understanding Ansible

You won’t be able to follow the rest of this module without a thorough understanding of Ansible. If you haven’t completed the Ansible for Networking Engineers online course, please do it now, and focus on the data modeling part of DMVPN case study.

42:29 Abstract Everything

In this part of the Network Automation Use Cases webinar David Barroso walks you through layers of network automation abstraction: from abstracting vendor-specific APIs with NAPALM to abstracting device configuration differences, and finally abstracting device state into infrastructure data model.

Template Multi-Vendor Deployments 8:52 2017-07-21
Abstract Vendor API 8:42 2017-07-21
Automate Everything 6:35 2017-07-21
Abstract Everything 18:20 2017-07-21

Additional resources

Slide deck 4.1M 2016-11-18
Source code for examples used in this section

1:41:44 Intent-Based Networking and Data Models

Most of the intent-based systems are nothing more than a fancy orchestration system with an abstraction layer. This section describes the many levels of abstraction you can implement in such a system, and the data models you would need to do it.

What Is Intent-Based Networking 8:17 2018-04-04
Device Configuration as Intent 13:47 2018-04-04
Abstracting and Managing Device-Level Intent 19:34 2018-04-04
Network-Wide Intent 23:21 2018-04-04
Automated Remediation 18:52 2018-04-04
Back to Reality 10:31 2018-04-04
Questions and Answers 7:22 2018-04-04

Additional resources

Slide deck 2.9M 2018-01-13
Service models explained (RFC 8309)
YANG model for L3VPN service delivery
YANG model for L2VPN service delivery

34:02 Transforming Data Models with Ansible

Orchestration systems with an abstraction layer usually use network- and services data models to describe the desired system functionality, and device (or node) data models to describe the target state of the system.

In every such system, someone has to perform the mapping between the high-level and low-level data models, and this section describes how you can do that with Ansible.

Transforming Data Models with Ansible 17:28 2017-10-13
Data Models - Discussion Questions 16:34 2017-10-13
Slide Deck: Transforming Data Models with Ansible 2.3M 2017-10-20

1:23:27 Free items Data Center Fabrics Data Model

In another network automation use case Dinesh Dutt talked about automated data center fabric deployments. Focus on how simple his data model is and how he builds a whole fabric from just a few configurable parameters.

Challenges of Data Center Fabric Deployments 20:02 2017-08-10
Separate Data from Code 12:56 2017-08-10
Ansible Tips and Tricks 9:19 2017-08-10
Validation 12:51 2017-08-10
Staging and Production 11:10 2017-08-10
Fabric Deployment Demo 17:09 2017-08-10

Additional resources

Slide deck 1.6M 2017-01-24
Source code for examples used in this section

Free items Hands-on exercises

In the hands-on exercises you’ll build a data model for your network automation solution and store it in one or more YAML files.

Homework: Create an infrastructure or services data model 6.4K 2018-12-24
Submit your homework
Overview: Submitting Hands-On Exercise Solutions

Useful Tips and Tricks

Data (de)Duplication in Network Automation Data Models
Data Munging with Ansible and Jinja2 7.5K 2018-12-24

Optional Materials

1:18:10 Manipulating Network Information with Python

Hans Verkerk guided us you through 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.

Storing Information into Python Data Structures 32:18 2020-02-23
Parsing Device Configuration Files 10:17 2020-02-23
Validating Campus Network Configurations 12:59 2020-02-23
Improved Device Configuration Parsing 5:10 2020-02-23
Migration Example 17:26 2020-02-23
Slide Deck 1.7M 2019-10-25

Additional Informations

Data Manipulation with Python Built-In Superheroes
Source code for live demos

Additional resources

Want to know even more about data models in network automation? You might enjoy these webinars and presentations.

NETCONF and YANG 4:25:00

If you want to know more about NETCONF, watch at least the first part of NETCONF and YANG webinar with David Gee (~ 1 hour if you skip the hands-on part).

You might also want to watch the NETCONF Deep Dive section to understand the NETCONF protocol details.

The Single Source of Truth for Automatic Network Configuration by Andy Davidson
Slides for "The Single Source of Truth for Automatic Network Configuration" presentation
You started this section on %started% Mark completed