All Episodes

September 25, 2024 58 mins

Send us a text

Get your copy of the book here: ebook or print copy

Ever wondered how you can simplify network management while boosting your confidence in code deployment? Join us in this enriching episode of the Art of Network Engineering podcast as we sit down with John Capiobanco and Danny Wade, the brilliant minds behind the book "Cisco PyATS Network Test and Automation Solution: Data-Driven and Reusable Testing for Modern Networks." These experts share the creative journey that turned a simple blog concept into a comprehensive technical guide, revealing the extensive process behind writing and editing their book. You'll gain insight into PyATS, a Python-based framework that promises to revolutionize network automation and testing, making it accessible even for those with minimal Python experience.

Imagine having the power to automate your network tests and validate configurations with ease. That’s what PyATS brings to the table, and in this episode, we uncover its practical applications—from managing disaster recovery facilities to performing routine upgrades on ASA firewalls. Learn how PyATS integrates seamlessly with CI/CD pipelines, Ansible, and Robot Framework, and discover the future of network management with AI-driven functionalities like ChatGPT APIs. With step-by-step guidance on setting up a Python virtual environment and using PyATS commands, we make it simple for you to get started on your automation journey.

But that's not all. We dive into the personal stories of John and Danny, exploring their transition from blogging to co-authoring a technical book. They offer encouragement to network engineers everywhere to start their own writing endeavors, emphasizing the importance of storytelling in making technical content engaging. Hear about the supportive community that has rallied around their project and learn how you can contribute to the conversation. Whether you’re an aspiring writer or a seasoned network engineer, this episode is packed with inspiration and practical advice to elevate your career.

Read a free chapter and buy the book or eBook: https://www.ciscopress.com/store/cisco-pyats-network-test-and-automation-solution-data-9780138031671

More from Danny Wade:
Blog: https://devnetdan.com/
X/Twitter: https://x.com/devnetdan
YouTube: https://www.youtube.com/@DevNetDan

More from John Capobianco:
GitHub: https://github.com/automateyournetwork
X/Twitter: https://x.com/John_Capobianco
YouTube: https://www.youtube.com/@johncapobianco2527


Find everything AONE right here: https://linktr.ee/artofneteng

Mark as Played
Transcript

Episode Transcript

Available transcripts are automatically generated. Complete accuracy is not guaranteed.
Speaker 1 (00:00):
This is the Art of Network Engineering podcast.
In this podcast, we exploretools, technologies and talented
people.
We aim to bring you informationthat will expand your skill
sets and toolbox and share thestories of fellow network

(00:21):
engineers.
Welcome to the Art of NetworkEngineering.
I am AJ Murray and you can findme at all things online at
NoBlinkyBlinky, I am joined thisevening by Kevin.
He is at AdjacentNode.
Kevin, good to see you.
It's been a while.
I'm like I'm almost stumblingthrough this because it's been
so long since I've recorded anepisode.

Speaker 2 (00:41):
It's been a while.
It's crazy.
I'm feeling it long since I'verecorded an episode.
It's been a while it's crazy.
It's definitely a little rusty,a little rust on there.

Speaker 1 (00:50):
I'm going to scrape that off and throw a little
WD-40 on this thing.
I am very excited to be joinedby both John Capiobanco and
Danny Wade.
We've got a very specialepisode we're going to dive into
here right now.
Let's get started on this.
So you guys have recentlypublished a book through Cisco

(01:10):
Press called Cisco Pi ATSNetwork Test and Automation
Solution Data-Driven andReusable Testing for Modern
Networks.
We got to break this down, guys.
So first of all,congratulations on the release
of the book and thank you somuch for spending some time with
us tonight.

Speaker 3 (01:26):
Well, thanks for having us.
This is really exciting for us.
We worked very hard on this andit took probably from inception
to publishing, you know, almosttwo years.
Danny and I actually met justafter Cisco Live last year on
premises to really sit down andtalk about it and make sure he
was interested in joining me andintroduce him to the people at

(01:49):
Cisco Press Nancy, and had awonderful kickoff.
And, no, we're really excitedthat the book finally
materialized after all that workand effort and we had a really
great time writing the book andwe're really excited about the
reaction and the response fromthe community Really a quite
overwhelming response to thebook.
So couldn't be happier.

(02:09):
Aj, thanks again for having us.
Yeah, absolutely.

Speaker 4 (02:13):
Yeah, um, it's.
It's been quite the experiencewith with john.
Um, john has some experiencewriting a book, but, um, this is
my first book first cisco pressbook, for sure, and um, so it's
been pretty cool, it's beeninteresting.
I think a lot of people justassume there's the writing
process and then it goesstraight to publication, and

(02:33):
this was definitely differentfrom that.
The writing process was about,I don't know, I would say about
70% of it and the last 30%, Iwould say, is almost tougher
than the writing process, justbecause of the amount of edits
and different level of edits.
So you have your technicaledits and grammar and so forth.
So it was very interestinggoing through the whole writing

(02:55):
process, but it was awesomedoing it with someone like John.

Speaker 1 (02:59):
Nice, nice, that's great.
So let's start at the beginning.
What is PyATS?

Speaker 2 (03:08):
First of all, is that how you pronounce it, pyats?

Speaker 3 (03:13):
Yeah, so here's the first mistake people make is
they call it PyATS?

Speaker 2 (03:16):
That's what I've been calling it for the last couple
of days.
So, thank you, yes, yes so no,don't feel bad.

Speaker 3 (03:21):
I went around, honestly, six months of making
YouTube videos and public allkinds of stuff and I called it
PyAtts, to the point that CiscoDevNet reached out to some of
the developers and said Couldyou get the name right?

(03:42):
So it is actually Python.
Automatic Testing Solution iswhat it stands for PIATS or ATS.
Now, if anyone's familiar withsomething like Django, which is
a web development framework likea scaffolding included,
batteries included, asabstracted as they can possibly

(04:05):
make it Meaning, it's nice whereyou just say PyATSlearn or
devicelearn, right, pythonicallywriting automation code.

Speaker 4 (04:15):
Yeah, I mean to add to what John said with PyATS.
It's really a big framework.
You can kind of look at it frommultiple angles.
There's a few differentlibraries that are involved
Under the hood.
There's a connection librarycalled Unicon and that deals
with all the device connections.
Think of it as like a pair ofMECO, netmeco and so forth.

(04:37):
And then you have PyATS, whichis the testing framework, the
one that kind of tracks all theresults, tracks all the test
cases and allows you to organizeyour code and write those tests
, test scripts.
And then, lastly, there's likethe PyATS library, or better
known as Genie.
They're kind of moving towardsthe PyATS library instead of

(04:57):
Genie, so you'll kind of seethat throughout the book, the
PyATS library, which is kind ofconfusing, but anyways, that's
where's where kind of yourparsers and your data models.
So John mentioned PyATS Learn.
That's a feature within PyATSthat allows you to learn and
grab data off the network andparse it into a data model

