O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

DevOps for Networking

Book Description

Boost your organization’s growth by incorporating networking in the DevOps culture

About This Book

  • Implement networking fundamentals to the DevOps culture with ease, improving your organization’s stability
  • Leverage various open source tools such as Puppet and Ansible in order to automate your network
  • This step-by-step learning guide collaborating the functions of developers and network administrators

Who This Book Is For

The book is aimed for Network Engineers, Developers, IT operations and System admins who are planning to incorporate Networking in DevOps culture and have no knowledge about it.

What You Will Learn

  • Learn about public and private cloud networking using AWS and OpenStack as examples
  • Explore strategies that can be used by engineers or managers to initiate the cultural changes required to enable the automation of network functions
  • Learn about SDN and how an API-driven approach to networking can help solve common networking problems
  • Get the hang of configuration management tools, such as Ansible and Jenkins, that can be used to orchestrate and configure network devices
  • Setup continuous integration, delivery, and deployment pipelines for network functions
  • Create test environments for network changes
  • Understand how load balancing is becoming more software defined with the emergence of microservice applications

In Detail

Frustrated that your company’s network changes are still a manual set of activities that slow developers down? It doesn’t need to be that way any longer, as this book will help your company and network teams embrace DevOps and continuous delivery approaches, enabling them to automate all network functions.

This book aims to show readers network automation processes they could implement in their organizations. It will teach you the fundamentals of DevOps in networking and how to improve DevOps processes and workflows by providing automation in your network. You will be exposed to various networking strategies that are stopping your organization from scaling new projects quickly.

You will see how SDN and APIs are influencing DevOps transformations, which will in turn help you improve the scalability and efficiency of your organizations networks operations. You will also find out how to leverage various configuration management tools such as Ansible, to automate your network.

The book will also look at containers and the impact they are having on networking as well as looking at how automation impacts network security in a software-defined network.

Style and approach

This will be a comprehensive, learning guide for teaching our readers how networking can be leveraged to improve the DevOps culture for any organization.

Downloading the example code for this book. You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the code file.

