David, thank you so much for having me! It was great meeting you for the first time and talking to you! I am looking forward to our next meeting (hopefully at CLUS!)
I've noticed your english and accent doesn't have to be as good as a native english speaker, because when you master your craft. It really puts your English on top of the world. It was my bigest concern especially if I have to apply for a job. Thanks Dmitry for reminding me once more and great interview David.
Menu: Live Stream on Twitch: 0:32 Dimitry's programming background and how he got into Cisco: 1:00 Are you a Networker or Programmer: 6:32 Nornir: 8:25 Why is Python better than Ansible? 11:16 Why is Nornir better (threading and other options)? 16:25 Is Nornir a Python version of Ansible? 22:27 Can someone start with Nornir? 22:47 Just get started: 28:28 Are certifications important? 30:18 Reasons to get certs: 32:40 Would you still go for CCNA, CCNP, CCIE today? 34:08 What is machine learning and AI? 36:50 Dmitry's details: Twitter: twitter.com/dmfigol Twitch: www.twitch.tv/dmfigol LinkedIn: www.linkedin.com/in/dmfigol/ TH-cam: th-cam.com/channels/S8yWZCX-fdxft8yFAffZCg.html Nornir: nornir.readthedocs.io/en/stable/ Netmiko: github.com/ktbyers/netmiko NAPALM: github.com/napalm-automation/... Pyats: developer.cisco.com/pyats/ Network to Code slack group: slack.networktocode.com/ Note: Travel and conference access courtesy of Cisco.
We use Netmiko a lot in service provider land and is the only way to work in scale when you learn to multithread or turn you simple script into a worker microservice that can instantly scale to thousands for really big jobs. I have been looking at Nornir and it's nice that it affords multitasking to a new programmer without having to manage it. We already wrote our own multi processing and scaling solutions to employ Netmiko among other libs and they live in a datacenter behind an API service. The way Python threads share the parent process fits fairly well with the asynchronous nature of network device interaction. Pythons dreaded GIL is not as much of barrier in this specific use case unless you crank up the worker threads too high and/or they are too I/O heavy. Using multiprocessing can multiply your thread use further by essentially running the same script module multiple times in their own separate processor cores and interpreter instance to split the work but is a little harder to build and manage. You have to plan and break up the structure of your modules more carefully to fit that work style to get the best performance. I encourage new programmers to learn to multithread Netmiko as soon as they master doing simple tasks because it's the easiest to understand and implement. You will learn a lot and have a powerful tool at your disposal when you are done. Ansible is cool but it is not always the best tool for the job but is good to know because its popular. YAML is a great config language but when you start mixing programming logic into your business info it can become an ugly mess to maintain/test and is only so flexible. CSVs and spreadsheets make great quick disposable job controls and data sources but are best for human data exchange then digested into a system. Whatever you use make sure to get version control like Git. Netdevs should eventually learn at least the basics of using a database as their storage/data source because that's what SDN config orchestrators really are; databases with worker programs that act on that data wrapped in an API. A DB connection works like Netmikos connection handler and just as simple to learn. Python comes with SQLite3 built-in and is a portable single file database so you don't need a server or VM/emulation to use. You will learn the basics of SQL query languages and how to make you own simple databases to power your dream app. Using a real DB is a trivial step after that and allows you to do datacenter scale jobs like auditing 10K routers in 10 minutes. You can mine that data at will to generate reports for audits or learn insights about your network. DBs make a great I/O device for automation work because of its asynchronous behavior like network devices so it plays nicer with threading and can handle scale built in unless you use Oracle then you are doomed to fail because they ruin everything they touch.
This was a very good interview. Dmitry knows so much, it's difficult to get everything in one interview. Again python scripting is shown importance in network automation. It's fabulous to meet all networking gurus through your videos David. Thanks to you.
I’m taking Kirk Byers classes right now, and information like this is incredibly helpful. A perspective from someone who has professional experience using Python, Nornir, Ansible
David thank you for interviewing one of our industry's mentors and a trail-blazer, Dmitry! You're an excellent interviewer, and the questions asked of Dmitry are questions many of us are asking ourselves and considering the implications of. This is an excellent, propitious video!
Very good interview, Dimitry is very good I attended one of his presentations last year at CLUS on net dev and Asyncio I used his recommendations for logging into 200 routers in 30-45 minutes to 2-3 minutes which turn help we auto close and auto fix of devices will definitely look into the nornir!!!
Wow, that's so cool! I can't express how glad I am to hear that such a niche session about Python asyncio made a difference for your network automation tasks.
Hi David.. we never see people like you for getting of best in everything with the free cost channel in this commercial world. You are giving best to us with free cost & always thankful for lot of your hard work. Thank you so much.
great interview, great topics. Thank you guys! You´ve just said all I think about ansible and all the pain I feel when I have to make hard stuff (and debugging it...)
I agree with Dmitry that using raw python is better than ansible. However, I now choose Golang hands down. Goroutines will kill python threads any day....even python’s async io.
Hello David, I'm not sure if you will this message but I just want to say it! * - You have chosen NOT to monetize your TH-cam channel. For this I respect you a lot. Ads are the reason why I have unfollowed guy with big beard and will never ever touch his videos. Is he despred to earn money from TH-cam while feeding his audience with 3-4 advertisments per video? It is really annoyng to learn something while ads interupt my concentration. * - Thank you for choosing NOT monetize your TH-cam channel! I'm just one of the many students who appreciate your decision to NOT feeding us with TH-cam ads, but rather with value content. * - I have BIG respect for you!!! Thank you Dave!
Hello David, so i am assuming from the courses that you have on udemy that you have spent a fair share amount on stuff like netmiko/napalm as well as ansible, i am curious what is your opinion about this 'rather direct python instead of ansible' subject?
I personally prefer Python. Especially with newer options like Genie and Nornir. Makes things a lot easier and I have a programming background so I prefer being able to "directly control my own destiny". However, a lot of others prefer Ansible.
@@davidbombal top, thx for the reply it gives a good insight about other peoples opinions. by the way your udemy course about python network automation is awesome, so are Dmitry Figol his streams.
David...how about a combination of the two for being a network automation engineer, for ex. get your CCNA or CCNP and then Python programming education and do both! A hybrid of the two. I like networking and programming both but I don't want to fry my brain to get CCIE. Would CCNA and good Python programming skills be enough? Why are you always pushing the CCIE?
I have often said and so have most of the people I interviewed that you should get your CCNA & CCNP and work on Python. For example, once you have your CCNA, then start with Python and try to learn Python at the same time as studying for your CCNP. Best to have both. I only mention CCIE in a lot of videos because people ask me about CCIE vs Python. It is up to you if you want to get a CCIE - I am not pushing everyone to become a CCIE - it is your choice :)
25:42 Right Ansible version Dmitry , made me chuckle, Ansible is great but troubleshooting is pain ( I know -vvvv switch) , Also once you have this playbook working different version of ansible !!!! .
I think certifications are a guide and show the level of knowledge you have and from there depends on learning more and expand on the level of knowledge you have. For me I think is a good way to measure a skill and the expansion of knowledge and skills will always depend on the person.
He mentioned an article at about 21:34 for nornir to update Operating Systems. Could you also post that link? Great interview! I am standing this up as I watch this!
I have an iPhone X and iPhone XS Max which I use for recordings. The one camera in this video is an iPhone XS Max and the audio recordings are taken on an iPhone X.
David, thank you so much for having me! It was great meeting you for the first time and talking to you!
I am looking forward to our next meeting (hopefully at CLUS!)
Great interview bro
It was fantastic meeting you and talking with you Dmitry! Thank you for sharing your knowledge with us all.
I've noticed your english and accent doesn't have to be as good as a native english speaker, because when you master your craft. It really puts your English on top of the world. It was my bigest concern especially if I have to apply for a job. Thanks Dmitry for reminding me once more and great interview David.
Menu:
Live Stream on Twitch: 0:32
Dimitry's programming background and how he got into Cisco: 1:00
Are you a Networker or Programmer: 6:32
Nornir: 8:25
Why is Python better than Ansible? 11:16
Why is Nornir better (threading and other options)? 16:25
Is Nornir a Python version of Ansible? 22:27
Can someone start with Nornir? 22:47
Just get started: 28:28
Are certifications important? 30:18
Reasons to get certs: 32:40
Would you still go for CCNA, CCNP, CCIE today? 34:08
What is machine learning and AI? 36:50
Dmitry's details:
Twitter: twitter.com/dmfigol
Twitch: www.twitch.tv/dmfigol
LinkedIn: www.linkedin.com/in/dmfigol/
TH-cam: th-cam.com/channels/S8yWZCX-fdxft8yFAffZCg.html
Nornir:
nornir.readthedocs.io/en/stable/
Netmiko:
github.com/ktbyers/netmiko
NAPALM:
github.com/napalm-automation/...
Pyats:
developer.cisco.com/pyats/
Network to Code slack group:
slack.networktocode.com/
Note: Travel and conference access courtesy of Cisco.
We use Netmiko a lot in service provider land and is the only way to work in scale when you learn to multithread or turn you simple script into a worker microservice that can instantly scale to thousands for really big jobs. I have been looking at Nornir and it's nice that it affords multitasking to a new programmer without having to manage it. We already wrote our own multi processing and scaling solutions to employ Netmiko among other libs and they live in a datacenter behind an API service. The way Python threads share the parent process fits fairly well with the asynchronous nature of network device interaction. Pythons dreaded GIL is not as much of barrier in this specific use case unless you crank up the worker threads too high and/or they are too I/O heavy. Using multiprocessing can multiply your thread use further by essentially running the same script module multiple times in their own separate processor cores and interpreter instance to split the work but is a little harder to build and manage. You have to plan and break up the structure of your modules more carefully to fit that work style to get the best performance. I encourage new programmers to learn to multithread Netmiko as soon as they master doing simple tasks because it's the easiest to understand and implement. You will learn a lot and have a powerful tool at your disposal when you are done.
Ansible is cool but it is not always the best tool for the job but is good to know because its popular. YAML is a great config language but when you start mixing programming logic into your business info it can become an ugly mess to maintain/test and is only so flexible. CSVs and spreadsheets make great quick disposable job controls and data sources but are best for human data exchange then digested into a system. Whatever you use make sure to get version control like Git.
Netdevs should eventually learn at least the basics of using a database as their storage/data source because that's what SDN config orchestrators really are; databases with worker programs that act on that data wrapped in an API. A DB connection works like Netmikos connection handler and just as simple to learn. Python comes with SQLite3 built-in and is a portable single file database so you don't need a server or VM/emulation to use. You will learn the basics of SQL query languages and how to make you own simple databases to power your dream app. Using a real DB is a trivial step after that and allows you to do datacenter scale jobs like auditing 10K routers in 10 minutes. You can mine that data at will to generate reports for audits or learn insights about your network. DBs make a great I/O device for automation work because of its asynchronous behavior like network devices so it plays nicer with threading and can handle scale built in unless you use Oracle then you are doomed to fail because they ruin everything they touch.
Fantastic, real world example! Thank you for sharing :)
This was a very good interview. Dmitry knows so much, it's difficult to get everything in one interview. Again python scripting is shown importance in network automation. It's fabulous to meet all networking gurus through your videos David. Thanks to you.
Dimitry, you're a smart guy! This everchanging world needs more people like you to meet chanllenges!
I’m taking Kirk Byers classes right now, and information like this is incredibly helpful. A perspective from someone who has professional experience using Python, Nornir, Ansible
How was that class? I was thinking taking it too but needed a review.
The class was Invaluable to my career and growth. I can’t recommend it enough.
@@davidcarrasco Thank you. I'm also going to take it. Thank you.
@@nycalien let me know how it goes. I’d be super curious
Wow, what an amazing interview. Dmitry is incredibly sharp, easy to understand, and inspiring all at the same time!
Thank you, Sir, for another great meetup!!!
Very well done, thank you. The video description also is quite perfect!
David thank you for interviewing one of our industry's mentors and a trail-blazer, Dmitry! You're an excellent interviewer, and the questions asked of Dmitry are questions many of us are asking ourselves and considering the implications of. This is an excellent, propitious video!
Thank you! Dmitry is amazing! Hope you are well?
Thanks for the timestamps, excellent interview
really great to see someone so obviously highly intelligent yet also grounded and humble. Great interview
Very good interview, Dimitry is very good I attended one of his presentations last year at CLUS on net dev and Asyncio I used his recommendations for logging into 200 routers in 30-45 minutes to 2-3 minutes which turn help we auto close and auto fix of devices will definitely look into the nornir!!!
Wow, that's so cool! I can't express how glad I am to hear that such a niche session about Python asyncio made a difference for your network automation tasks.
Hi David.. we never see people like you for getting of best in everything with the free cost channel in this commercial world. You are giving best to us with free cost & always thankful for lot of your hard work. Thank you so much.
great interview, great topics. Thank you guys! You´ve just said all I think about ansible and all the pain I feel when I have to make hard stuff (and debugging it...)
I agree with Dmitry that using raw python is better than ansible. However, I now choose Golang hands down. Goroutines will kill python threads any day....even python’s async io.
Nice I'll have to look into
Hello David, I'm not sure if you will this message but I just want to say it!
* - You have chosen NOT to monetize your TH-cam channel. For this I respect you a lot. Ads are the reason why I have unfollowed guy with big beard and will never ever touch his videos. Is he despred to earn money from TH-cam while feeding his audience with 3-4 advertisments per video? It is really annoyng to learn something while ads interupt my concentration.
* - Thank you for choosing NOT monetize your TH-cam channel! I'm just one of the many students who appreciate your decision to NOT feeding us with TH-cam ads, but rather with value content.
* - I have BIG respect for you!!!
Thank you Dave!
LOL "guy with big beard"... we all know who :p
Hello David, so i am assuming from the courses that you have on udemy that you have spent a fair share amount on stuff like netmiko/napalm as well as ansible, i am curious what is your opinion about this 'rather direct python instead of ansible' subject?
I personally prefer Python. Especially with newer options like Genie and Nornir. Makes things a lot easier and I have a programming background so I prefer being able to "directly control my own destiny". However, a lot of others prefer Ansible.
@@davidbombal top, thx for the reply it gives a good insight about other peoples opinions. by the way your udemy course about python network automation is awesome, so are Dmitry Figol his streams.
David...how about a combination of the two for being a network automation engineer, for ex. get your CCNA or CCNP and then Python programming education and do both! A hybrid of the two. I like networking and programming both but I don't want to fry my brain to get CCIE. Would CCNA and good Python programming skills be enough? Why are you always pushing the CCIE?
I have often said and so have most of the people I interviewed that you should get your CCNA & CCNP and work on Python. For example, once you have your CCNA, then start with Python and try to learn Python at the same time as studying for your CCNP. Best to have both. I only mention CCIE in a lot of videos because people ask me about CCIE vs Python. It is up to you if you want to get a CCIE - I am not pushing everyone to become a CCIE - it is your choice :)
25:42 Right Ansible version Dmitry , made me chuckle, Ansible is great but troubleshooting is pain ( I know -vvvv switch) , Also once you have this playbook working different version of ansible !!!! .
I think certifications are a guide and show the level of knowledge you have and from there depends on learning more and expand on the level of knowledge you have. For me I think is a good way to measure a skill and the expansion of knowledge and skills will always depend on the person.
David, please add Nornir and create GUI interfaces for our scripts in to your courses... Thanks for this video
Hi David, Love your work 💓
David, what are your thoughts on GoLang for Network Engineers?
Stuart gives a good answer here (he starts talking about Go and then compares to Python): th-cam.com/video/YB_UGPDcXIs/w-d-xo.html
He mentioned an article at about 21:34 for nornir to update Operating Systems. Could you also post that link? Great interview! I am standing this up as I watch this!
Have a look here: pynet.twb-tech.com/blog/nornir/os-upgrade-p1.html and here: pynet.twb-tech.com/blog/nornir/os-upgrade-p2.html
Thanks. I would really like to test this. Copying using SCP to over 300 devices via a VSAT network is not the best use of your time 😖
Ansible assert module takes care of syntax check. Coupled with regex is quite powerful...
Thank you David for delivering great educational and inspirational materials!
Great interview David
Hi Dmitry!
David please what phone do you use, will be very happy to know
I have an iPhone X and iPhone XS Max which I use for recordings. The one camera in this video is an iPhone XS Max and the audio recordings are taken on an iPhone X.
Thanks for the infomation
Hi David
Great video
Is the link to nomir working? Not working for me. Oh got it, Nornir.
What I love about listening to people that are smarter than myself is that I have no clue what they are discussing.
If he codes live, that means he knows what he's doing ;)
I too, love to hate on Ansible.
lol... everyone has their favourite and hated automation tools :)
First big like
Glad I viewed this video. I know more Python than Ansible.