(05:19):
that's vendor agnostic.
So you can learn from Ciscodevices, juniper devices,
whatever says support, a device,and then you get back that
uniform data model.
And the purpose or the reasonfor that is it's very easy to
parse and take that data and dofurther testing or configuration
with.
So there's a lot built in andobviously each one of those

(05:43):
libraries I just mentioned haveindividual features and we talk
a lot about each one of thosefeatures in our book.

Speaker 3 (05:51):
It's partly why it took a year to write, because,
it is fair, we wanted to writelike literally, the book on
PyATS, more from a story and ajourney, and here's a feature
and here's how you can actuallyuse it and here's some code that
goes along with it, as opposedto just, you know, like a raw,
the raw documentation.

(06:11):
So we had our skeleton outlineand I reached out to the PyATS
team at Cisco to say you know,here's I think at the time it
was 15 chapters, here's 15chapters I've come up with.
Did I miss anything?
And they came back with anadditional four or five chapters
that Danny and I should cover.
So we actually reached out tothe development team behind

(06:33):
PyATS and had some insight andhad some guidance.
And really that's why it tookso long, because we really
wanted to cover the entireframework and make a
comprehensive book.

Speaker 2 (06:46):
All right, so I'm not very well-versed in the
programming automation world.
What would you say is theprimary purpose or advantage of
PyATS for the average networkengineer?

Speaker 3 (07:00):
Go ahead, Danny, and I'll follow up.
Go ahead, Danny, and I'llfollow up.
Okay.

Speaker 4 (07:03):
Yeah.
So I guess from a networkengineering perspective, with
kind of minimal programmingbackground or knowledge, I think
you kind of have to think ofautomation as a whole, and a lot
of automation stems fromconfiguration management.
A lot of people jump to likeAnsible, or hey, how do I push
this VLAN across all our devices, and what kind of cool Python

(07:26):
libraries can I use?
This kind of takes?
It has configuration it builtinto the library.
But it's not the main purpose.
The main purpose is to donetwork testing.
And so you might ask yourself,well, what is that?
Think of it as you're runningyour show, your show commands,
your read-only commands, acrossyour entire network and then
you're doing assertions based onthat data that you get back.

(07:49):
So let's say, you want tovalidate that there's a specific
VLAN configured on every device.
You can do that very quicklywith PyATS in a structured way,
in an opinionated way.
It does follow kind of someother Python libraries, so it
doesn't kind of just build astructure on its own.
But you know, you kind of canbuild those tests and it's a

(08:10):
very, very low risk task to doversus configuration management.
That's kind of something Ialways tell people is like if
you're a network engineer.
Start with network testing, andit doesn't have to be PyATS, it
could be a mix of you know,norni or network testing, and it
doesn't have to be pi ATS, itcould be a mix of you know, nor

(08:30):
near pi tests, it could bewhatever.
But start with doing a readonly against your network versus
pushing configuration, becausethat can help you build those
little baby steps towards doingsomething in a more automated
fashion.
So, uh, kind of just validateswhat's on your network and how
your network's actuallyoperating versus what you think
it's operating Because you know.
I'll just take a quick exampleof a lot of network engineers
design a network with a purposeand having a design in place

(08:54):
that they think they know howrouting works, they think they
know how layer two operates.
But using a network testingframework or tools allows you to
validate all that and veryquickly and with, I would say,
almost no risk.
There's always some risk, butminimal risk compared to pushing
configuration.

Speaker 3 (09:11):
Yeah, I would echo that I made a personal mistake
of jumping right into a verycomplex, massive change with
Ansible as my first taste ofnetwork automation and that
actually soured me on the wholedeal of Agile and CICD and
NetDevOps.
And I was soured on it for afew weeks after my first
experience because I chose tomaybe overestimate how easy it

(09:35):
would be to make a massiveconfig change as my first and my
organization and my team'sfirst experience.
I like what Danny's saying here.
And the other thing is, givenits automation, there's certain
things that you just would.
I don't think would be a gooduse of a human's time, right.
So let's take input discards,crc, errors, half duplex.

(09:56):
Do I have the rightdescriptions on the right
interfaces?
Now think about that at scale.
Some of our devices are stacksof switches with hundreds of
ports, and now we think of thatat scale.
Some of our devices are stacksof switches with hundreds of
ports, and now we think of thatacross the enterprise.
You know you're never going tolog into each device and see.
You know how many.
How are my counters doing rightWith a simple PyATS job?

(10:16):
Well, there's 16 or so differentcounters you can test with
PyATS, learn interface andthat's as simple as it is.
One step to connect to yourtestbed and we'll talk about
testbeds in a bit.
So your testbed is yourtopology, all your devices that
you describe, and so you goahead and connect to them and
then you write some simple teststhey're like two or three lines

(10:38):
per test, get the CRC errors onthis interface and, if they're
greater than a threshold or zeroor whatever, fail the test,
mark it as failed.
So then at the end there's alog viewer that's an HTML page
that will show you the resultsof your job and you quite
literally see green red.
Okay, that interface has CRCerrors.

(10:59):
That interface is half duplex.
This interface has adescription that doesn't match
my intent.
So the other thing I'll mentionis, in addition to testing,
which is really low risk forsomeone that's brand new, like
right out of the gate I wouldrecommend testing and also
documentation.
So we write a chapter in thebook that shows you how you can,

(11:20):
because we're gettingstructured JSON back, even just
that JSON file of your routingtable or of your CDP neighbors,
of your BGP neighbors, whatever.
Having artifacts as JavaScriptobject notation is great.
We go a step further and showhow you can call a Jinja2

(11:40):
template API and make CSV filesand make mind maps and make HTML
pages.
So then, if we think of this inthe larger picture, maybe we
store all of those artifacts ina Git repository or GitLab or
something on-prem, right?
So now, every four hours, oreight hours, because it's so
fast, because of the Unicornconnection that Danny mentioned,

(12:03):
you could literally documentyour full network a few times a
day.
And with the Git differentials,what changed, what broke?
Why is this not working all ofa sudden?
Well, I can look at my Gitdifferentials and see oh, danny
added a route, oh, john added anACL, oh, this neighbor got lost
, or whatever.
It literally bubbles to thesurface with these differentials

(12:26):
, right?
And what does everyone complainabout or look for in time of
need?

Speaker 2 (12:31):
Network documentation right and no one has it.
So now you can make it on yourown for free right.
You sold me I'm sold All thestuff I don't have time for and
don't want to do.
Do it with this.
I got it.

Speaker 3 (12:47):
Do it with this, that's right, and then when
you're ready and morecomfortable and confident with
your code.
So it's funny, we talk abouttest-driven development as
something from the softwaredevelopment world, tdd.
That has two main purposes.
One is to keep design simpleand I would argue if you've ever

