SlideShare uma empresa Scribd logo
1 de 19
© Jeremy Schulman - 2018 - All Rights Reserved
Python for Network Engineers
Chapter 1
A Practical Guide for Getting Started
Jeremy Schulman
@nwkautomaniac
© Jeremy Schulman - 2018 - All Rights Reserved
Jeremy Schulman
● Software Engineer
● 20 Years in Industry
● Since 2012 exclusively focused
on "network automation"
● Other Roles:
○ Developer Advocate
○ Systems Engineer
○ Automation Architect
○ Open source contributor
@nwkautomaniac
Slides:
https://www.slideshare.net/
jeremyschulman
Github:
https://github.com/
jeremyschulman
© Jeremy Schulman - 2018 - All Rights Reserved
Obligatory Disclaimer
The views and opinions expressed in this presentation are Jeremy Schulman's and do not represent
any employer past or present.
Reference materials provided in this presentation, such as links to external training sites, do not
represent any form of recommendation.
© Jeremy Schulman - 2018 - All Rights Reserved
Network Engineers need to
competently use Python
so that they can make, and make use of,
power-tools that will improve their jobs.
These tools will not replace them.
© Jeremy Schulman - 2018 - All Rights Reserved
Agenda
● Discussion
○ Realistic expectations
○ Getting started
● Live coding
○ Jupyter Notebook - makes Python feel like a CLI
○ NetOps example exercises
● Where to go from here ...
© Jeremy Schulman - 2018 - All Rights Reserved
"Manual via CLI"
"SNMP based products"
"Vendor Products"
"SDN"
"Orchestration Systems"
"DevOps"
"Network Automation"
"Network Engineers
must become Software
Engineers"
Managing Networks
© Jeremy Schulman - 2018 - All Rights Reserved
"Manual via CLI"
"SNMP based products"
"Vendor Products"
"SDN"
"Orchestration Systems"
"DevOps"
"Network Automation"
"Network Engineers
must become Software
Engineers"
Managing Networks
© Jeremy Schulman - 2018 - All Rights Reserved
Learning any New Skill [1]
Novice Expert MasterCompetent Proficient
Experience over a long time
● Use everyday concrete experiences,
not abstract concepts
● Attaining core competency requires
instructor led training and / or
directed tutorials
Jeremy's key takeaways:
● Attaining proficient skill requires
experience and knowledge
that takes massive time investment
● Continuous mentorship, peer-review,
feedback, learning, experimentation
© Jeremy Schulman - 2018 - All Rights Reserved
Systems are Risky and Complex
Manage Distributed Network Services
High Risk
Complex
Tasks
Low Risk
Simple
Tasks
Configuration
Management
“config”
Situational
Awareness
“show”
Host-Only
(blast radius = 1)
Distributed System
(blast radius > 1)
© Jeremy Schulman - 2018 - All Rights Reserved
Where to start using Python
High Risk
Complex
Tasks
Low Risk
Simple
Tasks
Configuration
Management
“config”
Situational
Awareness
“show”
Host-Only
(blast radius = 1)
Distributed System
(blast radius > 1)
"Your network is a crime scene, and you
are the detective. You need better ways
to investigate what happened, and prove
guilt or innocence".
-- Jeremy
© Jeremy Schulman - 2018 - All Rights Reserved
Live Coding
Make Python *feel* like being on a CLI
http://jupyter.org/
© Jeremy Schulman - 2018 - All Rights Reserved
Jupyter Notebook
$ virtualenv playground
$ source playground/bin/activate
(playground)$ pip install ipython==5 jupyter
Setup a Python virtual-environment
(playground)$ pip install jupyter
Install Jupyter notebook for Python 2.7
Install Jupyter notebook for Python 3
© Jeremy Schulman - 2018 - All Rights Reserved
Jupyter Notebook
(playground)$ jupyter notebook
Start Jupyter notebook system, will launch browser
© Jeremy Schulman - 2018 - All Rights Reserved
Novice Topics
● Variables, duck-typing
● help(), type(), dir()
● pretty-printing
● Importing packages
● List, Dictionary
● Tuple, Set
● Functions
● For-loops
● If / Then / Else
● Working with files
● JSON, YAML files
● List Comprehensions
● Dictionary Comprehensions
● Set Comprehensions
● Collections - Counter
● Collections - defaultdict
© Jeremy Schulman - 2018 - All Rights Reserved
Python Libraries
● ipaddress
● tabulate
● first
● tqdm
● requests
● collections
● csv
● json
● yaml
● gtextfsm
● netmiko
● napalm
● lxml
● paramiko
● bidict
● operator
● itertools
● chain
© Jeremy Schulman - 2018 - All Rights Reserved
NetOps Examples
1. Use NAPALM drivers to execute device-specific CLI commands
a. Arista EOS
b. Cisco NX-OS
2. Process IP routing table information
3. Process LLDP neighbor information
4. Process Interface information
© Jeremy Schulman - 2018 - All Rights Reserved
Next Steps
● Take formal Python courses
● Global Knowledge
● Subscribe to Python News
○ Dan Bader
○ https://www.pythonweekly.com/
● https://www.python.org/
● Try PyCharm IDE
(Integrated Development Environment)
● Use Python every day
● Use Jupyter notebook
● Take industry classes
○ IpSpace
○ NetworkToCode
○ Kirk Byers
● Free Cisco DevNet
Building Novice Skills Building Competency
© Jeremy Schulman - 2018 - All Rights Reserved
Closing Thoughts
"A good network engineer is proficient at
quickly becoming competent."
-- Derick Winkworth (@cloudtoad)
● Be patient. Set realistic goals, both with yourself and
your management
● Consider how long it took you to become a Senior
Network Engineer
© Jeremy Schulman - 2018 - All Rights Reserved
Cheers!
Jeremy Schulman
@nwkautomaniac

