Please enable JavaScript.
Coggle requires JavaScript to display documents.
Module 14: Network Automation - Coggle Diagram
Module 14: Network Automation
14.4 REST
14.4.2 REST and RESTful API
Web browsers use HTTP or HTTPS to request (GET) a web page. If successfully requested (HTTP status code 200), web servers respond to GET requests with an HTML coded web page
14.4.3 RESTful Implementation
A RESTful web service is implemented using HTTP. It is a collection of resources with four defined aspects:
The base Uniform Resource Identifier (URI) for the web service, such as
http://example.com/resources
.
The data format supported by the web service. This is often JSON, YAML, or XML but could be any other data format that is a valid hypertext standard.
The set of operations supported by the web service using HTTP methods.
The API must be hypertext driven.
14.4.4 URI, URN, and URL
Web resources and web services such as RESTful APIs are identified using a URI. A URI is a string of characters that identifies a specific network resource.
Uniform Resource Name (URN) - identifies only the namespace of the resource (web page, document, image, etc.) without reference to the protocol.
Uniform Resource Locator (URL) - defines the network location of a specific resource on the network. HTTP or HTTPS URLs are typically used with web browsers. Other protocols such as FTP, SFTP, SSH, and others can use a URL. A URL using SFTP might look like: sftp://sftp.example.com.
Parts of a URI
14.4.5 Anatomy of a RESTful Request
In a RESTful Web service, a request made to a resource's URI will elicit a response. The response will be a payload typically formatted in JSON, but could be HTML, XML, or some other format.
14.4.6 RESTful API Applications
Many web sites and applications use APIs to access information and provide service for their customers. For example, when using a travel service web site, the travel service uses the API of various airlines to provide the user with airline, hotel and other information.
Developer website
Postman
Python
Network Operative System
14.1 Automation Overview
14.1.2 The Increase in Automation
Automation is any process that is self-driven, that reduces and potentially eliminates, the need for human intervention.
14.1.3 Thinking Devices
Many devices now incorporate smart technology to help to govern their behavior. This can be as simple as a smart appliance lowering its power consumption during periods of peak demand or as complex as a self-driving car.
14.2 Data Formats
14.2.2 The Data Formats Concept
When sharing data with people, the possibilities for how to display that information are almost endless. For example, think of how a restaurant might format their menu. It could be text-only, a bulleted list, or photos with captions, or just photos.
14.2.3 Data Format Rules
Data formats have rules and structure similar to what we have with programming and written languages. Each data format will have specific characteristics:
Syntax, which includes the types of brackets used, such as [ ], ( ), { }, the use of white space, or indentation, quotes, commas, and more.
How objects are represented, such as characters, strings, lists, and arrays.
How key/value pairs are represented. The key is usually on the left side and it identifies or describes the data. The value on the right is the data itself and can be a character, string, number, list or another type of data.
14.2.4 Compare Data Formats
To see this same data formatted as XML or YAML, search the internet for a JSON conversion tool. At this point it is not important to understand the details of each data format, but notice how each data format makes use of syntax and how the key/value pairs are represented.
14.2.5 JSON Data Format
JSON is a human readable data format used by applications for storing, transferring and reading data. JSON is a very popular format used by web services and APIs to provide public data.
14.2.6 JSON Syntax Rules
JSON
These are some of the characteristics of JSON:
It uses a hierarchical structure and contains nested values.
It uses braces { } to hold objects and square brackets [ ] hold arrays.
Its data is written as key/value pairs.
14.2.7 YAML Data Format
AML is another type of human readable data format used by applications for storing, transferring, and reading data. Some of the characteristic of YAML include:
It is like JSON and is considered a superset of JSON.
It has a minimalist format making it easy to both read and write.
It uses indentation to define its structure, without the use of brackets or commas.
14.2.8 XML Data Format
14.3 APIs
14.3.2 The API Concept
APIs are found almost everywhere. Amazon Web Services, Facebook, and home automation devices such as thermostats, refrigerators, and wireless lighting systems, all use APIs. They are also used for building programmable network automation.
14.3.3 An API Example
To really understand how APIs can be used to provide data and services, we will look at two options for booking airline reservations. The first option uses the web site of a specific airline, as shown in the figure.
14.3.4 Open, Internal, and Partner APIs
14.3.5 Types of Web Service APIs
Simple Object Access Protocol (SOAP)
Representational State Transfer (REST)
eXtensible Markup Language-Remote Procedure Call (XML-RPC)
JavaScript Object Notation-Remote Procedure Call (JSON-RPC)
Module 14.5: Configuration Management Tools
14.5.2 Traditional Network Configuration
Network devices such as router, switches, and firewalls have traditionally been configured by a network administrator using the CLI, as shown in the figure.
14.5.3 Network Automation
We are rapidly moving away from a world where a network administrator manages a few dozen network devices, to one where they are deploying and managing hundreds, thousands, and even tens of thousands of complex network devices (both physical and virtual) with the help of software.
14.5.4 Configuration Management Tools
Configuration management tools make use of RESTful API requests to automate tasks and can scale across thousands of devices. Configuration management tools maintain the characteristics of a system, or network, for consistency. These are some characteristics of the network that administrators benefit from automating:
types
Software and version control
Device attributes such as names, addressing, and security
Protocol configurations
ACL configurations
14.5.5 Compare Ansible, Chef, Puppet, and SaltStack
Ansible, Chef, Puppet, and SaltStack all come with API documentation for configuring RESTful API requests. All of them support JSON and YAML as well as other data formats.
14.6 IBN and Cisco DNA Center
14.6.2 Intent-Based Networking Overview
IBN is the emerging industry model for the next generation of networking. IBN builds on Software-Defined Networking (SDN), transforming a hardware-centric and manual approach to designing and operating networks to one that is software-centric and fully automated.
14.6.3 Network Infrastructure as Fabric
From the perspective of IBN, the physical and virtual network infrastructure is a fabric. Fabric is a term used to describe an overlay that represents the logical topology used to virtually connect to devices, as shown in the figure. The overlay limits the number of devices the network administrator must program.
14.6.4 Cisco Digital Network Architecture (DNA)
Cisco implements the IBN fabric using Cisco DNA. As displayed in the figure, the business intent is securely deployed into the network infrastructure (the fabric).
14.6.5 Cisco DNA Center
Cisco DNA Center is the foundational controller and analytics platform at the heart of Cisco DNA. It supports the expression of intent for multiple use cases, including basic automation capabilities.