(13:08):
looked at a PyETS script, right, setup section, testing section
, cleanup section it's quitesimple.
And the other thing, the mainthing about test-driven
development, is to inspireconfidence.
So I would suggest right, welack confidence as network
engineers in our code becausewe're new at it, we might not be
trained at it, we might have noidea what to expect as results,

(13:30):
right, but if we follow thesimple, you know, can I test for
a CRC error and get a pass orfail?
You're going to start buildingconfidence up as you go, but
also confidence in your network.
Well, I know it's not meantimeto innocence, right.
I know it's not meantime toinnocence, right, I know it's
not the network, because mydynamic documentation doesn't
indicate any changes, right.

Speaker 2 (13:52):
Yeah, makes sense.

Speaker 1 (13:53):
So let's walk through a couple of different use cases
and try to show someopportunities for folks
listening to utilize PyATS.
To utilize PyATS, I mean, I'mcoming from professional
services background and I feellike you could easily use this
to test and see if a switchstack replacement was successful

(14:13):
or a router replacement wassuccessful.
Like are all the same routes,there Are all the same neighbors
there and all that good stuff.
So let's walk through somescenarios and some use cases for
it.
I'm sure you guys have plentyof those in the book.
So what are some common usecases for PyATS?

Speaker 3 (14:28):
Well, I think you just described it.

Speaker 1 (14:30):
For maybe somebody with not a ton of.
Well, actually, let's back upone second.
So, before you go and use PyATS, what level of experience does
someone need to have?
Do they need to be a Pythonistaor a Python novice Like?
What kind of skills do peopleneed?
What are the prerequisitesbefore you know?

Speaker 3 (14:57):
stepping into the PyATS world Right.
So me personally.
I approached.

Speaker 2 (14:58):
PyATS without any Python experience.

Speaker 3 (14:59):
Now.
I did have some computerprogrammer experience with other
languages, but I had neverinteracted with Python before.
I also would suggest, in thisday of artificial intelligence,
that you can get some help fromAI to write your Python code
pretty easily.
I would suggest it's a very lowbarrier for entry in terms of
the Python knowledge.
Now there's some things thatcome with Python.

(15:22):
When I say a virtual environmentfor Python, not everyone has
made a virtual environment right.
It's recommended you run PyATSinside of a Python virtual
environment.
How to pip install PyATS rightthat's something maybe not
everyone has done is install apackage.
However, once you've made yourvirtual environment and pip
installed PyATS, you'rebasically ready to go.

(15:43):
The other thing is it has acommand line interface.
So let's say that this ideaappeals to you of getting
structured data back or modelsback Right from a command line.
You can just type PyETS, learn,bgp, testbed and the name of
your testbed right from thecommand line and you'll get JSON

(16:04):
back.
Now what I like to do is dothis all inside of VS Code.
So I'll have VS Code with anUbuntu terminal with PyATS
inside of a virtual environment,and from there I never connect
to switches.
I'm just running PyATS commandsto get the data I need.
And the other thing is I'm notlogging into a switch running
command, pasting it into anotepad file, trying to analyze

(16:27):
it.
You know the friction involvedin extracting data from a device
.
You just run commands and itwill return you a structured
payload.
But I think you mentioned someuse cases.
Danny and I talked about CICDpipelines and a key component of
PyATS are differentials.
So you had mentioned a routerreplacement or upgrade, right?

(16:49):
So in that sort of use case Icould, as one step of my PyATS
code, capture the currentrouting table or neighbors or
convey or whatever, make myupgrade, my software upgrade,
recapture the new state afterthe device comes up and settles
and then do a differentialbetween the two and it will give
you a plus, minus Linuxdifferential.

(17:10):
So minus, minus, minus, threeroutes.
Ah, what happened to thesethree routes between my upgrade?
Like that is a real scenariothat we talk about in the book.

Speaker 4 (17:22):
Yeah, so that's actually what I was going to
touch on there.
So I guess, to answer yourformer question about what kind
of Pythonista do I have to be,you really just have to know how
to install a Python library.
There are multiple ways towrite or create Python or PyATS
test cases, so one being juststraight Python code, and that

(17:45):
involves some Python decoratorsand maybe some more advanced
topics in Python.
So I would say, like there's atleast an you'd have to have an
idea of how maybe classes work,methods, and so there's a small
barrier for that.
However, as John mentioned,there is a CLI available to
where, if you just wanted to seeokay, I'm doing an upgrade

(18:05):
tonight, I want to see what thebefore and after state look like
you can just run PyATS, learnagainst the device and store all
the output in a folder, oressentially a snapshot, and then
do your upgrade, run that samesnapshot again and then do that
differential, and all of thatcan be done in the CLI.
You don't have to touch anyPython code and everything.

(18:27):
All the data gets stored foryou, all the artifacts, all the,
everything from the parse, whatthe parse data looks like, to
where, as John mentioned, thedifferential of like hey, this
was added, hey, this was removedto the console log of okay,
what commands were ran?
What was the raw output?
Like I'm a network engineer, Ineed to see my raw output, all
that stored for you so you cando that from the from, like I

(18:49):
said, the PyATS CLI and there iskind of a few other ways.
There's a really neat featurewithin the library that we have
a whole chapter dedicated to,called PyATS Blitz, and
essentially that's like if youever wrote an Ansible playbook
and if you haven't, it'sessentially just a YAML file.
And if you're like, what's YAML, just take it.

(19:09):
If you take a quick look at anexample, you'll quickly
understand how easy it is.
It's not a programming languagein any way, but essentially you
build a YAML file that's veryhuman, readable and you can just
declare your test cases throughthat.
So PyATS Blitz is another verylow hanging fruit, easy to just

(19:31):
get up and running, and you cantake advantage of PyATS Learn
and all these different thingswe're talking about on top of
creating test cases, so youcould do assertions if you're
looking for a particular value.
You know before and after thatupgrade.

Speaker 3 (19:44):
Yeah, and and just the other thing I want to add is
that there is an entire chapterabout REST APIs and there's
sort of two sides to this coin.
There's the APIs that arewithin PyATS, and we cover quite
a few of those API examples,but there's also ways to
interact with, let's say, restConf or NetConf or GNMI, or,

(20:07):
let's say, your identityservices engine or your Catalyst
Center or your Meraki or yourAmazon S3 bucket, right?
The beauty of it being Pythonis that it really supports REST
API interaction as well, someaning you can write tests
against things other than whatDanny and I have been
traditionally talking aboutrouting tables and neighbors and

(20:31):
next hops and things like that.
You can actually test basicallyany JSON payload.
The key or the key value paircan be tested with PyEPS.

Speaker 2 (20:43):
Yeah, that was gonna be my next question about how
does it integrate with otherautomation?

Speaker 3 (20:46):
systems that are already existing out there.

Speaker 2 (20:50):
Do you guys cover how to integrate that in your book?

