What this book covers
Chapter 1, Introduction, explores networking and Go, the benefits of Go, and how it contrasts with Python.
Chapter 2, Go Basics, defines Go and talks about its guiding principles. It presents the Go source code file structure and shows how to compile Go programs.
Chapter 3, Getting Started with Go, covers different characteristics of Go that are relevant for network automation such as control flow, input and output operations, decoding and encoding, and concurrency.
Chapter 4, Networking (TCP/IP) with Go, focuses on practical use cases with Go for each layer of the TCP/IP model.
Chapter 5, Network Automation, discusses what network automation is, its impact on network operations, and its benefits for the business. It also talks about scaling individual use cases into a network automation system.
Chapter 6, Configuration Management, walks us through practical examples using Go to interact with network devices from different networking vendors via SSH and HTTP to configure and collect their operational state to verify any changes.
Chapter 7, Automation Frameworks, describes how some automation frameworks can integrate with Go with an emphasis on Ansible and Terraform.
Chapter 8, Network APIs, takes a look at machine-to-machine interfaces to manage network devices that enable network automation. From RESTCONF and OpenAPI to gRPC.
Chapter 9, OpenConfig, examines how to perform common operational tasks with OpenConfig gRPC services, such as provisioning a device, subscribing to a telemetry stream, and executing an action such as traceroute.
Chapter 10, Network Monitoring, dives into the world of network monitoring from different angles with Go; capturing network packets, processing data plane telemetry, running active probes to measure network performance, and visualizing metrics.
Chapter 11, Expert Insights, consists of people who have real-world hands-on experience with network automation and/or are using Go for network-related tasks and activities sharing their perspectives with us.
Chapter 12, Appendix: Building a Testing Environment, documents the process of building a testing environment that includes the compatible version of Containerlab and other related dependencies, to make sure you get a seamless experience running examples from any chapter of this book.