This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
Also available in other formats.
Register your product to gain access to bonus material or receive a coupon.
Modernize and optimize network management with APIs and automation
Legacy network management approaches don't scale adequately and can't be automated well. This guide will help meet tomorrow's challenges by adopting network programmability based on Application Programming Interfaces (APIs). Using these techniques, you can improve efficiency, reliability, and flexibility; simplify implementation of high-value technologies; automate routine administrative and security tasks; and deploy services far more rapidly.
Four expert authors help you transition from a legacy mindset to one based on solving problems with software. They explore today's emerging network programmability and automation ecosystem; introduce each leading programmable interface; and review the protocols, tools, techniques, and technologies that underlie network programmability. You'll master key concepts through hands-on examples you can run using Linux, Python, Cisco DevNet sandboxes, and other easily accessible tools.
This guide is for all network architects, engineers, operations, and software professionals who want to integrate programmability into their networks. It offers valuable background for Cisco DevNet certificationand skills you can use with any platform, whether you have software development experience or not.
Download the sample pages (includes Chapter 3)
Introduction xxix
Part I Introduction
Chapter 1 The Network Programmability and Automation Ecosystem 1
First, a Few Definitions 2
Your Network Programmability and Automation Toolbox 14
Software and Network Engineers: The New Era 19
Part II Linux
Chapter 2 Linux Fundamentals 21
The Story of Linux 21
The Linux Boot Process 26
A Linux Command Shell Primer 28
Finding Help in Linux 31
Files and Directories in Linux 35
Input and Output Redirection 57
Archiving Utilities 67
Linux System Maintenance 73
Installing and Maintaining Software on Linux 94
Summary 118
Chapter 3 Linux Storage, Security, and Networks 119
Linux Storage 119
Linux Security 135
Linux Networking 158
Summary 181
Chapter 4 Linux Scripting 183
Regular Expressions and the grep Utility 184
The AWK Programming Language 193
The sed Utility 196
General Structure of Shell Scripts 203
Output and Input 207
Variables 215
Conditional Statements 223
Loops 232
The until-do Loop 237
Functions 238
Expect 242
Summary 246
Part III Python
Chapter 5 Python Fundamentals 249
Scripting Languages Versus Programming Languages 250
Network Programmability 253
Computer Science Concepts 255
Python Fundamentals 260
Summary 309
References 310
Chapter 6 Python Applications 311
Organizing the Development Environment 311
The virtualenv Tool 331
Python Modules 333
Python Applications 336
Summary 385
Part IV Transport
Chapter 7 HTTP and REST 387
HTTP Overview 387
The REST Framework 392
The HTTP Connection 394
HTTP Transactions 397
HTTP Messages 415
Resource Identification 431
Postman 436
HTTP and Bash 447
HTTP and Python 455
Summary 467
Chapter 8 Advanced HTTP 469
HTTP/1.1 Authentication 469
Transport Layer Security (TLS) and HTTPS 487
HTTP/2 503
Summary 508
Chapter 9 SSH 509
SSH Overview 509
Setting Up SSH 521
Enabling SSH on Cisco Devices 526
Secure File Transfer 540
Summary 551
References 551
Part V Encoding
Chapter 10 XML 553
XML Overview, History, and Usage 553
XML Syntax and Components 554
Making XML Valid 562
Navigating XML Documents 574
XML Stylesheet Language Transformations (XSLT) 578
Processing XML Files with Python 580
Summary 588
Chapter 11 JSON 591
JavaScript Object Notation (JSON) 591
JSON Schema Definition (JSD) 595
Summary 614
Chapter 12 YAML 615
YAML Structure 616
Handling YAML Data Using Python 626
Summary 637
Part VI Modeling
Chapter 13 YANG 639
A Data Modeling Primer 639
YANG Data Models 642
Types of YANG Modules 663
YANG Tools 673
Summary 688
Part VII Protocols
Chapter 14 NETCONF and RESTCONF 689
NETCONF 689
RESTCONF 739
Summary 779
Chapter 15 gRPC, Protobuf, and gNMI 781
Requirements for Efficient Transport 781
History and Principles of gRPC 782
gRPC as a Transport 784
The Protocol Buffers Data Format 786
Working with gRPC and Protobuf in Python 790
The gNMI Specification 798
The Anatomy of gNMI 799
Managing Network Elements with gNMI/gRPC 814
Summary 818
Chapter 16 Service Provider Programmability 819
The SDN Framework for Service Providers 819
Segment Routing (SR) 823
BGP Link State (BGP-LS) 843
Path Computation Element Protocol (PCEP) 859
Summary 880
Part VIII Programmability Applications
Chapter 17 Programming Cisco Platforms 881
API Classification 882
Network Platforms 883
Meraki 922
DNA Center 931
Collaboration Platforms 942
Summary 954
Chapter 18 Programming Non-Cisco Platforms 957
General Approaches to Programming Networks 957
Implementation Examples 962
Summary 987
Chapter 19 Ansible 989
Ansible Basics 989
Extending Ansible Capabilities 1003
Jinja2 Templates 1034
Using Ansible for Cisco IOS XE 1055
Using Ansible for Cisco IOS XR 1073
Using Ansible for Cisco NX-OS 1084
Using Ansible in Conjunction with NETCONF 1095
Summary 1108
Part IX Looking Ahead
Chapter 20 Looking Ahead 1109
Some Rules of Thumb 1109
What Does All This Mean for Your Career? 1118
9781587145148, TOC, 4/1/2021