From Network Engineer to DevOps: A Tale of Transformation & Triumph

Hey folks, Sam Gabrail here, coming at you with a fresh take on a tech transition tale. Buckle up as we journey from the world of network engineering to the cutting edge of DevOps.

Video

Video Chapters

  • 00:00 – Introduction
  • 00:44 – Network Engineering Roles and Stack
  • 01:47 – Working for a Vendor
  • 03:00 – The move to DevOps with Docker
  • 06:12 – What I did to transition to DevOps
  • 09:30 – Roles at Sysdig and HashiCorp
  • 10:31 – What I’m Doing Today
  • 12:37 – My advice for you
  • 16:16 – What about you?

The Network Engineering Days

I started my career at Rogers Communications which is a Canadian Internet Provider, where I moved between different roles in the Technology, Engineering Planning, Implementation, and Operations departments. Routing and Switching were the bread and butter, with Cisco and Juniper as my trusty vendor technologies. OSPF, ISIS, BGP – you name it, I was on it. Firewalls were like a second language to me, with ASA, SRX, and Checkpoint in my arsenal. I had the typical certificates (CCNA, JNCIS, JNCIP).

My Network Stack

The Vendor Vibe

Craving a direct line to customers while staying technical and desiring a fatter paycheck, I leaped into a Sales Engineer role at ExtraHop Networks. Talk about a brain twist – meshing business with tech was a whole new game. I had to learn a whole lot about sales and business. This was definitely out of my comfort zone.

Diving into DevOps

Networking’s cool, but it’s the plumbing of tech. I aimed higher – application layer, baby! Docker caught my eye, and soon after, I was preaching the Docker doctrine at Docker Inc. as a Pre-sales Engineer. Another day, another learning curve. This time the challenge was at the technical level.

The Transition Toolkit

How did I switch gears to DevOps, you ask? I rolled up my sleeves and started working.

  • I dove into the Docker Mastery course by Bret Fisher.

  • Turned my home into a lab with a Dell T5500 server.

  • Git became my new best friend.

  • Kubernetes wasn’t far behind, thanks to Nigel Poulton’s wisdom with his getting started course on Kubernetes.

I kept at it, day in, and day out, breaking things and putting them back together. Delivering workshops, and sussing out where folks were with their app modernization – it was all in a day’s work.

The Journey Continues

The quest for knowledge never stops. I’ve since hopped over to Sysdig where I learned more about monitoring and securing Kubernetes. Then, I went to HashiCorp, where I got cozy with Packer, Terraform, Vault, and the rest of the HashiCorp family. I quickly realized that there is an incredible number of tools in the DevOps field. So it’s not just about the tools; it’s the ‘why’ that counts. So I started to pay attention to why users needed specific tools.

What I’m Doing Today

I realized the more you share, the more you solidify your knowledge. Hence, I’m building the TeKanAid Academy, a DevOps wonderland, while consulting keeps me sharp and in the trenches.

I’m also transitioning more into Platform Engineering. I’ve bought into the idea that developers don’t need to know everything about infrastructure. It’s important to build an internal developer platform that enables self-service for developers to speed up their work while minimizing context-switching.

Questions I got

Below are some questions I got quite a bit about this topic.

Can a network engineer switch to DevOps?

Yes, a network engineer has a foundational skill set that is highly beneficial in a DevOps environment. The transition involves expanding one’s expertise beyond traditional networking to include skills such as continuous integration and deployment, infrastructure as code, and system automation. The analytical and troubleshooting skills honed in network engineering are valuable assets when managing complex DevOps pipelines.

Can I do DevOps after CCNA?

Earning a CCNA is a solid step toward a career in DevOps. It provides a strong understanding of networking concepts, which are integral to many DevOps practices. After obtaining a CCNA, one should focus on acquiring skills in cloud services, scripting, and automation to transition into a DevOps role fully. You won’t believe how many DevOps engineers have trouble with subnetting!

Will I need to learn to code?

Yes, and please don’t shy away from it as I mentioned earlier. There are many programming languages to choose from but start by learning Python. It is a versatile scripting language that is essential in the DevOps toolkit. It is used for writing automation scripts, developing web services, and interacting with APIs. Python’s clear syntax and extensive libraries allow for the rapid development of scripts and tools that facilitate DevOps processes.

Bridging the Gap: Network Engineering and DevOps Synergy for Agile Infrastructure

Let’s dig a bit deeper

The Intersection of Software Development and Network Engineering

Software development and network engineering are converging fields in the era of DevOps. As organizations aim for faster delivery of applications, network engineers must understand the software development lifecycle to effectively manage the network infrastructure that supports it. This synergy between disciplines ensures a seamless flow from code commits to production deployment.