Speaker 4 (20:53):
Yeah.
So towards the end of the bookwe have a chapter on CICD
pipelines and you might be like,okay, hold on, I didn't ask
about that.
However, cicd pipelinesessentially is that integration
that you're talking about.
Where in the chapter we talkabout how we can use PyATS
alongside Ansible.
It's just being automated in aGitLab CICD pipeline.

(21:15):
So if you take GitLab CICD outof it, it's just essentially
running the automation for you.
But if you break it down,ansible pushes configuration,
pyats does your network testingvalidation.
So in that chapter it shows howit can be used with other
tooling.

Speaker 3 (21:33):
Yeah, and it does tie in with Danny has a wonderful
chapter on robot framework.
If anyone's out there usingrobot, already, PyATS integrates
with that.
I really learned a lot fromthat chapter because I'm not a
robot user and it was allforeign to me, so that's an
excellent chapter.
The other thing about CICDpipeline like in my previous

(21:54):
life, we had Azure DevOps andyou could package up.
So another chapter in the bookis about containerization and
making Docker containers forPyATS to make it cloud ready or
run it in a Kubernetes clusteror something.
So, yes, it is portable and itcan be a cloud solution as well

(22:16):
as an on-prem solution.
And I'm trying to think aboutsome other integrations.
We also tried to showintegrations with, like, making
chatbots.
So the example in the book isWebEx, but it could be Slack or
Teams or anything else.
Now PyETS has this wonderfulWebEx integration where if you
have a WebEx token and a WebExroom ID, you can append that to

(22:37):
your PyETS job and then theresults of that PyETS testing
will go to your mobile or toyour WebEx.
Of that PI ETS testing will goto your mobile or to your WebEx.
Now that is really handy on amobile device, right On a phone
to have your testing results andyour alerting come right to
your device wherever you are.
It's pretty powerful.

Speaker 1 (22:55):
So completely left field question, because it's a
testing platform, is thissomething that you could use for
network monitoring?
Is this that not?
Not what it's for?
Right?
Because you're talking aboutnotifications going to your
phone, Can you do a periodic orscheduled test and, if the test
fails, send the message?

Speaker 3 (23:11):
Yeah, so we have a chapter on it.
So let me do a quick preamble.
There might be some concernswith some people with experience
with Python that all you'regoing to end up with is
distributed pockets of teststhat different engineers have
and they're all disparate andthey're all over the place and
there's no real organization,right?

(23:33):
The code has to be maintainedand all that stuff, right?
So we wrote a chapter on a toolcalled Expresso, and Expresso
is free, just like PyETS is freefrom Cisco, and Expresso is a
container that you can run thatlets you centralize and schedule
and integrate with WebEx andother platforms as a central,

(23:55):
gui-based dashboard tool.
So that chapter was quitedifficult because it was a lot
of screenshots and you know, Ireally wanted to make it
palatable for people becauseonce you started with a few
tests, like you said, well, thattest was great.
I would love to run that everyfive hours, like why wouldn't?
I want to know if a descriptiongot changed or if I started to

(24:19):
get discards on a port orsomething right?
So I wouldn't say monitoring,but continuous testing.
So, yes, you can enable thecontinuous testing, which kind
of is a monitor in its own way,right, but it's not monitoring
in, in that we're gettingtelemetry and making visual
dashboards out of it.
Right, sure Right.

Speaker 4 (24:40):
Yeah, I would say it more complements your monitoring
tool.
It wouldn't replace your solarwinds or whatever you have for
monitoring, but you know, johnmentioned Espresso you could
also, if you wanted just to runa PyATS job let's say you
created a job you wanted to runyou could easily set up just a
cron job and just have it run,and there we haven't really

(25:01):
touched on it.
But there is a really coolreporting tool the way the, how
reports are archived and way youcan sort through the results.
So the reporting can be.
There's JSON and XML output towhere you can kind of parse,
take those files after a PyATSjob finishes.
All those job results arearchived into the JSON or XML

(25:23):
and then you could useadditional.
It could be Python, it could beanything that can read text
files and you could parse thatdata out and you can present
that data however you want.
So the reporting, the artifactsare there, and so that kind of
leads to I don't want to sayendless possibilities with
integrations, but you could takethose results and you could
send it to a Slack bot or youcould send it to a text message.

(25:48):
So you can get pretty creative.
So those results what I'mgetting to is those results are
saved as artifacts.
It's not just something thatshows up on your screen, you
know in your terminal to tellyou pass or fail.
You can take those archiveresults and figure out however
you want to distribute them.

Speaker 3 (26:08):
You know, one thing that might have an advantage
over a traditional monitoringtool is the dot configure
capability.
So I know we shied away fromdot configure.
However, a testing framework, agood testing framework, should
include the ability to remediateright Now.
In our world of networking,remediation means configuration,
obviously right.

(26:29):
So even just bouncing a port,now how many problems would the
first human reaction be just tobounce the port?
Probably quite a few, right?
You would say, well, justbounce the interface and see if
I get the access point back, orthe phone back, or my neighbor's
back or whatever, right?
So why not fail the test,follow that up with an automated

(26:49):
action of shutting and noshutting the port, and then
retest it again right Now.

Speaker 2 (26:56):
Be very careful here right Now, be very careful here
right, Especially on interfaces.
Went down WAN facing ports andthings like that.
Yes, yes.

Speaker 3 (27:03):
But maybe that's not a great example.
Maybe we're testing and seeingif descriptions match our intent
right.
So in our intent we candescribe that here's router one,
here's gigabit one, and I wantthe description to be WAN,
facing port with, with verizonright, or then the circuit
number or something, and we testit and it's not present.

(27:24):
Well, we can fail the test andthen go into dot, configure and
put that string in from ourintent to remediate that the
description was lost or or notsaved or changed or something
right okay, so, so this isdefinitely something you could
use for configuration, auditingand compliance right.
Oh yeah, Greenfield deployments.
It supports Jinja templates.

(27:46):
So configure supports a fewdifferent methods.
It's a single string, amulti-line string.
So let's say you wanted to shut, no, shut, add a description or
whatever, or a templated configfrom Jinja.
And even more so, if you wantedto, let's say, add a
description, there's even an APIfor that, so you don't even

(28:08):
need to do the configure andthen the description.
You can invoke the PyAPS APIfor interface description and
paste in the description thereas well.
Danny, am I missing any otherconfiguration methods?
I and you can post through arest comp as well.

Speaker 4 (28:24):
Yeah, so you can.
Like you said you can create itcan read from a text file.
So let's you know if you wantedto create a config and and send
it to the device.
You can do it that way.
Yeah, there, there's a wholechapter about configuration
management as well.
It's not, it's a I don't wantto say the strong suit.
You know configurations builtinto the framework to allow,
like what John said.

(28:45):
Like if you're testing andlet's say, eh, let's shut down
that interface which would killthat routing neighbor, and then
do the test again, you knowthat's where configuration would
come into play.
So it's kind of part of yourtesting if that makes sense.
Versus, hey, I want to pushthis VLAN out to everyone, let's
just use PyATS for that.
You could do that.