Mais conteúdo relacionado

Mais procurados

JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
y torazuka
 
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
Takashi Hoshino
 
BHyVeってなんや
BHyVeってなんやBHyVeってなんや
BHyVeってなんや
Takuya ASADA
 
Tiptop gp 5.1 setup_instructions
Tiptop gp 5.1 setup_instructionsTiptop gp 5.1 setup_instructions
Tiptop gp 5.1 setup_instructions
guest994aeb5
 

Mais procurados (20)

Net Devops Overview
Net Devops OverviewNet Devops Overview
Net Devops Overview
 
Linux
LinuxLinux
Linux
 
Bottom half in linux kernel
Bottom half in linux kernelBottom half in linux kernel
Bottom half in linux kernel
 
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
 
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
JJUG CCC 2013 Fall「JVMコードリーディング入門-JVMのOS抽象化レイヤーについて-」
 
【SRX】JUNOS ハンズオントレーニング資料 SRXシリーズ サービス ゲートウェイ コース
【SRX】JUNOS ハンズオントレーニング資料 SRXシリーズ サービス ゲートウェイ コース【SRX】JUNOS ハンズオントレーニング資料 SRXシリーズ サービス ゲートウェイ コース
【SRX】JUNOS ハンズオントレーニング資料 SRXシリーズ サービス ゲートウェイ コース
 
今からはじめる! Linuxコマンド入門
今からはじめる! Linuxコマンド入門今からはじめる! Linuxコマンド入門
今からはじめる! Linuxコマンド入門
 
10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ10分で分かるLinuxブロックレイヤ
10分で分かるLinuxブロックレイヤ
 
【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース
【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース 【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース
【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース
 
Linux installation and booting process
Linux installation and booting processLinux installation and booting process
Linux installation and booting process
 
ochacafe#6 人にもマシンにもやさしいAPIのエコシステム
ochacafe#6 人にもマシンにもやさしいAPIのエコシステムochacafe#6 人にもマシンにもやさしいAPIのエコシステム
ochacafe#6 人にもマシンにもやさしいAPIのエコシステム
 
BHyVeってなんや
BHyVeってなんやBHyVeってなんや
BHyVeってなんや
 
