Network Automation with Go


Book Description

Understand the world of modern network automation with Go and deepen your knowledge with insights from 10+ experts who have real-world hands-on experience with network automation and/or are using Go for network-related tasks Key FeaturesA comprehensive guide to the world of modern network automationUse Go to build anything from repetitive task automation to complex distributed systemsOver 30 practical, ready-to-use sample programsBook Description Go's built-in first-class concurrency mechanisms make it an ideal choice for long-lived low-bandwidth I/O operations, which are typical requirements of network automation and network operations applications. This book provides a quick overview of Go and hands-on examples within it to help you become proficient with Go for network automation. It's a practical guide that will teach you how to automate common network operations and build systems using Go. The first part takes you through a general overview, use cases, strengths, and inherent weaknesses of Go to prepare you for a deeper dive into network automation, which is heavily reliant on understanding this programming language. You'll explore the common network automation areas and challenges, what language features you can use in each of those areas, and the common software tools and packages. To help deepen your understanding, you'll also work through real-world network automation problems and apply hands-on solutions to them. By the end of this book, you'll be well-versed with Go and have a solid grasp on network automation. What you will learnUnderstand Go programming language basics via network-related examplesFind out what features make Go a powerful alternative for network automationExplore network automation goals, benefits, and common use casesDiscover how to interact with network devices using a variety of technologiesIntegrate Go programs into an automation frameworkTake advantage of the OpenConfig ecosystem with GoBuild distributed and scalable systems for network observabilityWho this book is for This book is for all network engineers, administrators, and other network practitioners looking to understand what network automation is and how the Go programming language can help develop network automation solutions. As the first part of the book offers a comprehensive overview of Go's main features, this book is suitable for beginners with a solid grasp on programming basics.




Go Programming for Network Operations: A Golang Network Automation Handbook


Book Description

This book illustrates how to apply Go programming to network operations. The topics cover common use cases through examples that are designed to act as a guide and serve as a reference. The reader is assumed to have already gained a fundamental understanding of Go programming; however, the examples are explained for additional clarification. The focus is on using Go for network operations, not on the language itself.




Network Programmability and Automation


Book Description

Like sysadmins before them, network engineers are finding that they cannot do their work manually anymore. As the field faces new protocols, technologies, delivery models, and a pressing need for businesses to be more agile and flexible, network automation is becoming essential. This practical guide shows network engineers how to use a range of technologies and tools—including Linux, Python, JSON, and XML—to automate their systems through code. Network programming and automation will help you simplify tasks involved in configuring, managing, and operating network equipment, topologies, services, and connectivity. Through the course of the book, you’ll learn the basic skills and tools you need to make this critical transition. This book covers: Python programming basics: data types, conditionals, loops, functions, classes, and modules Linux fundamentals to provide the foundation you need on your network automation journey Data formats and models: JSON, XML, YAML, and YANG for networking Jinja templating and its applicability for creating network device configurations The role of application programming interfaces (APIs) in network automation Source control with Git to manage code changes during the automation process How Ansible, Salt, and StackStorm open source automation tools can be used to automate network devices Key tools and technologies required for a Continuous Integration (CI) pipeline in network operations




Foundations of Python Network Programming


Book Description

* Covers low-level networking in Python —essential for writing a new networked application protocol. * Many working examples demonstrate concepts in action -- and can be used as starting points for new projects. * Networked application security is demystified. * Exhibits and explains multitasking network servers using several models, including forking, threading, and non-blocking sockets. * Features extensive coverage of Web and E-mail. Describes Python's database APIs.




Network Programming with Go


Book Description

Dive into key topics in network architecture and Go, such as data serialization, application level protocols, character sets and encodings. This book covers network architecture and gives an overview of the Go language as a primer, covering the latest Go release. Beyond the fundamentals, Network Programming with Go covers key networking and security issues such as HTTP and HTTPS, templates, remote procedure call (RPC), web sockets including HTML5 web sockets, and more. Additionally, author Jan Newmarch guides you in building and connecting to a complete web server based on Go. This book can serve as both as an essential learning guide and reference on Go networking. What You Will Learn Master network programming with Go Carry out data serialization Use application-level protocols Manage character sets and encodings Deal with HTTP(S) Build a complete Go-based web server Work with RPC, web sockets, and more Who This Book Is For Experienced Go programmers and other programmers with some experience with the Go language.




