You are on page 1of 8

1.

4 Introduction to Network Programmability

Current Industry Trends

Open Transcript

This topic provides an overview of some of the broad industry trends and more specific trends in the networking
industry.

Specific networking industry trends include:

Open Source Software: Open source generally refers to a community-driven model of developing and
maintaining software to increase flexibility, customizability while lowering the capital expense required.
Therefore, OSS development has the ability to outpace many commercial products.

Programmable Infrastructure: An important concept to understand is that network programmability seeks to


greatly decrease human-to-machine interaction in order to fulfill the goals of SDN and the DevOps movement.
Therefore, network programmability is a very tangible aspect of SDN in production today.

Software Defined Networking: SDN refers to the set of techniques that are used to manage and change a
network’s behavior through an open interface rather than closed-box methods. Several common themes in this
trend are disaggregation of a network device’s control and data planes, virtualization of network functionality,
policy-centric networking, and a movement toward open protocols.

DevOps: A cultural trend to develop and promote methods to drive speed and agility in the deployment,
maintenance, and continual improvement of systems and infrastructure. It is important to understand that this
cultural trend is driving better configuration and automation tools for network engineers.

Application Centric Infrastructure: A trend in the networking industry is to focus on applications. It is driving
a policy-based networking model, such as Cisco’s Application Centric Infrastructure solution to automate and
expedite data center application deployment.

Open Source Software


This subtopic focuses specifically on open source software in networking.

Open source software is part of a community-driven trend to develop and promote open standards development
particularly in the networking industry. Closely related to the goals of software defined networking and the DevOps
movement, (explained later in this lesson), open networking seeks to improve networking by implementing an
open source foundation to NOS and a community-driven model for continuous improvement.

The term “open” can refer to multiple concepts such as open source software, supporting open APIs (discussed
later in this module), and supporting open protocol standards. Therefore, there can be very divergent means of
creating “openness” in order to serve various purposes.

Several goals of the open source software trend are:

Open access to the underlying NOS

Community involvement in continuous improvement

The use of open APIs

Supporting open protocol standards


Some examples of open networking software projects are:

OpenFlow: A low-level protocol that is used to manipulate the forwarding table of a switch.

OVS: A virtual switch that is normally used along with hypervisors to connect virtual machines within a host or
hosts on different networks.

Contiv: Several projects defining infrastructure operational policies for container-based application
deployment.

OpenStack Neutron: An SDN project that is focused on delivering network-as-a-service in multi-tenant virtual
compute environments.

OpenDaylight: A collaborative project seeking to promote and organize a community-driven approach to SDN
adoption.

FD.io (Fast data—Input/Output): a collection of several projects and libraries to amplify the transformation
that began with DPDK to support flexible, programmable, and composable services on a generic hardware
platform. A key component is the Vector Packet Processing (VPP) library that is donated by Cisco. The code is
already running in products on the market today. The VPP library is highly modular, allowing for new graph
nodes to be easily “plugged in” without changes to the underlying code base. It gives developers the potential
to easily build any number of packet processing solutions with varying forwarding graphs.

In contrast to all these projects, a closed software networking model does not allow access to an underlying NOS
and does not support open APIs and community-driven continuous improvement.

Programmable Infrastructure
This subtopic focuses on defining programmable infrastructure.

Automating and scripting network tasks is the hallmark of a programmable infrastructure. In this course, you will be
investigating two forms of network programmability—“on-box” and “off-box.”

On-box programming refers to scripting mechanisms such as the Tool Command Language (TCL) or Embedded
Event Manager (EEM) which are both pre-built into the NOS of various Cisco platforms. Several platforms expose
a native Linux interface and offer access to a Python execution engine used to extend on-box programmability.
On-box mechanisms are normally specific to the platform itself.
Off-box programming refers to scripting mechanisms that exist outside a network device. It can be in the form of
an external controller or some external server which often communicate to the network device using robust and
modern APIs. Examples of these APIs include NETCONF, REST, and RESTCONF.

Examples of on-box automation and scripting mechanisms are:

TCL: Cisco introduced embedded TCL into several of its operating systems over a decade ago and is a
common method to perform on-box scripting of simple tasks.

Embedded Event Manager (EEM): EEM is another embedded automation mechanism on many Cisco
platforms that are used to provide real-time event detection and scripting.

POAP: Used along with a DHCP server, a scripting server running TCL scripts, and a more generic server
storing configuration files, license files, and software images, Cisco POAP provides a means to automate
provisioning of network devices with no human interaction.

Smart Install: A zero-touch method to provision a larger volume of network devices using on board
mechanisms, the Cisco Discovery Protocol, a TFTP server, and a network device director.

Smart Port Macros: Macros that are embedded in the switch software including some pre-tested Cisco-
recommended templates for Catalyst switches. Smart Port macros are simple, user-defined macros that can be
applied globally or at the interface level.

Python: Certain Cisco platforms support built-in interactive and non-interactive Python scripting modes which
give programmatic access to the network device’s command line interface.

Examples of programmatic APIs and mechanisms that enable off-box programmability to automate and script
network devices are:

REST APIs: APIs using REST are stateless, client-server, and resource-based which means they use, in
programming terms, nouns rather than verbs. REST APIs normally use HTTP as the transport mechanism.

NETCONF: The NETCONF “provides mechanisms to install, manipulate, and delete the configuration of
network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data
and the protocol messages.”

RESTCONF: RESTCONF is “an HTTP-based protocol that provides a programmatic interface for accessing
data that are defined in YANG and using the datastores that are defined in NETCONF.”

SDK: A set of tools that allows an end user to create their own custom applications for various purposes
including managing hardware platforms.

DevOps Tools: The DevOps culture enables the continuous development and improvement of open, off-box
mechanisms.

Linux: Many network devices are now entirely Linux-based which means that Linux is almost always a part of
the development of off-box methods for network programmability.

Software Defined Networking


This subtopic focuses on software defined networking as a current industry trend.
SDN is a set of techniques, not necessarily a specific technology, that seeks to program network devices either
through a controller or some other external mechanism. SDN refers to the capacity to control, manage, and
change network behavior dynamically through an open interface rather than through direct, closed-box methods. It
allows the network do be managed as a whole and increase the ability to configure the network in a more
deterministic and predictable manner.

SDN was initially synonymous with OpenFlow but quickly developed into other architectures, designs, and ideas
for how networks can be changed, re-architected, and managed to better enable business processes.

1. The trend to separate the control plane and data plane of a network device focuses less on the protocol being
used, though it is commonly OpenFlow, and more on the actual benefit separation provides to the business.

2. Software-Only Network Virtualization solutions offer a native software-only approach that builds overlay tunnels
among hypervisors in the data center. While these solutions offer some agility for the virtual network, there is
still little to no integration for physical workloads. Therefore, there are often performance limitations.

3. Network Functions Virtualization is becoming a ubiquitous technology in which all network functions are
virtualized. Commonly virtualized network appliances are firewalls, load balancers, intrusion detection and
prevention devices, routers, and sniffers.

4. Several vendors are marketing a bare metal switching platform utilizing a Linux NOS. Bare metal switch
vendors typically compete on price, but with network vendors, including Cisco, using an increased amount of
merchant silicon, there is often less benefit to utilize a bare-metal or white-box approach—especially when
compared to industry leading Cisco hardware and software solutions.

5. Today, nearly every Cisco network device supports APIs. For example, IOS-XE currently supports NETCONF
whereas the IOS-XR supports NETCONF, RESTCONF and gRPC. Nexus switches support NX-API, and ACI,
APIC-EM, and the ASA all support REST. Lastly, the Open SDN Controller (OSC) supports REST and
RESTCONF.

6. Cisco’s Policy-based networking platform, ACI, changes the way applications are delivered. Policy-based
networking adds a layer of abstraction in order to facilitate an easier, faster and more dynamic means for
systems and network engineers to deploy applications.

DevOps
This subtopic explores the DevOps culture and how it relates to trends in the networking industry.
DevOps is an emerging trend in IT processes that has been taking shape over the last few years. There are
several main goals:

Increase software deployment frequency

Speed up time-to-market

Decrease the failure rate of new releases

Decrease the failure rate of new releases

Preferring the Agile methodology, the DevOps culture values an incremental approach to software development,
release, and continuous improvement. Developers and engineers pick one problem at a time and conquer it taking
smaller, incremental steps.

The acronym CALMS is a popular way to encapsulate the core ideas of the trend. CAMS stands for Culture,
Automation, Ldean, Measurement, and Sharing.

Culture is the most critical component of an organization seeking to implement a DevOps approach to managing
infrastructure and applications.

Typically, DevOps culture is marked by values such as:

Workplace trust

Respect

Collaboration

Shared goals

Being supportive

A sense of no blame/no victims

DevOps has a different kind of information flow such as working in the open, for example, and managers tend to
embrace the opposite of a top-down style of communication among teams. Ultimately, engineers should be
comfortable asking and answering why a task is being done.
Examples of tools that are used by a DevOps culture to enable a robust deployment pipeline are varied but include
various Linux operating systems, several programming languages such as Python, Go and Ruby, configuration
management mechanisms such as SaltStack, Ansible, Chef and Puppet, continuous integration build servers such
as Travis CI and Jenkins, and version control using GIT.

Cisco ACI
This subtopic takes a closer look at Cisco ACI.

Simplifies, optimizes, and accelerates the application deployment lifecycle.

Employs an open-ecosystem approach integrating physical and virtual elements.

Supports open APIs, open standards, and open source elements to enable greater flexibility for development
and operations.

Cisco ACI is a shift in data center architecture to integrate physical and virtual elements in an open ecosystem
model utilizing APIs, open standards, and open source elements.
Cisco ACI:

Simplifies, optimizes, and accelerates the application deployment lifecycle.

Employs an open-ecosystem approach integrating physical and virtual elements.

Supports open APIs, open standards, and open source elements to enable greater flexibility for development
and operations.

Content Review Question

Which of the following are examples of on-box automation and scripting mechanisms? (Choose two.)

DevOps Tools

Tool Command Language (TCL)

RESTCONF

Python

Submit

You might also like