AWSでのバースト ― GP2 T2 ご紹介資料
AWSでのバースト ― GP2 T2 ご紹介資料AWSでのバースト ― GP2 T2 ご紹介資料
AWSでのバースト ― GP2 T2 ご紹介資料
 
Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)
Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)
Fpgaでの非同期信号の扱い方とvivadoによるサポート(公開用)
 
Tiptop gp 5.1 setup_instructions
Tiptop gp 5.1 setup_instructionsTiptop gp 5.1 setup_instructions
Tiptop gp 5.1 setup_instructions
 
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
これからのJDK 何を選ぶ?どう選ぶ? (v1.2) in 熊本
 
Buildroot easy embedded system
Buildroot easy embedded systemBuildroot easy embedded system
Buildroot easy embedded system
 
NETCONF Call Home
NETCONF Call Home NETCONF Call Home
NETCONF Call Home
 
Linux Network Stack
Linux Network StackLinux Network Stack
Linux Network Stack
 
Tutorial simocode pro c
Tutorial simocode pro cTutorial simocode pro c
Tutorial simocode pro c
 

Semelhante a Python for Network Engineers - A Practical Guide for Getting Started

NLP for videos: Understanding customers' feelings in videos - Albert Lewandow...
NLP for videos: Understanding customers' feelings in videos - Albert Lewandow...NLP for videos: Understanding customers' feelings in videos - Albert Lewandow...
NLP for videos: Understanding customers' feelings in videos - Albert Lewandow...
GetInData
 

Semelhante a Python for Network Engineers - A Practical Guide for Getting Started (20)

Automating "Network Ready for Use" with pytest
Automating "Network Ready for Use" with pytestAutomating "Network Ready for Use" with pytest
Automating "Network Ready for Use" with pytest
 
HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?
HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?
HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?
 
OSMC 2014: Naemon 1, 2, 3, N | Andreas Ericsson
OSMC 2014: Naemon 1, 2, 3, N | Andreas EricssonOSMC 2014: Naemon 1, 2, 3, N | Andreas Ericsson
OSMC 2014: Naemon 1, 2, 3, N | Andreas Ericsson
 
Lesson slides for C programming course
Lesson slides for C programming courseLesson slides for C programming course
Lesson slides for C programming course
 
OSMC 2014 | Naemon 1, 2, 3, N by Andreas Ericsson
OSMC 2014 | Naemon 1, 2, 3, N by Andreas EricssonOSMC 2014 | Naemon 1, 2, 3, N by Andreas Ericsson
OSMC 2014 | Naemon 1, 2, 3, N by Andreas Ericsson
 
Not my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructureNot my problem - Delegating responsibility to infrastructure
Not my problem - Delegating responsibility to infrastructure
 
Project Management Journey
Project Management JourneyProject Management Journey
Project Management Journey
 
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad AssisKubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
 
IBM Agile ALM Overview
IBM Agile ALM OverviewIBM Agile ALM Overview
IBM Agile ALM Overview
 
7.4 Admin Tools and Best Practices
7.4 Admin Tools and Best Practices7.4 Admin Tools and Best Practices
7.4 Admin Tools and Best Practices
 
NLP for videos: Understanding customers' feelings in videos - Albert Lewandow...
NLP for videos: Understanding customers' feelings in videos - Albert Lewandow...NLP for videos: Understanding customers' feelings in videos - Albert Lewandow...
NLP for videos: Understanding customers' feelings in videos - Albert Lewandow...
 
Functional Programming in Python
Functional Programming in PythonFunctional Programming in Python
Functional Programming in Python
 
Industrialiser spark
Industrialiser sparkIndustrialiser spark
Industrialiser spark
 
jBPM5 Developer Guide Presentation JBUG London
jBPM5 Developer Guide Presentation JBUG LondonjBPM5 Developer Guide Presentation JBUG London
jBPM5 Developer Guide Presentation JBUG London
 
jBPM5 - The Evolution of BPM Systems
jBPM5 - The Evolution of BPM SystemsjBPM5 - The Evolution of BPM Systems
jBPM5 - The Evolution of BPM Systems
 
