This blog is a collaboration between lead authorQuinn Snyder,Developer Advocate, Cisco DevRelandRavi Balakrishnan.
You've heard for several years how the Cloud Networking (CN) team inside of Cisco has been transforming the operation, management, and observability of the modern datacenter. From new platforms and applications to new ways in which multiple fabrics and clouds can be bridged together, the CN team has put in a ton of effort into making datacenter networking as effortless as possible no matter how you choose to manage your platforms, through UI, API, or leveraging Infrastructure as Code (IaC) tooling.
Cisco Developer Relations (DevRel) is committed to making sure that we continue each BE's design and engineering ethos forward when we create labs, sample code, and sandboxes. In reviewing all the work that the CN team has done, one thing stands out above all others -the attention to detail spent by engineering on creating, testing, and validating Ansible modules and Terraform providers for the products within the CN portfolio. We wanted to make sure that DevRel work was front-and-center in everything possible, and because there are many resources out there, a blog post summarizing and highlighting it is important.
Highlighting all the IaC efforts would be infructuous if we didn't have a place where users and practitioners could go to learn how to use IaC concepts with their CN controllers and applications. To achieve this objective, we have created guided learning labs that focus on foundational learning and targeted use-cases for a given platform or technology. Each of these lab modules is grouped by technology, explaining the structure of the IaC file, how it accomplishes the task, and ways in which the results of the change can be verified through output or through UI interactions (trust, but verify is important when you're learning). Each learning module also includes links to a public repository holding sample code -allowing you to focus on the IaC DSL, rather than copying and pasting and hoping something works.
If you have frequented the DevNet Learning Modules and Tracks before, you may recognize that the bottom two modules, focused on DCNM, haven't been talked about before, and you'd be correct. These modules were released over the summer and are focused on using IaC to interact with DCNM for common tasks associated with VXLAN-EVPN fabrics.
There are also singular labs created outside of a track that cover more complex or ad-hoc topics. One of the most popular ones to date has been the use of service metadata from HashiCorp Consul to feed into an IaC module driven by Terraform to automatically scale security infrastructure within Cisco ACI. You can find that singular lab here
While not directly tied to IaC, we all know that you can't just run some code in a production environment and cross your fingers that it works; building an agile infrastructure culture takes lots of testing in mock environments. We recognize that many organizations suffer from this lab environment gap and seek to ensure that no one is ever without API and programmability-enabled sandboxes, reservable and private to you at your time of need. These sandboxes are updated with current and supported versions of the platforms used, ensuring that you have access to the current apps and APIs. To coincide with the list of IaC Learning Tracks provided above, some of the sandboxes that could be used are:
The keen-eyed will again spot that the last sandbox in that list is new, or at least an updated version of a previous sandbox. The latest Nexus Dashboard Orchestrator (NDO) sandbox is running on Nexus Dashboard 2.2 -unlocking the potential to not only work with the Orchestrator APIs, but also the foundational platform APIs. As practitioners, we're not limited to raw API interactions with ND -but we can use IaC tooling such as the Ansible ND collection to work with this new platform.
Sometimes, it's nice to have a single location or URL to access all the information you need to find about a certain topic. For all things IaC within Cloud Networking -you simply have to hit the NexusAPI DevCenter available at https://developer.cisco.com/nexusapi. Here, you'll find links to all the IaC labs, sandboxes, helpful videos, links to all the IaC collections and providers, as well as blogs and webinars to help you down the path to codify your infrastructure.
Finally, if you have any questions about any of the labs, sandboxes, or the DevCenter, please reach out to us. Quinn and Ravi are on Twitter @qsnyder, @RaviBala8 and we would be more than happy to help you or point you in the direction of someone who can.