Configuration Management Tools in Network DevOps

Configuration management tools are vital for DevOps engineers, serving as the linchpin for maintaining consistent and reliable network environments. These tools automate the provisioning and deployment of network infrastructure, enabling network automation and ensuring that network configurations are version-controlled and replicable.

DevOps Engineer: The Architect of Continuous Delivery

A DevOps engineer is tasked with architecting systems that enable continuous delivery, ensuring that software can be reliably released at any time. This involves a deep understanding of network infrastructure to ensure that the underlying systems support the rapid deployment and scaling of applications.

Leveraging DevOps Tools for Network Automation

Network automation is a critical aspect of modern network management. By utilizing DevOps tools, engineers can automate routine and complex tasks, reducing the potential for errors and freeing up time to focus on strategic initiatives. These tools play a crucial role in configuring, testing, and managing network infrastructure with precision and efficiency.

Network engineers have traditionally been very cautious when it comes to automation. This is understandable since a mistake in the automation script can bring the network down and cause an extensive outage that affects business operations. My answer to this is to create a lower-tier environment (dev or qa) to test automation scripts against before attempting this in production.

Best Practices for Integrating DevOps into the Networking Industry

The networking industry is rapidly adopting DevOps practices to keep pace with the demands of contemporary software delivery. These practices include the use of automation tools for network provisioning, employing version control for network configurations, and ensuring that networking knowledge is integrated into the DevOps training programs for software engineers.

Take a look at the Terraform registry for networking providers. At the time of writing, there are more than 246 providers spanning the official, partner, and community tiers.

Terraform Registry for Network Providers

The Role of Version Control in Networking Fundamentals

Version control is not just for code; it’s a fundamental practice for network configuration as well. By using version control systems, network, and DevOps engineers can track changes to network configurations, roll back to previous states when necessary, and enhance collaboration among team members.

This has been a pet peeve of mine. I’ve seen too many network engineers passing files and folders around without using Git. If you’re one of them, please don’t do that and learn how git can make your life much easier!

Mastering DevOps: From Core Skills to Culture for a Seamless Software Delivery Ecosystem

Now let’s see how to move forward from here.

Selecting the Right DevOps Course for Your Career

Embarking on a DevOps course is a strategic move for professionals aiming to enter or excel in this domain. The ideal course should lay a foundation of basic knowledge while offering practical experience with tools and practices. It’s important to choose a program that not only covers system administration and virtual machine management but also instills the ethos of DevOps culture.

The reality is that it won’t just be one course that teaches you DevOps it will be several courses plus a lot of hands-on practice. You should aim to be dangerous enough to land your first junior DevOps role.

Virtual Machines: The Building Blocks of DevOps

In the DevOps realm, virtual machines (VMs) are more than just simulated computers; they are the playgrounds for innovation and experimentation. A solid understanding of VMs allows DevOps teams to create and test environments that closely mirror production, ensuring that software is delivered with confidence and precision. This is how I started with my Dell T5500 machine. I built and destroyed many VMs.

The DevOps Culture: More Than Just Tools

DevOps culture is the heartbeat of this methodology. It emphasizes collaboration between software developers, operations teams, and beyond. This cultural shift is a valuable asset as it leads to better communication, shared responsibilities, and a unified goal of delivering software efficiently and reliably.

DevOps Teams: The New Face of Operations

DevOps teams have redefined the landscape of operations teams. In a DevOps role, one is expected to have a comprehensive understanding of both development and operations, which blurs the traditional lines and fosters a more collaborative environment. This integration is key to streamlining processes and achieving the agility required in today’s fast-paced digital world.

DevOps Jobs: What It Takes to Succeed

Succeeding in DevOps jobs requires more than just technical know-how; it demands a solid understanding of the entire software development and deployment lifecycle. A DevOps role is multifaceted and dynamic, challenging professionals to constantly adapt and grow in their knowledge of both the tools and the culture that drive DevOps forward.

Takeaways for You

  • Your tech career? Marathon, not a sprint. Pace yourself.

  • Get hands-on. Build a lab and make GitHub your resume.

  • Learn endlessly and embrace the discomfort – that’s where the magic is.

  • Scared of coding? Don’t be. If you can configure a network, you can code.

  • Networking background? It’s gold, especially when you hit service meshes and Kubernetes networking.

  • Document your story. Better yet, start a YouTube channel and broadcast your brainwaves!

Over to You

What’s your tech story? I’m all ears. Drop your journey, tips, or just a ‘hello’ in the comments. Let’s learn from each other and push the boundaries of what’s possible in our tech universe.

Your Journey

Suggested Reading

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top