(29:05):
But StrongSuite is the testingpiece and you're using
configuration to kind ofcomplement that.

Speaker 1 (29:12):
All right, all right.
What's like the biggest,coolest thing you guys have seen
or done with PyATS?

Speaker 2 (29:26):
What's some wow factor here.
I was waiting for Danny.

Speaker 3 (29:27):
So I did something really cool At a previous
employer.
Our disaster recovery facilitywas completely stood up and
managed by PyATS andintent-based code.
So we took the trouble.
Because it was a greenfield, wetook the trouble of making very
good testbed files, the YAMLfile that describes the topology
.

(29:47):
So once we had everythingdefined in that testbed file.
It was a matter of generatingintent and then pushing that
intent through Jinja templates.
So if a disaster was invoked,we could literally stand up the
site in a few minutes, two orthree minutes.
Everything VLANs, vrfs, youname it.
Some other edge cases like ASAfirewalls.

(30:11):
They have PyETS.
You can actually interface withASAs with PyETS, so things that
seem completely out of reach.
Documenting our firewalls.

Speaker 4 (30:21):
We use PyATS to make CSV files and mind maps and
stuff from ASA state where theymay do a routine site upgrade or
kind of what we were discussingbefore, where you're doing

(30:42):
hardware upgrade or so forth,and they had a list of checks
like run these show commands orrun these certain commands and
verify these lines are there,there's no input errors, there's
no this, there's no that, oreven down to environmental
factors, like both powersupplies are operating.
You know, cpu memory look good.

(31:03):
All that can be accomplishedwith PyATSO and I've helped
build test cases and tests tokind of be able to validate all
of that and kind of automatethat process.
And you know it's kind oftwofold it helps the engineers
but then it also helpsmanagement and if there's any
sort of problems with that siteafter a refresh, you can quickly

(31:25):
look at it could be attached toany sort of ticketing system
and just validate.
Oh yeah, we did that.
Here's all the output and thenhere's kind of the tests that we
ran.
So I've done stuff like that.
But honestly the coolest thingI would say is probably writing
that CICD chapter and being ableto see how it can complement

(31:45):
other tools, because I guess I'mkind of in the mindset of every
tool has its purpose and doingsomething really well is better
than trying to do everythingsubpar.
So you know, sticking tonetwork testing, I tried keeping
the example of.
Ansible is a very popularconfiguration management tool
and PyATS, popular networktesting tool.

(32:08):
And let's try to automate theprocess of when we push
configuration run tests against,you know, certain number of
devices at, let's say, at a, asite, and validate everything
looks good and then store theartifacts so that way you can
download the artifacts afterthat.
You know that pipeline runs.
So being able to kind of seethat all the way through I think

(32:29):
is one of the coolest things.
And two other integrations Ididn't mention but I think are
kind of neat facts, one beingthere's a it's called a contrib
package but it's basically acontribution library within
PyATS and there's a way you cangenerate a PyATS testbed from a
NetBox inventory.
So if you're using NetBox youcan quickly spin up that testbed

(32:52):
, really with little experiencewith YAML or anything like that.
Right Essentially just needs anAPI token, go out to NetBox,
spins up your test bed for you.
That's one integration.
And then a second is if you'reusing Cisco CML, you can it can
create a test bed from your lab.

(33:12):
So you know you can do that.
I don't.
I don't know the exact clicksthrough the UI, but there is
actually an API endpoint for anylab that you build in CML.
It will create that for you.
It will create a testbed foryou.
So if you're out there testingwith CML and you're like it'd be
really cool to run PyATSagainst this, it can spin up
that testbed for you and then,like we talked about PyATS,

(33:36):
learn, give it a testbed fileand then just you can see all
the data it collects from yourCMO instance.

Speaker 3 (33:43):
Yeah, there's a couple of other neat things I
had thought about given thechance.
One is a ping test.
I think that's really cool.
It has the ability to ping andit has modifiers such as source
interface or source IP orwhatever.
Now the ping, you get json back, so it's not just like dots and

(34:04):
exclamation marks and then asummary.
It's that information, butrestructured as javascript
object notation.
So success rate, number of droppings um, high, low, medium
response times.
So you could have these littleprobes and once you, let's say
you set a threshold of, I'm justgoing to say, 30 milliseconds

(34:26):
or 10 milliseconds, if I crossover that threshold with my ping
response, fail the test.
I know this link is congested orthere's something going on with
connectivity.
Additionally, there's a traceroute, which is the exact same
thing.
You can run a trace and you getJSON back that you can test.
So let's say you're doing pathanalysis and you want to make

(34:48):
sure the next stop is correctthroughout a path or see where
traffic's going.
You can use trace route testingas well.
And we've made it.
What?
Almost half an hour, and Ihaven't even brought AI up yet.
Well, I have to bring up AI.
Now there is a chapter in thebook, so this is the coolest
thing.
I will show you in the book howto take PyATS and ChatGPT APIs,

(35:12):
or another Python frameworkknown as Langchain, so we can
use.
Frameworks can complement eachother.
So the PyTS framework to getthe JSON data, to load it into a
langchain so we can chat withthings.
So anything that's JSON we can.
There's a JSON motor andlangchain.
We can load it and chat with it.
So why not chat with yourrouting table and I've done many

(35:35):
, many examples of this right.
Do that process and then saywhat is my default route.
If I was a packet going to thisIP, what interface would I use?
You just chat with it, right.
So that is probably the coolestthing I think that I've
personally done with PyATS isactually incorporate it as a
foundation layer for artificialintelligence.

Speaker 2 (35:55):
I was going to say, like testing isn't sexy.

Speaker 3 (35:58):
It's a hard question.

Speaker 2 (36:00):
Aj's question about like what's the coolest thing,
Because testing in itself is notsexy, it's all the stuff that
is really really important for,especially if you're in, you
know, in operations, doing thework, the testing is invaluable.
But to say like what's thecoolest thing?
So I'm glad you brought up theAI integration, because it's a
hard question.

Speaker 3 (36:22):
Well, I think what's cool relates to the individual.
So like, if we take, let's take.
So Danny can speak to this more.
But he had a particular needwhere he wanted to parse the
show inventory command and onthe iOS XE platform there was no
parser for show inventory.
So Danny and this is I read hisblog post about this.
It's out there on the internet,but he also wrote a chapter

(36:44):
sorry, an appendix to the bookabout how to contribute back up
to PyETS.
So you know, an individual mayhave some edge case or some
specific command that they wouldlove to test the wireless LAN
controllers.
Now that they run iOS XE, youcan parse show wireless commands
right.

(37:04):
So it really depends on yourspecific show command and if
there's a parser for it.
But, danny, can you maybe speakto the ability to, if there
isn't a show parser available,how easy it is to contribute?

