Expanding your impact with programmability in the data center

27

Transcript of Expanding your impact with programmability in the data center

Digital Readiness ModelA Journey

What is Changing?

1. Automation

Model T 1908 - $850 ($21,075 today)1925 - $250 ($3,367)

12.5 Hours to 90 minutes

Automation in networking is inevitable

Time IT spends on operationsCEOs are worried about IT strategy not supporting business growth80% 57%

0

100%

Source: Forrester

CAPEX OPEX

33% 67%

0 10 100 1000

Computing Networking

Seconds

Source: Open Compute Project

“…While other components of the IT infrastructure have become more programmable and allow for faster, automated provisioning, installing network circuits is still a painstakingly manual process...”

—Andrew Lerner, Gartner Research

Network Expenses Deployment Speed

Digital Business DemandsOperational Efficiency and Agility

DATA SEGMENTNUM1 DB ?NUM2 DB ?RESULT DB ?MSG1 DB 10,13,"ENTER FIRST NUMBER TO ADD : $"MSG2 DB 10,13,"ENTER SECOND NUMBER TO ADD : $" MSG3 DB 10,13,"RESULT OF ADDITION IS : $"

ENDSCODE SEGMENT

ASSUME DS:DATA CS:CODESTART:

MOV AX,DATAMOV DS,AX

LEA DX,MSG1MOV AH,9INT 21H

MOV AH,1INT 21HSUB AL,30HMOV NUM1,AL

LEA DX,MSG2MOV AH,9INT 21H

MOV AH,1INT 21HSUB AL,30HMOV NUM2,AL

# This program adds two numbers# Numbers are provided by the user

# Store input numbersnum1 = input('Enter first number: ')num2 = input('Enter second number: ')

# Add two numberssum = float(num1) + float(num2)

# Display the sumprint('The sum of {0} and {1} is {2}'.format(num1,num2,sum))

2. Operational Simplicityx86 Assembler

Any High Level Language

Is IOS CLI quickly becoming the Network version of Assembly Language ?

• Which way would you prefer to configure your network ?

3. Network Disaggregation

DevOps

Applications

Business

OperationsDevelopment

4. DevOps is driving Speed and Agility

Developer

Pulls From

Trunk

Version control

system

Make incremental

changes on local

environment

Continuous

Integration

Server

CI monitors repository

for changes

Developer

pushes

commits

Changes Kick

off test BuildTest Instance

Run Tests:

Unit

Integration

Smoke

Production

Report back

test results

If tests pass:

Deploy code to

artifact

repository

CI notifies of

pass / fail

1

2

3

4

5

6

7

8

Artifact

Repository

9

Pushing to repo

could just mean

changing the reverse

proxy server

DevOps in Action

Summary - Why Programmability?

11

More Flexibility More InnovationMore Speed More Repeatability

Fewer Mistakes

Programmability in Action

Questions to ask before automating a task:

• Will automating this task save time?

• Will automating this task save money?

• Is the task prone to errors?

When is a task worth Automating ?

“Not all tasks are to be automated...”

What are we doing ?

Note: The difference between automation and orchestration is that automation deals with a single element or single device, and orchestration assembles multiple elements or multiple devices to accomplish a task.

Example of Automated WorkFlows

DC Programmability Demo

Demo Deeper Dive

Ways to Manage Network Components

18

#!/usr/bin/env python

print('Hello World!')

1-On Box:

#!/usr/bin/env python

print('Hello World!')

2-Off Box:

Controller

3-Via a Controller

What's an Application Programming Interface (API)?

19

1. A set of routines, protocols, and tools for building modular or distributed applications

2. A set of interface definitions for operations, inputs, outputs, and underlying types.

3. A means through which network elements and applications can be programmatically controlled

•What is to be acted upon?

•How is data to be formatted?

•What action is to be taken?

•How is the API invoked?

Methods Actions

ObjectsFormats

What is REST?

20

• Stands for “REpresentational State Transfer”

• An architectural style for designing scalable networked applications

• Uses HTTP or HTTPS to transmit calls between entities

• Operates on resource representations, each uniquely identified by a URL

• Term was first used by Roy T Fielding in 2000

Author of HTTP 1.0

Alternative to Simple Object Access Protocol (SOAP) and Web Services Description Language (WSDL)

• Developed by the W3C TAG

Client Server

Client requests object state

Server returns object state

Client specifies desired state

Server returns resultant state

Method Description

GET List the URIs in a collection, or a representation of an individual member

