Cisco CCNA Programmability and Automation

Automation is everywhere today, from self-serve checkouts at the store to automatic thermostats.  There are many benefits including:

  • Machines can work 24 hours a day
  • Automation allows the collection of vast amounts of data that can be quickly analyzed to provide information which can help guide an event or process
  • and more…

Today we are surrounded by smart devices such as phones, tablets, thermostats, doorbells, cars, and more.  These devices are connected to sensors and each other allowing them to think and react based on automation programming.

The automation and programming of network devices relies upon data formats such as:

  • JavaScript Object Notation or JSON,
  • eXtensible Markup Language  or XML,
  • and YAML Ain’t Markup Language or YAML.

Data formats like JSON have rules and syntax making them easy to work with for both human and machine.  JSON is one that is considered “human-readable” meaning that it is easy to understand and it is also popular because it is usable by most modern programming languages.

An example of the JSON format looks like the following from JSON.org:

{
    "glossary": {
        "title": "example glossary",
		"GlossDiv": {
            "title": "S",
			"GlossList": {
                "GlossEntry": {
                    "ID": "SGML",
					"SortAs": "SGML",
					"GlossTerm": "Standard Generalized Markup Language",
					"Acronym": "SGML",
					"Abbrev": "ISO 8879:1986",
					"GlossDef": {
                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
						"GlossSeeAlso": ["GML", "XML"]
                    },
					"GlossSee": "markup"
                }
            }
        }
    }
}

Another key to automation and programmability is the concept of API’s.  An API is  software that allows other applications to access their data or services.  It’s a set of rules describing how one application can interact with another and the instructions to allow the interaction to occur.  The most basic description is to say when a user application needs information an API request is sent to the server hosting that data, the server then sends an API response along with the requested data.  There are several types of API’s we go over in out detailed bootcamp book, they are Open APIs, Private APIs, and Partner APIs.

Network Programmability and Software Defined Networks

Network programmability and SDN uses the data generated by network equipment, analyzes all of the pieces, and makes changes based on calculations to improve the network’s functionality.  The forwarding of data does not change when using programmability, automation, and SDN, but the how and why does.  The networking devices have 3 different planes they function in:

  • Data plane
    • The data plane, also known as the user plane, forwarding plane, and more,  is best described as the part of the network that carriers user traffic.
  • Control plan
    • The control plane is the part of the network that deals with controlling what happens with incoming traffic
  • Management plane.
    • The management place refers to all of the functions used to control and monitor devices.

Software-Defined-Networking is a concept of network management that enables both dynamic and efficient network configuration allowing for improvements in network performance and monitoring. Traditional networks use decentralized and inefficient management, SDN removes that inefficiency with traditional, statically configured networks.  With SDN and automation, the activities of the control plan are altered.  The control can be quite literally automated while still distributed to each device or with SDN, they control plane can be centralized to allow greater flexibility and a better central view of the entire network that could not be attained any other way.

In our CCNA 200-301 BootCamp book we go into full detail about automation, programmability, software defined netwokrs, and their associated protocols and API’s.