Network DevOps
Published by Pearson
- Learn how to jointly leverage automation, version control, and CI solutions
- Get the big picture and focus on how to better integrate technologies
- Extensive hands-on code reviews, including troubleshooting and improvisation
DevOps and its corresponding technologies have become buzzwords in an industry ripe with change. Cut through the noise by building a solid DevOps foundation in this course. The course begins with a summary of Lean and Theory of Constraints fundamental knowledge that forms the basis for DevOps. Once mastered, together we will write a simple Ansible “infrastructure as code” playbook for network device management. Next, we will manage this new code with version control using git and Github. Once committed to version control and appropriately documented, it’s time to write some test scripts to ensure our playbook works correctly. Finally, we will integrate Travis CI to automatically test our code whenever commits are made.
Participants will learn how to “start small” with Network DevOps and grow their custom solutions in lockstep with their business. The goal is not to focus on advanced technology or features within any individual area, such as Ansible or Github. Instead, this course focuses on the seamless integration and cooperation between these components to create the final, value-added solution. The result is a minimal working NetDevOps solution that is easily copied as a template for all future projects.
What you’ll learn and how you can apply it
By the end of the live online course, you’ll understand:
- Core concepts of Lean Production and the Theory of Constraints (TOC)
- The purpose and business relevance of Network DevOps
- How to adapt our model/template project to suit your business needs
And you’ll be able to:
- Build simple network automation playbooks in Ansible
- Apply version control to your source code using git and GitHub
- Automatically test the solution when the source code changes using Travis CI
This live event is for you because...
- You are new to Network DevOps and are technically competent overall
- You need to deploy network services faster, at lower cost, and with higher quality
- You are an IT operator or software developer who wants to broaden your understanding of the DevOps landscape
Prerequisites
- No prior experience with Ansible, git, GitHub, or Travis CI is needed; however, it is beneficial.
- Basic Linux knowledge, such as shell familiarity, text editing, and managing SSH keys. Advanced Linux skills (disk partitioning, networking, administration, etc.) are not required.
Course Set-up
- A computer (ideally Linux) with Python 3.7 or newer installed. The author will be using Python 3.10.
- If you would like to perform the labs in this course, you should have a computer with Internet access while also having access to your lab equipment. If you choose to participate, you’ll need (2) Cisco IOS/IOS-XE devices on any version that are accessible via SSH. This level of participation is entirely optional.
- Your IDE of choice or a simple text editor. The author will be using vim.
- Participants are encouraged to clone the git repository: https://github.com/nickrusso42518/slt-netdevops
Recommended Preparation
- Watch: Linux Fundamentals, 2nd Edition by Sander van Vugt
- Attend: A Practical Introduction to DevOps by Chris Jackson
- Watch: DevOps Key Concepts by Donna Knapp
Recommended Follow-up
- Watch: Ansible: From Basics to Guru by Sander van Vugt
- Watch: Git Essential LiveLessons by Daniel Y. Chen
- Watch: Continuous Delivery by Jez Humble
Schedule
The time frames are only estimates and may vary according to how the class is progressing.
Segment 1: Lean and Theory of Constraints (TOC) (10 minutes)
- The five Lean principles
- The five TOC focusing steps
- What they have in common (spoiler: it’s a lot) and why it matters
Segment 2: Technical Overview (25 minutes)
- Brief overview of Ansible, git, and Travis CI as individual tools
- Discussion of how the tools fit together to solve our problem
- Review the course project and measure attendee experience
Break (5 minutes)
Segment 3: Develop Infrastructure as Code (IAC) Project using Ansible (55 minutes)
- Initial Ansible installation, including the required “collections”
- Modify configuration on cloud-hosted Cisco routers
- Demonstrate the concept of idempotence
- Add runtime input validation for improved robustness
Break (10 minutes)
Segment 4: Controlling your Source Code with git and GitHub (50 minutes)
- Repository initialization and basic operations
- Time travel to discard or reintroduce changes
- Local branching and merging operations
- Integrating local and remote repositories (GitHub)
- Pull requests and remote branching/merging operations
Break (10 minutes)
Segment 5: Adding Structured Tests (35 minutes)
- Apply linting to check for syntax and styling errors
- Conduct a dry run before modifying configurations
- Utilize a test playbook to ensure the IAC solution works correctly
Segment 6: Continuous Integration with Travis CI (35 minutes)
- Integrate GitHub and Travis to implement CI
- Creation and customization of the Travis CI build file
- Extensive testing of the integrated solution
- Adjusting minor Travis CI options
Q&A, course wrap-up, and assignment of optional homework (5 minutes)
Your Instructor
Nicholas Russo
Nicholas Russo holds a Bachelor’s of Science in Computer Science from the Rochester Institute of Technology (RIT). His primary programming experience is in C# and Java, but has been programming almost exclusively in Ansible and Python over the past several years. Nick’s day job is an automation-focused network engineer, but he loves teaching others about technology. Nick lives in Maryland, USA with his wife, Carla, and daughters, Olivia and Josephine.