Speaker 4 (37:18):
Yeah, I'll touch on it real quick.
Basically, in the back end it'salways most of the time it's
regex is the answer, and in thiscase it really is regex.
So regular expressions allowyou to quickly parse through
data to look for kind of key,key points or or key values, and

(37:42):
so with PyATS it's just screenscraping at the end of the day.
For the most part we talkedabout rest conference, some
other ways to interact, but youknow, just as as you would with
like a net Miko, you're logginginto the device with SSH and
your screen, you're just screenscraping what's there and then

(38:03):
you're just screen scrapingwhat's there and then you're
taking what values you'relooking for, just with regex.
So you're kind of parsingthrough each line of output and
saying, hey, is there anythingparticular?
John was close to the commandthat I was looking for.
It wasn't show inventory, itwas actually show license
summary.
Show license okay sorry, whichwe all can laugh at because it
was literally right when theystarted switching over to smart

(38:24):
licensing in that debacle.
So I was trying to validate areall my smart licenses
registered?
And the certain state they haveto be in.
And so, yeah, I wrote a parserto figure out, to get those
values or quickly get thosevalues and validate okay, it is
in a registered state.

Speaker 3 (38:40):
But think of doing that manually.
Okay, cisco's got new licensing.
Someone's got to hit all thedevices and start making tables
in Excel, right?
Who wants to do that right?

Speaker 4 (38:53):
Yeah, pay turn.

Speaker 1 (39:00):
Earlier in chat, dan said that I think tools like
this make documentationgathering and inventory tasks
far more interesting and likelyto get performed.
Once we have an easy,repeatable way to retrieve the
data, we're more likely to do it.
And I mean, I can't agree more.
And just like you guysmentioned, like who, when you
have free time, sits down andthinks I want a document now

(39:21):
Because it's as you saidpreviously, been a very manual
process, so this is a greatsolution to that.
Gentlemen, if you don't mind, Iwant to pivot a little bit to
the writing process and whatit's like to go through and
write a Cisco Press book.
Danny, from one blogger toanother, how does this compare
to writing a blog?

Speaker 4 (39:43):
So it's kind of interesting.
Um, it's funny you asked that,cause that was one of the first
hurdles I kind of had to getover was um, you want, at least
for me and this is just from mypersonal experience I, I felt
like I still needed to put myvoice in there um, a little bit,
but I obviously couldn't be.
I had to be a little moreformal than some of my blogs.

(40:03):
Sure Cause, yeah, you can'tthrow in any sort of emojis or
memes or anything, it's justgood.

Speaker 2 (40:10):
I think it'd be better, honestly, unfortunately,
yeah, yeah.

Speaker 1 (40:14):
Reach a new audience.

Speaker 4 (40:15):
Yeah, but yeah, no, it was a very interesting
experience with figuring outwhere the facts line um, but,
more importantly, what I triedto get through whether it was my
voice or kind of a voice of thenetwork engineer, um is to try
to tell a story, and I know johnwas kind of on the same page

(40:36):
with me as we wrote the book isreading a textbook, especially
nonfiction.
A lot of times they'recertification guides with Cisco
Press.
That's a lot of how peoplerelate to Cisco Press.
I wanted to be able to tell astory to where, if you pick up
this book, like you said,network testing is not sexy,
right, kevin?
Kevin said it so and it'sreally not, and it's just

(40:59):
reading through some of thedocumentation.
But we wanted to be able to tellstories of if you were to do
this or we were talking aboutdocumentation.
We're talking about um,configuring a device, why, why
would you do that and tell astory from?
You know, start to finish, um,a use case, almost, um.
And so we tried doing that ineach chapter, which really
helped.
Helped because I like to writemy blog posts in that way too,

(41:21):
where I'd like to start tofinish.
Here's a story, here's a usecase.
Or here's a really cool thing Ifound online.
I tested out my lab and this iswhere I probably would use it
at work or, you know, inproduction.
So yeah, I think thestorytelling kind of helped
bridge that like informal voicein me that I had from blogging

(41:42):
and then kind of bridged it withthe facts that I had to write
as part of the frameworkdocumentation.
So that I think, helped out alot.

Speaker 2 (41:50):
Was it difficult to have to co-author?
Blogging, you're kind of you'redoing your own thing, but when
you guys are working togetherco-authoring, is it hard to like
, mesh your voices and getcohesive.

Speaker 3 (42:08):
I'll let John answer and I'll just put my two cents
in.
But um, well, I so I didn't.
I, I did not find that.
No, now I think a lot of it hadto do so.
A lot of the success of the bookhas to do with the fact that
danny and I collaborated in thepast on live streams together
and we had some technicalchallenges at times and we tried
to tell a story together andneither one of us wanted a
second job per se, like I didn'twant to do something that felt

(42:28):
tedious or that I have to writeor oh, I got to sit down and do
this chapter this week.
I wanted to enjoy it and Iwanted Danny to have fun, and it
was.
We had a wonderful.
You know, in this day and ageit's not phone calls, right, we
just instant messaging hey, I'mworking on this chapter 10,
hopefully done by Friday.
I had a look at your, yourchapter last week.

(42:50):
I've added some comments andsome edits, so we, we bounced
back and forth constantcommunication throughout the
thing.
Now I got to be upfront.
I'm not much of an editor.
I'm not much of for readingsomeone's chapter, like Danny's
chapter, and saying strike thisand add that and change this and

(43:11):
you should have said this, andthat's just not in me.
I don't like to judge that workOther than you know, obviously,
if there's some additionalideas or some things that maybe
were missed or that I had doneor had experience with that
Danny hadn't seen in PyATS.
And, equally Danny, the editshe gave were very similar.
There was no like he wasn'tlike the English professor

(43:33):
taking the red marker to my work.
So I enjoyed the process.
I would write another book withDanny.
That was enjoyable.
Um, I found it easier to dothis in collaboration with
someone than my first book thatI wrote as an individual alone.
It was.

Speaker 4 (43:50):
it was actually quite a bit easier to collaborate
yeah, so I was I would saydefinitely echo john like
Working with John was very easy,it was awesome, it was like
writing a book with your goodfriend.
No, I couldn't really even makeup anything, to be honest.
You could try.

Speaker 2 (44:11):
I mean come on.

Speaker 4 (44:13):
Well, john did tell me no.
No, it was a very easyexperience and I think the
difference with this sort, thissort of book with co-authoring,
is we kind of figured out thechapters early on, who would
write what, and so each chapterthere was kind of a.
There were some like chapterswhere we would say, all right,
you'll see this concept more indetail further in the book, you

(44:35):
know here, further in the book,you know here.
But most of them were kind ofself-encapsulating of here's a
topic, start to finish, tell thestory, explain how this feature
works and then kind of wrap itup and then you know it could be
me or John's chapter that'snext.
But it was kind of cool though.
You know I I learned a lot fromJohn's chapters since we were

