autocon6-naf-framework-do-over.automate-the.net · AutoCon 6

A Network Automation Do-Over with the NAF Framework

Let's rewind. Four of my early automation projects, looked at again through the lens of the NAF Framework: what I used, what I skipped, and what I would do differently.

Claudia de Luna · Scroll to begin · Press → to begin

The NAF Framework

Network Automation 2.0

A Lego worker pushes a stuck car up a hill built from NAF Framework bricks: Presentation, Intent, Observability, Orchestration, Collector and Executor. A Lego worker pushes a stuck car up a hill built from NAF Framework bricks: Presentation, Intent, Observability, Orchestration, Collector and Executor.
Getting to the destination is much easier with the NAF Framework.

Let's rewind

Why a do-over?

First-generation automation is shaped by the task, the devices, and the tools I knew at the time. That is not a failure, but it turns into operational debt.

First-generation automationSolves the problem in front of you. Shaped by the task, the devices and the time.
Good automationCan be consumed and shared easily, is easier to maintain and improve, and builds a base for re-use and new capabilities.

Why a do-over?

Could I have avoided

1

The difficulty in sharing my automation

Hidden assumptions, and no owner.

2

The level of effort in maintenance

No tests, no data model, credentials in code.

3

Confusing state and intent

What the network is, mixed up with what I want it to be.

4

Manual and clumsy handoffs

Every manual step becomes technical debt, friction, and/or risk.

As I look back

The world with the NAF Framework

A magnifying glass over a Python deploy script reveals the six NAF Framework building blocks inside it. A magnifying glass over a Python deploy script reveals the six NAF Framework building blocks inside it.
I now have a vocabulary for patterns I was already using.

Through the lens of the NAF Framework

Four early automation projects

1

What did I use?

Which building blocks were there, even if I never named them.

2

What did I skip?

Which building blocks were missing.

3

What would have been different?

How I would have done it then, with the framework in hand. Not how I would do it now.

4

What technical debt did I introduce?

What it cost later.

01

Chapter 01 · Wrong! We needed network state (actually Observability)

Project 1: Pull show commands

01.A

The project

Python, a text file of IPs and FQDNs, and raw ("semi-structured") text output.

01.B

What got used (but not named)

Used: Collector/Executor. Skipped: everything else.

01.C

What got skipped

Presentation, Intent, Orchestration and Observability.

01.D

The do-over

Parsed and normalized data, a front end, intent by vendor and OS, a real inventory, and a schedule.

01.E

Technical debt

Assume every manual step you execute will become technical debt, friction, and/or risk.

02

Chapter 02 · Merge current state, new template & exceptions into a new device configuration

Project 2: New brownfield configs

02.A

The project

Python and Jinja2, a spreadsheet as the data model, and parsed current configuration.

02.B

What got used

Used: Intent, Executor. Skipped: everything else.

02.C

What got skipped

Presentation (again), Observability, part of Intent, and Orchestration.

02.D

The do-over

Intent that is not a spreadsheet, a front end, and orchestration with testing, triggers and file logistics.

02.E

Technical debt

Intent in state, in code and in a spreadsheet, with no revision control. Don't underestimate file logistics.

03

Chapter 03 · Cabling check, most recent configuration, endpoint survival and identification

Project 3: Pre/post refresh QA

03.A

The project

Project 1 snapshots, parsed to JSON, with a TUI.

03.B

What got used

Intent (disguised as Observability), Collector, Orchestrator and Presentation.

03.C

What got skipped

Executor, Intent and Observability.

03.D

The do-over

Intent separated from state, with programmatic access and a change and transaction log.

03.E

Technical debt

Poor traceability and logging, local output, and a task where we needed a workflow.

04

Chapter 04 · User self-service, on-demand M/A/C

Project 4: User self-service

04.A

The project

A GUI with AAA, observability, a network configuration tool, an intent system, automated change requests and transaction logs.

04.B

What got used

Used: everything.

04.C

What got skipped

<Intentionally left blank>

04.D

The do-over

The client would have rolled it out globally.

04.E

Technical debt

We won't find out.

The building blocks

The NAF Framework

The NAF Framework: Presentation on top; Observability, Orchestration and Intent; Collector and Executor; Infrastructure at the base. The NAF Framework: Presentation on top; Observability, Orchestration and Intent; Collector and Executor; Infrastructure at the base.
Presentation, Observability, Orchestration, Intent, Collector and Executor, on top of your Infrastructure.

Your turn

What's next

What is your "Do Over"?

Understand your scale

How much more than 1?

Don't overthink it

Knowing which questions to ask is the goal, not enterprise-scale everything.

How will you…

Essential framework questions

1

Presentation

How will users access your automation?

2

Intent

How will you define intent?

3

Observability

How will you track network state over time?

4

Collector

How will you collect network data?

5

Executor

How will you execute commands and changes?

6

Orchestration

How will you orchestrate workflow tasks?

Keep going

Resources

05

Join the Slack channel

#wg-network-automation-framework

Questions?

With gratitude

Thank you

This talk would not be what it is without the people who helped me get it to the stage.

01

The NAF team

For the public speaking and presentation coaching, and for building the framework this talk stands on.

02

Dan Farley

For the public speaking and presentation coaching. Practical Development Solutions: practicaldev.com