Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Expanding your impact with programmability in the data center

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Wird geladen in …3
×

Hier ansehen

1 von 27 Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Anzeige

Ähnlich wie Expanding your impact with programmability in the data center (20)

Weitere von Cisco Canada (20)

Anzeige

Aktuellste (20)

Expanding your impact with programmability in the data center

  1. 1. Digital Readiness Model A Journey
  2. 2. What is Changing?
  3. 3. 1. Automation Model T 1908 - $850 ($21,075 today) 1925 - $250 ($3,367) 12.5 Hours to 90 minutes Automation in networking is inevitable
  4. 4. Time IT spends on operations CEOs 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 Demands Operational Efficiency and Agility
  5. 5. DATA SEGMENT NUM1 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 : $" ENDS CODE SEGMENT ASSUME DS:DATA CS:CODE START: MOV AX,DATA MOV DS,AX LEA DX,MSG1 MOV AH,9 INT 21H MOV AH,1 INT 21H SUB AL,30H MOV NUM1,AL LEA DX,MSG2 MOV AH,9 INT 21H MOV AH,1 INT 21H SUB AL,30H MOV NUM2,AL # This program adds two numbers # Numbers are provided by the user # Store input numbers num1 = input('Enter first number: ') num2 = input('Enter second number: ') # Add two numbers sum = float(num1) + float(num2) # Display the sum print('The sum of {0} and {1} is {2}'.format(num1,num2,sum)) 2. Operational Simplicity x86 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 ?
  6. 6. 3. Network Disaggregation
  7. 7. DevOps Applications Business OperationsDevelopment 4. DevOps is driving Speed and Agility
  8. 8. 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 Build Test 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
  9. 9. Summary - Why Programmability? 11 More Flexibility More InnovationMore Speed More Repeatability Fewer Mistakes
  10. 10. Programmability in Action
  11. 11. 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...”
  12. 12. 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.
  13. 13. Example of Automated WorkFlows
  14. 14. DC Programmability Demo
  15. 15. Demo Deeper Dive
  16. 16. 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
  17. 17. 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
  18. 18. 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
  19. 19. 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 new entry'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
  20. 20. 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> Request Root 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/tac Copyright (C) 2002-2014, Cisco and/or its affiliates. All rights reserved http://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
  21. 21. 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
  22. 22. 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
  23. 23. # 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
  24. 24. Integrated Development Environment (IDE) A software application that facilitates coding and software development An IDE normally consists of A source code editor Build automation tools A debugger Intelligent code completion 28
  25. 25. 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.

×