Build Status

published

Cisco DevNet Evolving Technologies

This book covers moderm Cisco Evolving Technologies (DevNet oriented)
and includes detailed explanations of modern cloud, network programmability,
and Internet of Things (IoT) technologies. The book includes a mix of
high level explanations, detailed diagrams, and hands-on demonstrations
using a variety of Cisco and third party products and services.

You can get the newest PDF of the book from my publications page:
njrusmc.net/pub/pub.html

Contact information:
Email: njrusmc@gmail.com
Twitter: @nickrusso42518

Purpose

This book is designed for anyone studying for Cisco DevNet certifications
or other written exams. Since summer 2016, Cisco expert level written exams have
included 10% of their questions pulled from a new "evolving techologies"
topic domain. This book seeks to address the technologies in that new section,
as well as dedicated DevNet exams which focus heavily on these topics.

Structure

The simplified tree structure below outlines how the TeX source files are
organized. Each img/ folder has .jpg or .png images which are
imported to the TeX files as needed. Auxiliary files (Makefile, setup
scripts, etc.) are not shown below and are discussed in the Builds section.

The structure of this best aligns almost perfectly with Cisco's current
blueprint. There are three levels of hierarchy:

  1. Sections represent the topmost level of organization, which include
    the main three technical topics, plus the collection of legacy topics
    and the glossary.
  2. Subsections represent the individual blueprint topics, and each one
    has a corresponding *.tex file with a prefix corresponding to its
    official blueprint name. For example, a1a4 is the blueprint topic
    for "Workload Migration".
  3. Subsubsections represent a level of depth not represented on the
    blueprint. These are the author's excursions into more detailed subjects,
    often technical demonstrations or detailed analyses of the technologies
    being discussed.

At the top of the hierarchy is the main.tex file, which does very little
beyond importing the required TeX packages and including all the *.tex
source files for individual sections.

$ tree --charset=ascii
|-- content
|   |-- cloud
|   |   |-- a1a-design
|   |   |   |-- source-files.tex
|   |   |   `-- img/
|   |   `-- a1b-infra
|   |       |-- source-files.tex
|   |       `-- img/
|   |-- iot
|   |   `-- a3a-archdeploy
|   |       |-- source-files.tex
|   |       `-- img/
|   |-- legacy
|   |   |-- img/
|   |   |-- old-cloud
|   |   |   `-- source-files.tex
|   |   |-- old-iot
|   |   |   `-- source-files.tex
|   |   `-- old-netprog
|   |       `-- source-files.tex
|   |-- misc
|   |   |-- source-files.tex
|   |   `-- img/
|   `-- netprog
|       `-- a2a-archops
|           |-- source-files.tex
|           `-- img
`-- main.tex

Builds

TLDR: For manual builds, use make by itself. You'll get a PDF out of it.

To simplify testing both for CI and for manual executions, a GNU Makefile
with phony targets is used. Use the following shortcuts to test the playbook.
Review the file to see a detailed explanation of each target.

The texsetup.sh script handles the installation of the newest available
version of TeX Live.
This includes installing the basic subset of packages to reduce
download size. It also installs all required tlmgr packages used in the
project. Anyone forking this repository can simply extend the list of
packages in the shell script.

Travis CI is used for CI/CD. After the PDF is compiled, it is copied
(as an artifact) to AWS S3 within my personal website's file bucket. It
is automatically and immediately available for public consumption after
this occurs. See .travis.yml for more details on the CI/CD steps.

FAQ

Q: Why was LaTeX chosen over simpler Markdown or reStructuredText?
A: The end goal is to deliver a standalone PDF for offline and
independent viewing. Using Markdown, for example, requires tools like
pandoc and has very limited formatting options. Other solutions use
LaTeX as an intermediary anyway, so I felt it was easiest just to write
the source in LaTeX from the beginning.

Q: Why did you spend time to convert Microsoft Word to LaTeX anyway?
A: As the book grew, I found it difficult using MS Word on my Macbook to
format things properly and get a consistent design without extensive
manual effort. Additionally, I find it very fitting that a book on "evolving
technologies" be written, maintained, tested, and delivered as if it were
code. "Walk the walk", as it were.

Q: How often is the book updated with new content?
A: Traditionally, the book has been updated every 6 months, starting
in the summer of 2016 and continuing until the summer of 2018 (5 releases).
Given the new version control and pipeline design, releases happen
more frequently. Whenever I have changes, I'll push them here. An
updated PDF will be automatically generated and uploaded to my website.

Q: Will your book still be available on Cisco Learning Network?
A: I have phased out the legacy delivery method on Cisco Learning Network
after having updated the original page with a new reference to the current
book location. I recommend downloading the book directly from my website
(avoid third-party distributors) for your security.

View code on GitHub
  • Owner

  • Contributors

    +1Github contributor
  • Categories

  • Programming Languages

    TeX
  • License

    BSD 3-Clause "New" or "Revised" License

Code Exchange Community

Get help, share code, and collaborate with other developers in the Code Exchange community.View Community
Disclaimer:
Cisco provides Code Exchange for convenience and informational purposes only, with no support of any kind. This page contains information and links from third-party websites that are governed by their own separate terms. Reference to a project or contributor on this page does not imply any affiliation with or endorsement by Cisco.