Log4j2 - A deep dive into the logging services in Mulesoft with On-Prem deplo...
Log4j2 - A deep dive into the logging services in Mulesoft with On-Prem deplo...Log4j2 - A deep dive into the logging services in Mulesoft with On-Prem deplo...
Log4j2 - A deep dive into the logging services in Mulesoft with On-Prem deplo...
 
Interop 2015: Hardly Enough Theory, Barley Enough Code
Interop 2015: Hardly Enough Theory, Barley Enough CodeInterop 2015: Hardly Enough Theory, Barley Enough Code
Interop 2015: Hardly Enough Theory, Barley Enough Code
 
New Relic
New RelicNew Relic
New Relic
 
SFO15-100K1: Welcome Keynote: George Grey, Linaro CEO
SFO15-100K1: Welcome Keynote: George Grey, Linaro CEOSFO15-100K1: Welcome Keynote: George Grey, Linaro CEO
SFO15-100K1: Welcome Keynote: George Grey, Linaro CEO
 
Princeton-NJ-Meetup-MuleSoft SumoLogic Integration.pptx
Princeton-NJ-Meetup-MuleSoft SumoLogic Integration.pptxPrinceton-NJ-Meetup-MuleSoft SumoLogic Integration.pptx
Princeton-NJ-Meetup-MuleSoft SumoLogic Integration.pptx
 

Mais de Jeremy Schulman (6)

Network Config Backups - Netbox, Github, Ansible
Network Config Backups - Netbox, Github, AnsibleNetwork Config Backups - Netbox, Github, Ansible
Network Config Backups - Netbox, Github, Ansible
 
The Datacenter Network You Wish You Had
The Datacenter Network You Wish You HadThe Datacenter Network You Wish You Had
The Datacenter Network You Wish You Had
 
The Rules of Network Automation - Interop/NYC 2014
The Rules of Network Automation - Interop/NYC 2014The Rules of Network Automation - Interop/NYC 2014
The Rules of Network Automation - Interop/NYC 2014
 
A Networking View for the DevOps Crew: SDN
A Networking View for the DevOps Crew: SDNA Networking View for the DevOps Crew: SDN
A Networking View for the DevOps Crew: SDN
 
About Jeremy Schulman
About Jeremy SchulmanAbout Jeremy Schulman
About Jeremy Schulman
 
