Skip to content

Lab Overview

This learning lab introduces the Unified Branch model and demonstrates how to deploy and manage it using Branch as Code. The lab is designed to help users understand the key concepts, configurations, and operational aspects of Branch as Code.

This document is a comprehensive guide to understanding Network as Code (NaC) which utilizes Infrastructure as Code (IaC) principles to manage configuration for Cisco Meraki Dashboard. The focus of this guide is specific to the Unified Branch as Code. The guide is structured to build a solid understanding of the concepts and toolchain required to deploy and operate Unified Branch environments, integrating Branch as Code automation with a cloud-managed architecture.

There are several sections in this guide; each section focusing on different aspects. It includes practical examples, best practices, and detailed explanations to help you understand the concepts.

If you have no environment of your own but still would like to try, we can provide a limited lab available in dCloud. If you need the lab shared with you, please reach out in our Network as Code Public Webex Space.

This guide contains elements to assist you in making changes. The primary interface that is used in this guide is a web-based version of Visual Studio Code (known as Code Server). This takes the role of a development environment (IDE - Integrated Development Environment) that you will use to modify the data model for Network as Code.

You will find in the guide both reference material for learning and then direct Steps for you to follow. These steps can also include code snippets or CLI commands for you to copy and paste into your Code Server terminal. In the guide you will see elements as:

Terminal window
cd ~/network-as-code/branch-as-code

That you can copy and paste easily via the button that appears when you hover over the code snippet. There are also screenshots of specific elements, including Meraki Dashboard to guide you on specific tasks.

Some of these commands that you copy seem redundant, but are designed such that the command always works even if you have changed directories, or explored different parts of the directory structure.

The guide is intended to be directional. Each section of the guide will provide you builds towards the next section and are all connected. The best approach is to follow the guide in order.

To complete this guide you will need access to:

  • IDE / Code Server: to modify the Network as Code data model.
  • Installed tools: Git, Terraform (>=1.9.0), Python (3.12).
  • SCM platform: GitLab, GitHub, or similar.
  • Meraki API Key (full write access): no hardware required. Generate an API key using this guide.
  • Optional: CI/CD platform such as GitLab Pipelines or Jenkins

This table of contents provides a view of the different sections of the guide and the respective topics.

StepTopicDescription
1Branch as Code ToolsetThis section provides an overview of the tools and technologies used in Branch-as-Code.
2Branch as Code SetupThis section will go into the details of how you set up your environment for Branch as Code.
3Working with Unified Branch Data ModelThis section explains how a data model is built and how it can be modified. As a Network engineer utilizing a declarative approach, the data model represents the primary focus area to define what is the intent of the configuration in the network.
4Deploying Unified Branch as CodeOnce you have created the data model that represents the intended configuration state for your Unified Branches, you will deploy that configuration to Meraki Dashboard so that it deploys the configuration.
5Understanding RemoveHow to fully integrate into declarative configuration, including deletion.
6Integrated testing in Branch as CodeOne integral part of Infrastructure as Code is the inclusion of integrated testing to validate changes are pushed correctly into the controller, thus the network. Network as Code provides integrated testing that validates the configuration and operational state before and after changes to the network.
7Overview of Automation PipelinesInfrastructure as Code and automation pipelines go hand in hand. Due to the architecture of Network as Code, everything is designed to be operated from an automation pipeline. In this section you will learn the fundamentals of automation pipelines.
8Automation Pipelines with Branch as CodeIn this section, you will setup a working software pipeline to validate, stage, deploy, and test configuration changes.