Python for Network Engineers

Slides:



Advertisements
Similar presentations
E-Science Data Information and Knowledge Transformation Thoughts on Education and Training for E-Science Based on edikt project experience Dr. Denise Ecklund.
Advertisements

The Basics of Information Systems
IT Starts Here.. Invest Big without a Big Investment Want to build and deliver technology education with a simple, convenient, and affordable suite of.
Web Development & Design Foundations with XHTML
Oracle Security and GRC Professional Development Program.
Understanding Task Orientation Guidelines for a Successful Manual & Help System.
Web Developer & Design Foundations with XHTML
1 Web Developer Foundations: Using XHTML Chapter 8 Web Site Development.
The Integration and Effectiveness of Information and Communication Technologies in Canadian Postsecondary Education Dr. Carl Cuneo, Director, EvNet, Network.
Career Opportunities in Information Technology There are four main categories of IT jobs, grouped by the main focus of the job: Sales and support Software.
CSI-MAXIMUS, Inc CSI Comprehensive Service & Support Implementing the CSI Way.
What IS a Journeyman Programmer? Why this program?
Nadir Hajiyani NADIR HAJIYANI CSC 253 OCFA. Agenda What Who Specification Architecture - How Snapshots Help Open Source Disadvantages Advantages References.
Peeking at Programming with JavaScript. So what’s JavaScript ? A programming language built into your Web Browser program. Adds fun and interactivity.
Experts Workshop on the GBIF INTEGRATED PUBLISHING TOOLKIT V. 2 IPT Resources Alberto González Talaván Global Biodiversity Information Facility (GBIF)
Overview In this tutorial you will: learn what an e-portfolio is learn about the different things e-portfolios may be used for identify some options for.
Automating Legacy Network Devices
CDIO: Overview, Standards, and Processes (Part 2) Doris R. Brodeur, November 2005.
CompTIA Security+ Certification Exam SY COMPTIA SECURITY+SY0-401 Q&A is a straight forward,efficient,and effective method of preparing for the new.
Some thoughts on Automation ________________________________________ Andy Davidson Allegro Networks (an IIX on twitter Monday 20 th April.
Extending ArcGIS with Python Clinton Dow – Geoprocessing Product Esri.
LINUX ADMIN CERTIFICATION PART OF THE CISCO AAT DEGREE DRAFT PROPOSAL.
Selenium Online Training. Looking for Best Selenium Online Training QEdge Technologies is the Best Software Testing Institute in Hyderabad Ameerpet. Why.
How to Get Started With Python
Web Development & Design Foundations with HTML5 7th Edition
What is BizTalk ?
Getting & Running EdgeX Docker Containers
Junos Automation Stack
@ Bucharest DevOps Hacker Meetup
PA181 – Service Systems, Modeling and Execution
Who is Learn.com? Learn.com provides award-winning technology and services that enable organizations to create, launch, manage, support and track  e-learning.
Selenium HP Web Test Tool Training
Professional Certificate in Supply Chain Management
Foundations of Data Science
Microsoft Virtual Academy
Infrastructure Orchestration to Optimize Testing
Microsoft Operations Management Suite Insight and Analytics
7/19/2018 9:40 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
DATA MINING Python.
Securing Cisco Networks with Threat Detection and Analysis practice-questions.html.
Securing Cisco Networks with Threat Detection and Analysis practice-questions.html.
Unlocking the Development Power of Ignition with Python Scripts
Implementing Cisco Data Center Infrastructure Introduction of Cisco Dumps practice-questions.html.
Introduction to Magento Magento is one of the most popular ecommerce solutions in the world. But learning this powerful content management system also.
Oracle University Training and Certification Solutions
Build /21/2018 © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION.
Latest Exam Questions - Free Full Training
Web Site Project Management
Training Courses.
GIFT / Fiscal Data Package Iteration 3
Engineering Secure Software
Microsoft Virtual Academy
Presented By - Avinash Pawar
EMSE 6574 – Programming for Analytics: Python 101 – Python Enviornments Joel Klein.
Updates from the SDMX Sponsors and SDMX Secretariat
Microsoft Virtual Academy
Serverless Architecture in the Cloud
An introduction to the Linux environment v
Agile testing for web API with Postman
The Basics of Information Systems
Windows 8.1 Deployment Jump Start
Reliable communications at all times.
Hyper-V server deployment - Using the right tools
Microsoft Virtual Academy
The Basics of Information Systems
Global Certifications: Certified Internal Auditor® (CIA®)
DATA MINING Python.
Business Processes Associate Consultant - Supply Chain Planning - IBP
OU BATTLECARD: Oracle Identity Management Training
OU BATTLECARD: JD Edwards EnterpriseOne Training and Certification
Presentation transcript:

Python for Network Engineers A Practical Guide for Getting Started Jeremy Schulman @nwkautomaniac

Jeremy Schulman @nwkautomaniac Software Engineer, Network Automation Specialist 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

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.

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.

Agenda Discussion Live coding Where to go from here ... Realistic expectations Getting started Live coding Jupyter Notebook - makes Python feel like a CLI NetOps example exercises Where to go from here ...

Managing Networks "Manual via CLI" "SNMP based products" "Vendor Products" "SDN" "Orchestration Systems" "DevOps" "Network Automation" "Network Engineers must become Software Engineers"

Managing Networks "Manual via CLI" "SNMP based products" "Vendor Products" "SDN" "Orchestration Systems" "DevOps" "Network Automation" "Network Engineers must become Software Engineers"

Learning any New Skill [1] Novice Competent Proficient Expert Master 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 [1] "A FIVE-STAGE MODEL OF THE MENTAL ACTIVITIES INVOLVED IN DIRECTED SKILL ACQUISITION", STUART E. DREYFUS and HUBERT L. DREYFUS, 1980. http://www.dtic.mil/dtic/tr/fulltext/u2/a084551.pdf

Systems are Risky and Complex Manage Distributed Network Services Configuration Management “config” Situational Awareness “show” High Risk Complex Tasks Low Risk Simple Distributed System (blast radius > 1) Host-Only (blast radius = 1)

Where to start using Python Configuration Management “config” Situational Awareness “show” High Risk Complex Tasks Low Risk Simple "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 Distributed System (blast radius > 1) Host-Only (blast radius = 1)

Make Python *feel* like being on a CLI Live Coding Make Python *feel* like being on a CLI http://jupyter.org/

Jupyter Notebook Setup a Python virtual-environment $ virtualenv playground $ source playground/bin/activate Install Jupyter notebook for Python 2.7 (playground)$ pip install ipython==5 jupyter Install Jupyter notebook for Python 3 (playground)$ pip install jupyter

Jupyter Notebook Start Jupyter notebook system, will launch browser (playground)$ jupyter notebook

Live Demo!

Where to go from here ...

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

Python Libraries ipaddress tabulate first tqdm requests collections csv json yaml gtextfsm netmiko napalm lxml paramiko bidict operator itertools chain

Next Steps Building Novice Skills Building Competency 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 https://www.globalknowledge.com/us-en/course/91194/the-python-language/ https://www.ipspace.net/Courses https://pynet.twb-tech.com/ https://developer.cisco.com/

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 Senior network engineer == 5-8yrs, multiple domains, technology.

Jeremy Schulman @nwkautomaniac Cheers! Jeremy Schulman @nwkautomaniac