Network Programmability and Automation Fundamentals


Book Description

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 certification—and skills you can use with any platform, whether you have software development experience or not. Master core concepts and explore the network programmability stack Manage network software and run automation scripts in Linux environments Solve real problems with Python and its Napalm and Nornir automation frameworks Make the most of the HTTP protocol, REST architectural framework, and SSH Encode your data with XML, JSON, or YAML Understand and build data models using YANG that offer a foundation for model-based network programming Leverage modern network management protocols, from gRPC and gNMI to NETCONF and RESTCONF Meet stringent service provider KPIs in large-scale, fast-changing networks Program Cisco devices running IOS XE, IOS XR, and NX-OS as well as Meraki, DNA Center, and Webex platforms Program non-Cisco platforms such as Cumulus Linux and Arista EOS Go from “zero to hero” with Ansible network automation Plan your next steps with more advanced tools and technologies




Practical Network Automation


Book Description

Get More from your Network with Automation tools to increase its effectiveness. About This Book Get started with network automation (and different automation tasks) with relevant use cases Apply software design principles such as Continuous Integration and DevOps to your network toolkit Guides you through some best practices in automation Who This Book Is For If you are a network engineer looking for an extensive guide to help you automate and manage your network efficiently, then this book is for you. What You Will Learn Get the detailed analysis of Network automation Trigger automations through available data factors Improve data center robustness and security through specific access and data digging Get an Access to APIs from Excel for dynamic reporting Set up a communication with SSH-based devices using netmiko Make full use of practical use cases and best practices to get accustomed with the various aspects of network automation In Detail Network automation is the use of IT controls to supervise and carry out every-day network management functions. It plays a key role in network virtualization technologies and network functions. The book starts by providing an introduction to network automation, SDN, and its applications, which include integrating DevOps tools to automate the network efficiently. It then guides you through different network automation tasks and covers various data digging and reporting methodologies such as IPv6 migration, DC relocations, and interface parsing, all the while retaining security and improving data center robustness. The book then moves on to the use of Python and the management of SSH keys for machine-to-machine (M2M) communication, all followed by practical use cases. The book also covers the importance of Ansible for network automation including best practices in automation, ways to test automated networks using different tools, and other important techniques. By the end of the book, you will be well acquainted with the various aspects of network automation. Style and approach A clear, concise, and straightforward book that will enable you to automate networks and improve performance.




Network Programming with Go


Book Description

Network Programming with Go teaches you how to write clean, secure network software with the programming language designed to make it seem easy. Build simple, reliable, network software Combining the best parts of many other programming languages, Go is fast, scalable, and designed for high-performance networking and multiprocessing. In other words, it’s perfect for network programming. Network Programming with Go will help you leverage Go to write secure, readable, production-ready network code. In the early chapters, you’ll learn the basics of networking and traffic routing. Then you’ll put that knowledge to use as the book guides you through writing programs that communicate using TCP, UDP, and Unix sockets to ensure reliable data transmission. As you progress, you’ll explore higher-level network protocols like HTTP and HTTP/2 and build applications that securely interact with servers, clients, and APIs over a network using TLS. You'll also learn: Internet Protocol basics, such as the structure of IPv4 and IPv6, multicasting, DNS, and network address translation Methods of ensuring reliability in socket-level communications Ways to use handlers, middleware, and multiplexers to build capable HTTP applications with minimal code Tools for incorporating authentication and encryption into your applications using TLS Methods to serialize data for storage or transmission in Go-friendly formats like JSON, Gob, XML, and protocol buffers Ways of instrumenting your code to provide metrics about requests, errors, and more Approaches for setting up your application to run in the cloud (and reasons why you might want to) Network Programming with Go is all you’ll need to take advantage of Go’s built-in concurrency, rapid compiling, and rich standard library. Covers Go 1.15 (Backward compatible with Go 1.12 and higher)