(44:56):
writing, you know, aboutdifferent topics.
I learned a lot and, like hementioned, he has a whole
chapter about AI.
I'm definitely not as involvedwith AI as John is, so it was
really cool to see hisperspective and things that he's
actually wrote, like there'scode in that chapter that works
and that he used.
So it was really interesting tokind of learn from him really

(45:17):
along the way.

Speaker 3 (45:19):
I think what helped too is that we both are.
I can speak for both of us.
I think we really tookownership of the chapters.
So, like Danny mentioned that,we had the outline, and that
really helped.
Here's what we want to write.
And then it was kind of like, Imean, I did a little bit, maybe
more forcefully say here's theones I want to write, here's the

(45:41):
ones I don't want to haveanything to do with.

Speaker 2 (45:42):
Hopefully you want to write them.

Speaker 3 (45:44):
And here's some other ones that are somewhere in
between.
Right, maybe you could writethem or I could write them.
We'll flip a coin or something.
But there were certain topicsthat I didn't really want to
have anything to do with becauseof a lack of expertise.
I wanted Danny to write thembecause I had read his blog
posts, right, seen him on hisstreams talking about the topic.
Why would I write that chapter?

(46:05):
He's already got an amazingblog about contributing to PyTS
or Clean or some of these othertools.
Right, so that really helpedwas taking ownership and really
having a clear delineation ofhere's the 12 I'm going to write
, here's the 12 you're going towrite.
Here's our timeline accordingto Pearson's contract that we
have, right, a certain number, acertain percentage of chapters

(46:26):
done by a certain date.
No, it was good.
It was a really good experience.

Speaker 2 (46:31):
Now that the book's been released and people are
reading it, have you had anyfeedback?
Would you change anything?

Speaker 3 (46:38):
I, you know.
I wanted to add more.
You've got to at some pointyou've got to say, okay, like
that's enough, we have to cut itoff, right?
So I guess I wish I had writtena little bit more about using,
like a chapter on Ansible usingthe Genie libraries or the PyETS
libraries libraries or thePyATS libraries, like just a

(47:04):
chapter on a PyATS or, excuse me, an Ansible playbook, and how,
inside of an Ansible playbook,you can invoke PyATS code.
That was one thing that Ipersonally chopped.
I didn't want to muddy thewaters between two different
frameworks, so I thought itmight be more confusing than
helpful.
But in terms of feedback, Imean I see the posts, people
sharing selfies of them gettingtheir books all over the world.

(47:25):
Someone said that it's changedtheir life.
Other people are saying thatI'm finally documenting my
network.
No, it really is.
It's been really special.
The response all over the worldhas been really heartfelt, like
.
It means a lot to me.
We didn't do this certainly tomake a lot of money off of it.

(47:46):
It was a passion project.
We had a similar goal of tryingto help other people adopt
network automation broadlyspeaking, and this happens to be
the tool that we both love andenjoy working with.

Speaker 4 (48:02):
Yeah, I mean, we haven't really received I would
say, I don't, I at least Ihaven't seen it any sort of true
negative feedback Like hey,this sucks, it's the bearded guy
, awful writer, and what are youdoing?
You know I didn't, we didn't getany of that, at least that I've
seen it's been.
I mean, just like you guys haveexperienced, aj and Kevin, like

(48:24):
the network community is isalways is pretty tight and very
encouraging and supportive, andwe felt that on, you know,
twitter, on Twitter X, whateveryou want to call it On LinkedIn,
we've definitely, you know,getting direct messages, just a
bunch of support, and we reallyappreciate all the words that

(48:45):
we've, you know, kind wordswe've received.

Speaker 2 (48:48):
Yeah, it's amazing how networking is such a huge
field but it feels like a verysmall community.
It's very weird in that way, soit's been very cool.
I also saw these selfies andthat's how I knew the book got
released, because I startedseeing the selfies everywhere
people taking pictures of thebook, but we.

Speaker 3 (49:03):
As a cisco press author, you get a certain number
of copies of your own book andum I I started to see selfies
and I'm like I don't even havemy books.

Speaker 2 (49:12):
I don't even have my.
What's going on here, all these?

Speaker 3 (49:15):
people are getting their copies early before me, so
that was a little weirdactually to say like can I get a
copy please?

Speaker 1 (49:24):
You know I I I'm excited.
I haven't read the book yet Ido plan to read the book.
I think things like this breakdown barriers right.
Like you guys are providing avery instructional book on how
to utilize PyATS, why you wouldwant to and how to go about
doing that, whereas you knowwhen something like this first

(49:47):
comes out, you know there'searly adopters, there's people
who really understand Python andprogramming and can look at
something like this and say,okay, I know how to use this,
whereas you know you have somemore novice people that could
really use something like this,but they don't know how to get
started.
And you guys are doing that forus, and and so, on behalf of
the network engineeringcommunity, thank you so much for

(50:08):
because I yeah you know,honestly, like while I was doing
the pro services stuff, Ilooked at PyATS.

Speaker 3 (50:14):
I'm like, oh my God this could like do so many
things for me and I'm like Idon't know how to do this.
Well, it's a very within theniche of networking right, the
even smaller niche of automationand now an even smaller niche
of PyATS.
Now, I don't know.
I think I can say this nowactually the fear of reprisal.
I don't think Cisco has done avery good job advocating

(50:38):
promoting marketing, lettingpeople know that there is PyATS.
Now, it's not a revenuegenerating thing for them, right
, so right, they're going tolose money for all the marketing
they put in behind some bigPyATS tour, right so it's almost
a word of mouth tool.
Or, as you start searching fornetwork automation, maybe you

(50:58):
stumble across some blog or somevideo or something mentioning
pi ets.
I know, danny and I have beentalking about it non-stop since
about 2019, but we're just acouple of people, right like.
We don't have that muchinfluence.
So I'm hoping that an actualcisco press book, right with the
name on the cover of the book,will help people understand that

(51:19):
.
Hey, wow, cisco has anautomation framework in Python.
Cool, and it's free and it'srelatively easy to use.
So you know, I don't.
I sort of wanted to popularizeAnsible with my first book and
now I have a similar goal oftrying to popularize PyETS,
let's say, Very good.

Speaker 1 (51:40):
I want to take a moment to remind our listeners.
If you want to support the show, the easiest way you can do
that is give us a like orsubscribe and follow us wherever
you find our podcast and yourfavorite podcatcher.
If there's any way to rate theshow, like in Apple or Spotify,
please go ahead and do so.
That really helps us out a ton.
Gentlemen, as we start to wrapup our hour here, is there

(52:03):
anything about PyATS that weshould have asked you, that we
didn't, or the writing process?

Speaker 3 (52:09):
No, I don't think so.
But if you are inspired andwant to try your hand at writing
, honestly it's like anythingelse you just sit down, dedicate
half an hour a day.
An hour a day, if you know thefact that Danny and I people
that are very much like you,network engineers we're not
special in any way, we're justvery passionate and open about