Table of Contents

  1. DevOps for Networking
    1. Table of Contents
    2. DevOps for Networking
    3. Credits
    4. About the Author
    5. Acknowledgments
    6. About the Reviewer
    7. www.PacktPub.com
      1. eBooks, discount offers, and more
        1. Why subscribe?
    8. Preface
      1. What this book covers
      2. What you need for this book
      3. Who this book is for

      4. Conventions
      5. Reader feedback
      6. Customer support
        1. Downloading the color images of this book
        2. Errata
        3. Piracy
        4. Questions
    9. 1. The Impact of Cloud on Networking
      1. An overview of cloud approaches
        1. Public clouds
        2. Private cloud
        3. Hybrid cloud
        4. Software-defined
      2. The difference between Spanning Tree and Leaf-Spine networking
        1. Spanning Tree Protocol
        2. Leaf-Spine architecture
        3. OVSDB
      3. Changes that have occurred in networking with the introduction of public cloud
        1. An overview of AWS
        2. OpenStack overview
      4. The AWS approach to networking
        1. Amazon VPC
        2. Amazon IP addressing
        3. Amazon security groups
        4. Amazon regions and availability zones
        5. Amazon Elastic Load Balancing
      5. The OpenStack approach to networking
        1. OpenStack services
        2. OpenStack tenants
        3. OpenStack neutron
        4. Provisioning OpenStack networks
        5. OpenStack regions and availability zones
        6. OpenStack instance provisioning workflow
        7. OpenStack LBaaS
      6. Summary
    10. 2. The Emergence of Software-defined Networking
      1. Why SDN solutions are necessary
      2. How the Nuage SDN solution works
      3. Integrating OpenStack with the Nuage VSP platform
        1. Nuage or OpenStack managed networks
        2. The Nuage VSP software-defined object model
          1. Object model overview
      4. How the Nuage VSP platform can support greenfield and brownfield projects
      5. The Nuage VSP multicast support
      6. Summary
    11. 3. Bringing DevOps to Network Operations
      1. Initiating a change in behavior
        1. Reasons to implement DevOps
        2. Reasons to implement DevOps for networking
      2. Top-down DevOps initiatives for networking teams
        1. Analyzing successful teams
        2. Mapping out activity diagrams
        3. Changing the network team’s operational model
        4. Changing the network team's behavior
      3. Bottom-up DevOps initiatives for networking teams
        1. Evangelizing DevOps in the networking team
        2. Seeking sponsorship from a respected manager or engineer
        3. Automating a complex problem with the networking team
      4. Summary
    12. 4. Configuring Network Devices Using Ansible
      1. Network vendors' operating systems
        1. Cisco Ios and Nxos operating system
        2. Juniper Junos operating system
        3. Arista EOS operating system
      2. Introduction to Ansible
        1. Ansible directory structure
        2. Ansible inventory
        3. Ansible modules
        4. Ansible roles
        5. Ansible playbooks
        6. Executing an Ansible playbook
        7. Ansible var files and jinja2 templates
        8. Prerequisites using Ansible to configure network devices
        9. Ansible Galaxy
      3. Ansible core modules available for network operations
        1. The _command module
        2. The _config module
        3. The _template module
      4. Configuration management processes to manage network devices
        1. Desired state
        2. Change requests
        3. Self-service operations
      5. Summary
    13. 5. Orchestrating Load Balancers Using Ansible
      1. Centralized and distributed load balancers
        1. Centralized load balancing
        2. Distributed load balancing
      2. Popular load balancing solutions
        1. Citrix NetScaler
        2. F5 Big-IP
        3. Avi Networks
        4. Nginx
        5. HAProxy
      3. Load balancing immutable and static infrastructure
        1. Static and immutable servers
        2. Blue/green deployments
      4. Using Ansible to Orchestrate load balancers
        1. Delegation
        2. Utilizing serial to control roll percentages
        3. Dynamic inventories
        4. Tagging metadata
        5. Jinja2 filters
        6. Creating Ansible networking modules
      5. Summary
    14. 6. Orchestrating SDN Controllers Using Ansible
      1. Arguments against software-defined networking
        1. Added network complexity
        2. Lack of software-defined networking skills
        3. Stateful firewalling to support regularity requirements
      2. Why would organizations need software-defined networking?
        1. Software-defined networking adds agility and precision
        2. A good understanding of Continuous Delivery is key
        3. Simplifying complex networks
        4. Splitting up network operations
          1. New responsibilities in API-driven networking
          2. Overlay architecture setup
          3. Self-service networking
        5. Immutable networking
          1. A/B immutable networking
          2. The clean-up of redundant firewall rules
          3. Application decommissioning
        6. Using Ansible to orchestrate SDN controllers
          1. Using SDN for disaster recovery
          2. Storing A/B subnets and ACL rules in YAML files
      3. Summary
    15. 7. Using Continuous Integration Builds for Network Configuration
      1. Continuous integration overview
        1. Developer continuous integration
        2. Database continuous integration
      2. Tooling available for continuous integration
        1. Source control management systems
          1. Centralized SCM systems
          2. Distributed SCM systems
          3. Branching strategies
        2. Continuous integration build servers
      3. Network continuous integration
        1. Network validation engines
        2. Simple continuous integration builds for network devices
        3. Configuring a simple Jenkins network CI build
        4. Adding validations to network continuous integration builds
          1. Continuous integration for network devices
        5. Continuous integration builds for network orchestration
      4. Summary
    16. 8. Testing Network Changes
      1. Testing overview
        1. Unit testing
        2. Component testing
        3. Integration testing
        4. System testing
        5. Performance testing
        6. User acceptance testing
        7. Why is testing relevant to network teams?
        8. Network changes and testing today
      2. Quality assurance best practices
        1. Creating testing feedback loops
        2. Continuous integration testing
        3. Gated builds on branches
        4. Applying quality assurance best practices to networking
        5. Assigning network testing to quality gates
      3. Available test tools
        1. Unit testing tools
        2. Test Kitchen example using OpenStack
        3. Network checklist
        4. Network user journey
        5. Quality of Service
        6. Failover testing
        7. Network code quality tooling
      4. Summary
    17. 9. Using Continuous Delivery Pipelines to Deploy Network Changes
      1. Continuous integration package management
      2. Continuous Delivery and deployment overview
      3. Deployment methodologies
        1. Pull model
        2. Push model
        3. When to choose pull or push
      4. Packaging deployment artifacts
      5. Deployment pipeline tooling
        1. Artifact repositories
          1. Artifactory
        2. CD pipeline scheduler
          1. Jenkins
      6. Deploying network changes with deployment pipelines
        1. Network self-service
        2. Steps in a deployment pipeline
        3. Incorporating configuration management tooling
        4. Network teams' role in Continuous Delivery pipelines
        5. Failing fast and feedback loops
      7. Summary
    18. 10. The Impact of Containers on Networking
      1. Overview of containers
        1. Solaris Zones
        2. Linux namespaces
        3. Linux control groups
        4. Benefits of containers
        5. Deploying containers
          1. CoreOS
          2. etcd
        6. Docker
        7. Docker registry
        8. Docker daemon
        9. Packaging containers
          1. Dockerfile
          2. Packer-Docker integration
        10. Docker workflow
        11. Default Docker networking
        12. Docker user-defined bridge network
        13. Docker Swarm
          1. Docker machine
          2. Docker Compose
          3. Swarm architecture
        14. Kubernetes
          1. Kubernetes architecture
            1. Kubernetes master node
            2. Kubernetes worker node
            3. Kubernetes kubectl
            4. Kubernetes SDN integration
      2. Impact of containers on networking
      3. Summary
    19. 11. Securing the Network
      1. The evolution of network security and debunking myths
        1. Account management
        2. Network device configuration
        3. Firewalling
        4. Vulnerability detection
        5. Network segmentation
      2. Securing a software-defined network
        1. Attacks at Overlay
        2. Attacks on the underlay network?
        3. Attacks on the SDN controller
      3. Network security and Continuous Delivery
        1. Application connectivity topology
        2. Wrapping security checks into continuous integration
        3. Using Cloud metadata
      4. Summary
    20. Index