Introduction to Python Network Automation


Book Description

Learn and implement network automation within the Enterprise network using Python 3. This introductory book will be your guide to building an integrated virtual networking lab to begin your Network Automation journey and master the basics of Python Network Automation. The book features a review of the practical Python network automation scripting skills and tips learned from the production network, so you can safely test and practice in a lab environment first, various Python modules such as paramiko and netmiko, pandas, re, and much more. You'll also develop essential skills such as Python scripting, regular expressions, Linux and Windows administration, VMware virtualization, and Cisco networking from the comfort of your laptop/PC with no actual networking hardware. Finally, you will learn to write a fully automated and working Cisco IOS XE upgrade application using Python. Introduction to Python Network Automation uses a canonical order, where you begin at the bottom and by the time you have completed this book, you will at least reach the intermediate level of Python coding for enterprise networking automation using native Python tools. What You'll Learn Build a proper GNS3-based networking lab for Python network automation needs. Write the basics of Python codes in both the Windows and Linux environments. Control network devices using telnet, SSH, and SNMP protocols using Python codes. Understand virtualization and how to use VMware workstation Examine virtualization and how to use VMware Workstation Pro Develop a working Cisco IOS upgrade application Who This Book Is For IT Engineers and developers, network managers and students, who would like to learn network automation using Python.




Automate Your Network: Introducing the Modern Approach to Enterprise Network Management


Book Description

Network automation is one of the hottest topics in Information Technology today. This revolutionary book aims to illustrate the transformative journey towards full enterprise network automation. This book outlines the tools, technologies and processes required to fully automate an enterprise network. Automated network configuration management is more than converting your network configurations to code. The benefits of source control, version control, automated builds, automated testing and automated releases are realized in the world of networking using well established software development practices. The next-generation network administrative toolkit is introduced including Microsoft Team Foundation Server, Microsoft Visual Studio Code, Git, Linux, and the Ansible framework. Not only will these new technologies be covered at length, a new and continuously integrated / continuously delivered pipeline is also introduced. Starting with safe, simple, non-intrusive, non-disruptive information gathering organizations can ease into network automation while building a dynamic library of documentation and on-demand utilities for network operations. Once comfortable with the new ecosystem, administrators can begin making fully automated, orchestrated, and tactical changes to the network. The next evolutionary leap occurs when fully automated network configuration management is implemented. Important information from the network running-configurations is abstracted into data models in a human readable format. Device configurations are dynamically templated creating a scalable, intent-based, source of truth. Much like in the world of software development, full automation of the network using a CI/CD pipeline can be realized. Automated builds, automated testing and automated scheduled releases are orchestrated and executed when changes are approved and checked into the central repository. This book is unlike any on the market today as it includes multiple Ansible playbooks, sample YAML data models and Jinja2 templates for network devices, and a whole new methodology and approach to enterprise network administration and management. The CLI no longer cuts it. Readers should take away from this book a new approach to enterprise network management and administration as well as the full knowledge and understanding of how to use TFS, VS Code, Git, and Ansible to create an automation ecosystem. Readers should have some basic understanding of modern network design, operation, and configuration. No prior programming or software development experience is required. John Capobianco has over 20 years of IT experience and is currently a Technical Advisor for the Canadian House of Commons. A graduate of St. Lawrence College's Computer Programmer Analyst program, John is also a former Professor at St. Lawrence College in the Computer Networking and Technical Support (CNTS) program. John has achieved CCNP, CCDP, CCNA: Data Center, MCITP: EA/SA, CompTIA A+ / Network+, and ITIL Foundation certifications. Having discovered a new way to interface with the network John felt compelled to share this new methodology in hopes of revolutionizing the industry and bringing network automation to the world.