A Network Engineer's Approach to Automation
A Network Engineer's Approach to AutomationA Network Engineer's Approach to Automation
A Network Engineer's Approach to Automation
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Último (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

Python for Network Engineers - A Practical Guide for Getting Started

  • 1. © Jeremy Schulman - 2018 - All Rights Reserved Python for Network Engineers Chapter 1 A Practical Guide for Getting Started Jeremy Schulman @nwkautomaniac
  • 2. © Jeremy Schulman - 2018 - All Rights Reserved Jeremy Schulman ● Software Engineer ● 20 Years in Industry ● Since 2012 exclusively focused on "network automation" ● Other Roles: ○ Developer Advocate ○ Systems Engineer ○ Automation Architect ○ Open source contributor @nwkautomaniac Slides: https://www.slideshare.net/ jeremyschulman Github: https://github.com/ jeremyschulman
  • 3. © Jeremy Schulman - 2018 - All Rights Reserved Obligatory Disclaimer The views and opinions expressed in this presentation are Jeremy Schulman's and do not represent any employer past or present. Reference materials provided in this presentation, such as links to external training sites, do not represent any form of recommendation.
  • 4. © Jeremy Schulman - 2018 - All Rights Reserved Network Engineers need to competently use Python so that they can make, and make use of, power-tools that will improve their jobs. These tools will not replace them.
  • 5. © Jeremy Schulman - 2018 - All Rights Reserved Agenda ● Discussion ○ Realistic expectations ○ Getting started ● Live coding ○ Jupyter Notebook - makes Python feel like a CLI ○ NetOps example exercises ● Where to go from here ...
  • 6. © Jeremy Schulman - 2018 - All Rights Reserved "Manual via CLI" "SNMP based products" "Vendor Products" "SDN" "Orchestration Systems" "DevOps" "Network Automation" "Network Engineers must become Software Engineers" Managing Networks
  • 7. © Jeremy Schulman - 2018 - All Rights Reserved "Manual via CLI" "SNMP based products" "Vendor Products" "SDN" "Orchestration Systems" "DevOps" "Network Automation" "Network Engineers must become Software Engineers" Managing Networks
  • 8. © Jeremy Schulman - 2018 - All Rights Reserved Learning any New Skill [1] Novice Expert MasterCompetent Proficient Experience over a long time ● Use everyday concrete experiences, not abstract concepts ● Attaining core competency requires instructor led training and / or directed tutorials Jeremy's key takeaways: ● Attaining proficient skill requires experience and knowledge that takes massive time investment ● Continuous mentorship, peer-review, feedback, learning, experimentation
  • 9. © Jeremy Schulman - 2018 - All Rights Reserved Systems are Risky and Complex Manage Distributed Network Services High Risk Complex Tasks Low Risk Simple Tasks Configuration Management “config” Situational Awareness “show” Host-Only (blast radius = 1) Distributed System (blast radius > 1)
  • 10. © Jeremy Schulman - 2018 - All Rights Reserved Where to start using Python High Risk Complex Tasks Low Risk Simple Tasks Configuration Management “config” Situational Awareness “show” Host-Only (blast radius = 1) Distributed System (blast radius > 1) "Your network is a crime scene, and you are the detective. You need better ways to investigate what happened, and prove guilt or innocence". -- Jeremy
  • 11. © Jeremy Schulman - 2018 - All Rights Reserved Live Coding Make Python *feel* like being on a CLI http://jupyter.org/
  • 12. © Jeremy Schulman - 2018 - All Rights Reserved Jupyter Notebook $ virtualenv playground $ source playground/bin/activate (playground)$ pip install ipython==5 jupyter Setup a Python virtual-environment (playground)$ pip install jupyter Install Jupyter notebook for Python 2.7 Install Jupyter notebook for Python 3
  • 13. © Jeremy Schulman - 2018 - All Rights Reserved Jupyter Notebook (playground)$ jupyter notebook Start Jupyter notebook system, will launch browser
  • 14. © Jeremy Schulman - 2018 - All Rights Reserved Novice Topics ● Variables, duck-typing ● help(), type(), dir() ● pretty-printing ● Importing packages ● List, Dictionary ● Tuple, Set ● Functions ● For-loops ● If / Then / Else ● Working with files ● JSON, YAML files ● List Comprehensions ● Dictionary Comprehensions ● Set Comprehensions ● Collections - Counter ● Collections - defaultdict
  • 15. © Jeremy Schulman - 2018 - All Rights Reserved Python Libraries ● ipaddress ● tabulate ● first ● tqdm ● requests ● collections ● csv ● json ● yaml ● gtextfsm ● netmiko ● napalm ● lxml ● paramiko ● bidict ● operator ● itertools ● chain
  • 16. © Jeremy Schulman - 2018 - All Rights Reserved NetOps Examples 1. Use NAPALM drivers to execute device-specific CLI commands a. Arista EOS b. Cisco NX-OS 2. Process IP routing table information 3. Process LLDP neighbor information 4. Process Interface information
  • 17. © Jeremy Schulman - 2018 - All Rights Reserved Next Steps ● Take formal Python courses ● Global Knowledge ● Subscribe to Python News ○ Dan Bader ○ https://www.pythonweekly.com/ ● https://www.python.org/ ● Try PyCharm IDE (Integrated Development Environment) ● Use Python every day ● Use Jupyter notebook ● Take industry classes ○ IpSpace ○ NetworkToCode ○ Kirk Byers ● Free Cisco DevNet Building Novice Skills Building Competency
  • 18. © Jeremy Schulman - 2018 - All Rights Reserved Closing Thoughts "A good network engineer is proficient at quickly becoming competent." -- Derick Winkworth (@cloudtoad) ● Be patient. Set realistic goals, both with yourself and your management ● Consider how long it took you to become a Senior Network Engineer
  • 19. © Jeremy Schulman - 2018 - All Rights Reserved Cheers! Jeremy Schulman @nwkautomaniac