POST Create a new entry in a collection. The newentry's URI is assigned automatically and returned by the operation

PUT Replace an entire collection with a collection, or individual member with another. If a member doesn't exist create it

DELETE Delete an entire collection or an individual member

What is XML?

23

• Extensible Markup Language

• Similar to HTML but designed to convey data (HTML is focused on data visualization)

• Tags are self-defined rather than standardized

• Designed to be self-descriptive

<?xml version="1.0"?><ins_api>

<version>1.0</version><type>cli_show</type><chunk>0</chunk><sid>sid</sid><input>sho ver</input><output_format>xml</output_format>

</ins_api>

RequestRoot Element

Each element has a starting and closing tag

<?xml version="1.0" encoding="UTF-8"?><ins_api><type>cli_show</type><version>1.0</version><sid>eoc</sid><outputs>

<output><body><header_str>Cisco Nexus Operating System (NX-OS) Software

TAC support: http://www.cisco.com/tacCopyright (C) 2002-2014, Cisco and/or its affiliates.All rights reservedhttp://www.gnu.org/licenses/old-licenses/library.txt.</header_str>

<bios_ver_str>07.11</bios_ver_str><kickstart_ver_str>6.1(2)I2(2a)</kickstart_ver_str><bios_cmpl_time>05/28/2014</bios_cmpl_time>

<kick_file_name>bootflash:///n9000-dk9.6.1.2.I2.2a.bin</kick_file_name><manufacturer>Cisco Systems, Inc.</manufacturer>

<TABLE_smu_list><ROW_smu_list><install_smu_id>n9000-dk9.6.1.2.I2.2a.CSCup81353.bin</install_smu_id></ROW_smu_list>

</TABLE_smu_list></body><input>sho ver</input><msg>Success</msg><code>200</code>

</output></outputs>

</ins_api>

Response

What is JSON?

24

• JavaScript Object Notation

• Focused on being more human-readable

• Uses attribute–value pairs

• Easy for machines to parse and generate

• Built on two structures:

Request

{"ins_api": {

"version": "1.0","type": "cli_show","chunk": "0","sid": "1","input": "sho ver","output_format": "json"

}}

Response"ins_api": {"type": "cli_show","version": "1.0","sid": "eoc","outputs": {

"output": {"input": "sho ver","msg": "Success","code": "200","body": {"header_str": "Cisco Nexus Operating System (NX-OS)"kickstart_ver_str": "6.1(2)I2(2a)","bios_cmpl_time": "05/28/2014","kick_file_name": "bootflash:///n9000-dk9.6.1.2.I2.2a.bin",

"rr_reason": "Reset Requested by CLI command reload","rr_sys_ver": "6.1(2)I2(2a)","rr_service": "","manufacturer": "Cisco Systems, Inc.","TABLE_smu_list": {

"ROW_smu_list": {"install_smu_id": "n9000-dk9.6.1.2.I2.2a.CSCup81353.bin"

}}

}}

}}

}

a collection of name/value pairs

an ordered list of values

Software Development Kits (SDKs)A collection of tools that support the creation of applications for certain software packages,

frameworks, or hardware platforms.

Tools that help developers rapidly and effectively develop applications atop (Cisco) network infrastructures.

An SDK normally consists of; Set of APIs Sample Code Technical Notes Debugging Facilities

Cisco Examples of SDK APIC Python SDK UCS SDK Cisco IP Phone

26

# python

Python 2.7.2 (default, Mar 6 2012, 15:51:12)

[GCC 3.4.3 (MontaVista 3.4.3-25.0.143.0800417 2008-02-22)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

Loaded cisco NxOS lib!

>>>

Interactive Python Shell

# python bootflash:showBuffer.py

Mon Jan 30 19:26:36 UTC 2012

|------------------------------------------------------------|

Total Instant Usage 0

Remaining Instant Usage 46080

Max Cell Usage 0

Switch Cell Count 46080

|------------------------------------------------------------|

Mon Jan 30 19:26:38 UTC 2012

#

Run Python Script

Integrated Development Environment (IDE)

A software application that facilitates coding and software developmentAn IDE normally consists of

A source code editorBuild automation toolsA debuggerIntelligent code completion

28

What Does This

Mean for You?

1. Automation and

orchestration in the DC are

key building blocks for

success.

2. LOBs and Developers are

key influencers and decision

makers when it comes to next

generation modern data center

architecture deployments.

3. Follow the

programmability journey

and participate in new Cisco

trainings and services that

help you understand the

transition.