(52:30):
our knowledge, right?
So you know the KDP platform onAmazon, kindle Direct
Publishing if you want topublish your own self-publisher
book that's how I got startedCisco Press is always taking
proposals for Cisco technologiesor adjacent technologies for
Cisco Press books If the writingis something you're interested

(52:52):
in, even if it's non-technicalif you just want to tell your
own story or write a short storyor something you know, the
barriers are very low to entryto get started as authors.
The only other thing I guess I'dmention about PyATS is that
there is Danny and I both on ourGitHub repositories which we
can put in the notes, have a tonof code.

(53:15):
So if you're curious where toget started or you want to see
what some of this code lookslike, just hop on our GitHub
repositories and you can getstarted there.

Speaker 4 (53:29):
Yeah, I think we covered everything, pyats.
I just want to say that ifyou're interested in writing or
you know you've appreciatedpeople's blog posts over the
years.
Like John said, it could betechnical, non-technical, but
let's just use technical as ourexample.
Try to get started on your own.

(53:49):
I'll say AJ kind of helped meget started with my blog years
ago, and so John referenced myblog a few times in this episode
.
I just kind of wrote and postedand published.
You know I didn't really thinktoo much about.
You know I wanted to make sureit was factual and correct.
You know I'm not trying to postthings that are incorrect

(54:10):
online, but I wasn't worriedabout oh, does this sound right?
Is it too long?
Is it just just write and postand share?
Reach out to people online.
You know I'll sign myself up Ifyou reach out to me and say hey
, I wrote a blog post, could youreshare it or could you read it
?
I've done it in the past and Iwant people to not feel too

(54:30):
nervous about it.
Especially blogs, they'resupposed to have some sort of
personality in them.
You know they're not supposedto be like a nonfiction book
where it's just facts, facts,facts.
So you know, the more memes,the more emojis, the more just
relaxed conversation in a blogpost, the better.
So, you know, don't feel toonervous, or hey, this isn't

(54:53):
right for me.
Just spin up, you know,wordpress site, whatever,
something gets started and juststart posting.

Speaker 3 (54:59):
Yeah, we need more of it.
Every voice counts.
We need much more activity fromfrom network engineers to
emerge as leaders and emerge inthe community.
If you're lurking and you andyou need some inspiration, look
at the four of us.
Look at the platform the art ofnetwork engineering is built in
just a few.
You know just a short period oftime.
Platform the Art of NetworkEngineering is built in just a

(55:20):
few.
You know just a short period oftime, the followers that we
have and the LinkedIn influencethat we have.
It takes a bit of effort but wereally need it.
We as a network community havehad a rough, a very rough 12
months with layoffs and with youknow, people passing in the
community, community leadersthat have passed on.
So the more the merrier, themore voices we have, the better.

(55:42):
The more diverse conversationswe have, the better, I think,
the only thing we have as humansis the ability to communicate
with each other, right and now,in this day of mass social media
platforms, we can all have avoice and contribute to the
conversation, hopefully in apositive way right.

Speaker 1 (55:59):
Yeah, I love that.
I mean.
Very well said, john, and I'lljust throw it out there again.
If anybody wants to write butmaybe doesn't want to have a
blog, the Art of NetworkEngineering blog is always open
for submissions.
So if you have an idea for anarticle, you want to write
something up and again, youdon't want to go through the
trouble of maintaining your ownwebsite or anything like that,

(56:20):
please reach out.
Hit us up on our contact page.
We're more than happy to takesubmissions and post whatever
content network engineeringrelated on our own blog for the
community to consume.
That's awesome.
The book is Cisco Pi ATSNetwork Test and Automation
Solution Data-Driven testing formodern networks.

Speaker 2 (56:41):
It's not a math at all.

Speaker 1 (56:43):
I know right, find it on ciscopresscom if you're
looking to purchase it.
Gentlemen, where can peoplefind more of you, danny?

Speaker 4 (56:54):
I'm kind of pretty much on Twitter X and LinkedIn,
so DevNetDan is my Twitterhandle.
Um LinkedIn, it's Daniel Wade,but uh, you'll, you'll be able
to find me on there, john.

Speaker 3 (57:06):
Yeah, John underscore capital Bianco on Twitter and I
do have automate your networkca.
Get hubcom slash.
Automate your network for mycode.
I don't do a lot of blogginganymore but occasionally I will
break out some blogs onautomateyournetworkca.
The primary spot to find melately is YouTube.
I make a lot of short and longform videos on YouTube, mainly

(57:28):
primarily lately related toartificial intelligence, but
that's probably the best placeto find my content lately is on
YouTube.

Speaker 1 (57:36):
Awesome, and we will be getting a few copies of the
book to give away.
I don't know if there'll bephysical or digital downloads,
but we'll have those ready bythe time we release this episode
.
So, folks in the live chat here, please join us back on our
social media platforms to giveaway some of these books.
We're really excited to do that.
Gentlemen, thank you so muchfor joining us.
This has been a lot of fun andwe'll see you next time on

(57:57):
another episode of the Art ofNetwork Engineering podcast.
Hey everyone, this is AJ.
If you like what you heardtoday, then make sure you
subscribe to our podcast andyour favorite podcatcher, smash
that bell icon to get notifiedof all of our future episodes.
Also, follow us on Twitter andInstagram.
We are at Art of NetEng, that'sArt of N-E-T-E-N-G.
You can also find us on the webat art of network

(58:21):
engineeringcom, where we postall of our show notes.
You can read blog articles fromthe co-hosts and guests and
also a lot more news and infofrom the networking world.
Thanks for listening.
We'll see you next time.
Advertise With Us

Popular Podcasts

Dateline NBC

Dateline NBC

Current and classic episodes, featuring compelling true-crime mysteries, powerful documentaries and in-depth investigations. Follow now to get the latest episodes of Dateline NBC completely free, or subscribe to Dateline Premium for ad-free listening and exclusive bonus content: DatelinePremium.com

Stuff You Should Know

Stuff You Should Know

If you've ever wanted to know about champagne, satanism, the Stonewall Uprising, chaos theory, LSD, El Nino, true crime and Rosa Parks, then look no further. Josh and Chuck have you covered.

Intentionally Disturbing

Intentionally Disturbing

Join me on this podcast as I navigate the murky waters of human behavior, current events, and personal anecdotes through in-depth interviews with incredible people—all served with a generous helping of sarcasm and satire. After years as a forensic and clinical psychologist, I offer a unique interview style and a low tolerance for bullshit, quickly steering conversations toward depth and darkness. I honor the seriousness while also appreciating wit. I’m your guide through the twisted labyrinth of the human psyche, armed with dark humor and biting wit.

Music, radio and podcasts, all free. Listen online or download the iHeart App.

Connect

© 2025 iHeartMedia, Inc.