Housley ACI Programmability Workshop (ACI-PROG)

Introduction

With an increase in complexity and a reduced time to deploy, new techniques are required to provision data centre infrastructure.

Built on advanced virtualisation, ACI provides a platform for deploying next generation DC networks.

ACI uses a comprehensive data model, called the Management Information Tree (MIT) that provides structured access to all ACI policies and configurable data points. This MIT is accessed via an Application Programmable Interface (API) which is accessed either by the built-in GUI or any other application/program that needs to customise the user experience.

This new approach is resulting in a redefinition of the network administrators role and how the network integrates into and augments the business Application environment.

This class is aimed at providing insight into the ACI MIT and how the API is accessed. Various tools such as Visore, Postman, Python and Cobra are discussed to allow configuration of the ACI environment.

Thorough the use of these tools, organisation can rapidly deploy the network in a repeatable and intelligent programmatically way. This can be used from initial installation through to ongoing operations and support tasks.

Workshop Objectives:

During this class, the students will be able to:

• Review the ACI GUI deployment process
• Detail the APIC Data Model and Management Information Tree(MIT)
• Detail the ACI API, JSON and XML
• Introduce Python programming language
• Introduce Cobra Python Library
• Introduce the ACI Toolkit
• Overview deployment tools such as UCS Director, Ansible, Puppet and Chef

Target Audience

  • System engineers looking to streamline ACI deployments
    • Network engineers planning to extend their knowledge in automation technique
    • Support engineer
    • Developers writing code to support ACI centric infrastructures

Suggested Pre-requisites

The knowledge and skills that a student must have before attending this workshop are as follows:
• Attendees have an good understanding of ACI concepts
• Basic understanding of programming languages and logic
• Interest in learning Network Programming

Duration

3 days

 Workshop Content

Module 1: ACI Review
• Lesson 1: SDN and DevOps
• Lesson 2: ACI Key Concepts
• Lesson 3: ACI Hardware Overview
• Lesson 4: ACI Policy Review
• Lesson 5: ACI Policy Enforcement

Module 2: ACI Model
• Lesson 1: Objects, Attributes and Relationships
• Lesson 2: ACI Model and MIT
• Lesson 3: Embedded Docs Overview
• Lesson 4: CLI
• Lesson 5: Visore

Module 3: ACI API
• Lesson 1: ACI REST API Overview
• Lesson 2: REST API Payload formats. XML and JSON Overview
• Lesson 3: API Object Viewing
• Lesson 4: Postman and Direct API calls

Module 4: Python
• Lesson 1: Python Overview
• Lesson 2: Python Operation
• Lesson 3: Python Strings and Numbers
• Lesson 4: Python Containers
• Lesson 5: Python Functions
• Lesson 6: Python Logic and Flow – Keywords
• Lesson 7: Python IO
• Lesson 8: Python Modules
• Lesson 9: Python Classes

Module 5: ACI Cobra
• Lesson 1: Python and ACI API
• Lesson 2: Cobra Overview
• Lesson 3: ACI Cobra Structure and Modules
• Lesson 4: ACI Model
• Lesson 5: ACI SDK
• Lesson 6: Cobra Example
• Lesson 7: Arya

Module 6: ACI Toolkit – optional module
• Lesson 1: ACI Toolkit Installation
• Lesson 2: Toolkit Programming
• Lesson 3: ACI Toolkit Applications

Module 7: DevOps and Deployment tools
• Lesson 1: Overview of ACI Deployment and DEVOPS tools

 Labs

Lab 1: ACI Configuration Refresher
Lab 2: ACI Object Model
Lab 3: ACI API
Lab 4: Python
Lab 5: Cobra
Lab 6: ACI Toolkit (optional lab)