Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

A Network Engineer's Approach to Automation

7 693 vues

Publié le

Exploring a novel approach to bridging the gap between Network Engineers and automating networks

Publié dans : Technologie
  • Soyez le premier à commenter

A Network Engineer's Approach to Automation

  1. 1. A NETWORK ENGINEER'S APPROACH TO AUTOMATION #NoCLI (not-only CLI) Jeremy Schulman @nwkautomaniac 2013 December
  2. 2. Why?
  3. 3. OFFICE OF THE CIO IT Automation is Top of Mind Business Agility Business Velocity Sweet Spot Business Continuity Business Value Lower Cost Reduce Risk Improve Service
  4. 4. APPLICATIONS DRIVE BUSINESS Server Automation Hit the "Sweet Spot" Evolution / Revolution • Server Virtualization and Cloud • History over +7 years • Open-Source Community manually configured ad-hoc bash perl scripting physical, virtual, cloud orchestration puppet, chef salt, ansible, other IT frameworks infra.apps built on IT frameworks (Hubot, Boxen) paradigm pivot-point!
  5. 5. COMMUNITY "TRIBES" Admins Users Non-Programmers IT Automation Engineers "DevOps" Quasi-Programmers IT Framework Companies Software Engineers Hardcore-Programmers
  6. 6. When?
  7. 7. TIME TO "LEVEL-UP" Networking must now find a way to the "Sweet Spot" Service Velocity Complexity of IT Up Time $ Tolerance for Human Error Resource Pools Budgets
  8. 8. NETWORK AUTOMATION Not Only Configuration Plan & Model ✔ 1 Report ✔ ✔ 5 2 ✔ 4 Troubleshoot Configure & Deploy ✔ 3 Visualize & Monitor
  9. 9. OFFICE OF THE NETWORK ENGINEER I am not a "Programmer" I think about the network & complex networking planning I spend a lot of my time fire-fighting the network I need automation tools to help me do my job I know I need to "level-up" with automation but I need something that helps me get started I'd like to use Python since it is shaping up as the standard
  10. 10. What?
  11. 11. NETWORK ENGINEER'S PUNCH LIST • Get started "day one" using Python interactive shell • Do it the way a network engineer thinks and interacts with the network, not like a Programmer/API • Do not require "programmy" knowledge of XML, Junos, NETCONF • Give me "CLI access" if I get stuck, but don't make me use CLI screen-scraping • Give me access to both config and operational data in standard Python types like dictionary (hash) and list • Make it Open-Source so I don't have to wait for "The Vendor" to add/fix things, enable Community
  12. 12. RIPPED FROM A NET.ENG BLOG Kurt Bales, Senior Network Engineer www.network-janitor.net
  13. 13. INTRODUCING "JUNOS PyEZ" Open and Extensible "micro-framework" • Remote device management and "fact" gathering • Troubleshooting, Audit and Reporting • Operational data • Configuration data • Configuration Management • Unstructured config snippets and templates • Structured abstractions • Generalized utilities for file-system, softwareupgrade, secure file copy (scp), etc. Check out the blog series "Python for Non-Programmers": "J-Net Forum"
  14. 14. How?
  15. 15. LAYERED APPROACH Charting a Path to the "Sweet Spot" Python Shell Python script interactive IT Frameworks Custom Applications simple → complex • Native Python data types (hash/list) • Junos specific not required • XML not required junos-pyez open-source, Juniper ncclient open-source, Community • Junos specific • Abstraction Layer • micro-framework • NETCONF transport only • Vendor Agnostic • No abstractions
  16. 16. CONFIGURATION CHANGES Unstructured Junos config in text, set, or XML format "snippets" that contain variables Jinja2 is template engine Structured "snippets" Resources (no variables) Structured abstractions defined by the junos-ez micro-framework Juniper + Community "templates" (merge variables) write-only read-write Junos Configuration
  17. 17. TROUBLESHOOTING, AUDIT, REPORTING Easily retrieve data and extract as native Python Structured abstractions defined by the Junos PyEZ micro-framework Conceptually like database tables and views that define the fields of data you want No coding required to create abstractions Juniper + Community Views Tables Junos Configuration Operational Data read-only
  18. 18. Where?
  19. 19. PROJECT DOCUMENTATION Juniper "TechWiki" https://techwiki.juniper.net/Projects/Junos_PyEZ
  20. 20. Follow on Twitter: @nwkautomaniac moving soon to github.com/Juniper in Jan 2014