Please enable JavaScript.
Coggle requires JavaScript to display documents.
Module 14: Network Automation - Coggle Diagram
Module 14: Network Automation
4.6 IBN and Cisco DNA Center
14.6.1 Video - Intent-Based Networking
Intent-Based Networking (IBN) and Cisco Digital Network Architecture (DNA) Center can help you bring it all together to create an automated network
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.
Cisco views IBN as having three essential functions: translation, activation, and assurance.
14.6.3 Network Infrastructure as Fabric
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). Cisco DNA then continuously gathers data from a multitude of sources (devices and applications) to provide a rich context of information.
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, fabric provisioning, and policy-based segmentation in the enterprise network.
14.4 REST
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.
These are the different parts of the API request:
API Server - This is the URL for the server that answers REST requests. In this example it is the MapQuest API server.
Resources - Specifies the API that is being requested. In this example it is the MapQuest directions API.
Query - Specifies the data format and information the client is requesting from the API service. Queries can include:
Format - This is usually JSON but can be YAML or XML. In this example JSON is requested.
Key - The key is for authorization, if required. MapQuest requires a key for their directions API. In the above URI, you would need to replace “KEY” with a valid key to submit a valid request.
Parameters - Parameters are used to send information pertaining to the request. In this example, the query parameters include information about the directions that the API needs so it knows what directions to return: "from=San+Jose,Ca" and "to=Monterey,Ca".
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. As shown in the figure, a URI has two specializations:
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.
These are the parts of a URI, as shown in the figure:
Protocol/scheme - HTTPS or other protocols such as FTP, SFTP, mailto, and NNTP
Hostname - www.example.com
Path and file name - /author/book.html
Fragment - #page155
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: /text/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.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.
A REST API is an API that works on top of the HTTP protocol. It defines a set of functions developers can use to perform requests and receive responses via HTTP protocol such as GET and POST.
Conforming to the constraints of the REST architecture is generally referred to as being “RESTful”. An API can be considered “RESTful” if it has the following features:
Client-Server - The client handles the front end and the server handles the back end. Either can be replaced independently of the other.
Stateless - No client data is stored on the server between requests. The session state is stored on the client.
Cacheable - Clients can cache responses to improve performance.
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 Web Site
Developers often maintain web sites that include information about the API, parameter information, and usage examples. These sites may also allow the user to perform the API request within the developer web page by entering in the parameters and other information.
Postman
Postman is an application for testing and using REST APIs. It is available as a browser app or a standalone install. It contains everything required for constructing and sending REST API requests, including entering query parameters and keys.
Python
APIs can also be called from within a Python program. This allows for possible automation, customization, and App integration of the API.
Network Operating Systems
Using protocols such as NETCONF (NET CONFiguration) and RESTCONF, network operating systems are beginning to provide an alternative method for configuration, monitoring, and management.
14.3 APIs
14.3.4 Open, Internal, and Partner APIs
Open APIs are publicly available and can be used by anyone, often requiring an API key for usage control.
Internal APIs are used within a company for internal purposes, like employee access to company data.
Partner APIs are shared between businesses and their partners with permission, such as a travel service using an airline’s API.
14.3.3 An API Example
To book a reservation, the user enters details on the airline’s website, which directly interacts with the airline’s database to provide the requested information.
14.3.2 The API Concepttext
APIs are widely used in services like Amazon Web Services, Facebook, and smart devices. They allow different applications to interact by providing a set of rules for communication. When a user sends a request to an API, it retrieves specific information from the server and returns a response.
An API functions like a waiter in a restaurant: the customer places an order (request), the waiter (API) informs the kitchen (server), and the waiter brings back the prepared food (response).
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)
14.5 Configuration Management Tools
14.5.1 Video - Configuration Management Tools
14.5.2 Traditional Network Configuration
Network devices (e.g., routers, switches, firewalls) are traditionally configured manually using Command Line Interface (CLI).
APIs enable automation of network resource deployment and management.
14.5.3 Network Automation
Transition from managing dozens of devices to managing thousands of complex physical and virtual network devices.
Modern network management relies heavily on software to deploy, monitor, and configure networks automatically.
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.
Configuration management tools typically include automation and orchestration. Automation is when a tool automatically performs a task on a system.
14.5.5 Compare Ansible, Chef, Puppet, and SaltStack
14.1 Automation Overview
14.1.2 The Increase in Automation
Automation Overview:
Automation refers to self-driven processes that reduce or eliminate human intervention, first popularized in manufacturing for repetitive tasks.
Key Benefits:
Higher Output: Machines work 24/7 without fatigue.
Consistency: Ensures uniform product quality.
Data Insights: Automates data collection and analysis for decision-making.
Safety: Reduces human risk in hazardous environments.
Efficiency: Smart devices optimize energy and improve safety.
14.1.3 Thinking Devices
Smart devices can "think" by using external information to adjust their actions. This includes simple tasks, like reducing power consumption, or complex ones, like a self-driving car making decisions. This adaptability is achieved through programming and network automation tools.
14.2 Data Formats
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. This is because it is easy to parse and can be used with most modern programming languages, including Python.
This same information can be represented in JSON format. Notice that each object (each key/value pair) is a different piece of data about the interface including its name, a description, and whether the interface is enabled.
14.2.6 JSON Syntax Rules
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.4 Compare Data Formats
YAML Format
XML Format
JSON Format
14.2.7 YAML Data Format
YAML 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.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.8 XML Data Format
XML is one more type of human readable data format used to store, transfer, and read data by applications. Some of the characteristics of XML include:
It is like HTML , which is the standardized markup language for creating web pages and web applications.
It is self-descriptive. It encloses data within a related set of tags: <tag>data</tag>
Unlike HTML, XML uses no predefined tags or document structure.
14.2.2 The Data Formats Concept
Data formats are simply a way to store and exchange data in a structured format. One such format is called Hypertext Markup Language (HTML). HTML is a standard markup language for describing the structure of web pages, as shown the figure.
JavaScript Object Notation (JSON)
eXtensible Markup Language (XML)
YAML Ain’t Markup Language (YAML)