Site icon Karneliuk

Random. How to Choose Your Desktop Operating System for Network Automation Development

Hello my friend,

After writing quite long and complicated previous blogpost about CI/CD with GitHub, I need some therapy to write something light and chill. I decided to choose the setup of the working space for development and utilisation of the network automation and, in general, network design and operations. Though I don’t pretend to be absolutely objective and unbiased, as it is simply not possible, I intend to share some observations I did from my own experience and discussions with our network automation students, which I hope will be interesting for you.


1
2
3
4
5
No part of this blogpost could be reproduced, stored in a
retrieval system, or transmitted in any form or by any
means, electronic, mechanical or photocopying, recording,
or otherwise, for commercial purposes without the
prior permission of the author.

Why Is It Important?

During our Zero-to-Hero Network Automation Trainings, and other trainings as well, we talk a lot about choice of tools to build automation solutions: they shall be fit for purpose and easy to use. However, in addition to that, you should also feel a fun, when you utilise them. It may sound odd, as we are talking about work and software development; at the same time, if you don’t feel joy from what you are doing, you, unfortunately, won’t succeed in the network automation field (neither in any other area, we are afraid). So, the main criteria to chose anything we use to deal with network design, automation and operations are:

With these three criteria in mind, let’s validate the tool we use most of the time: our operating system. Not the network operating system we run on network devices and servers, but rather the operating system we run on our laptops and desktops. Arguable, the most widely used operating system is what we have on our smartphone or tablet, such as Android or iOS, but we will leave it aside.

Despite I had experience of literally writing Python code from my Android smartphone, I didn’t find this experience very pleasant due to enabled auto-correction and a screen’s size.

So, keeping in mind the purpose of the operating system, let’s try to think about tools that the network and automation engineer uses daily:

Both Ansible and Python are in-depth covered in our Zero-to-Hero Network Automation Training.

There is one important note to the latter two categories: there is a growing market of cloud-based office and documentation tools. For example, you can use Microsoft Office 365 or Google services (Docs, Sheets, Slides) to perform activities, which you used to do locally. Obviously, this would require to have a stable Internet connectivity; however, these days almost everything requires Internet connectivity, especially, when we talk about network automation which implies remote connectivity to network devices or jump hosts.

Without any doubts, the list above it not exhaustive, and you can extend it further based on your own duties; however, it provides a good starting point to think about requirements, which you may have for your system.

What Are the Options?

Once we are clear with our requirements, let’s review what is the selection of operating systems, which we can run at our laptop or desktop:

I’ve run all of them on my laptop, for the aforementioned purpose and, thus, know a bit about advantages and disadvantages of using them. Let’s start our review.

Microsoft Windows

I’ve used Microsoft Windows since its release Microsoft Windows 95. I even saw Windows 3.11, when my dad had first desktops in his company, but that time I was barely understanding what computers were for. Since Windows 95 through Windows 98 and till Windows XP that was a quick transition for me. Microsoft Windows XP was the first system I used for something more useful than video games and Internet browsing. It was relatively stable, though annoying BSoDs (Blue Screen of Death) were biting me here and there at various circumstances. I started learning software development with Turbo Pascal and Borland Delphi. Luckily, it was working quite okay for my purpose, which was sort of “Hello World” applications and basic interactions with underlying operating system. In Windows XP it was the first time I saw VMware Workstation and the wonderful world of virtualization. After that I moved to Windows 7 and then 10, and that were the systems which I used for a long period time during my transformation into a network automation engineer.

At this point we will conclude the historical part and will take a look at facts:

At that time these drawbacks were solved by using virtual machines (VMs) with Linux CentOS or Ubuntu. It was an overhead, as I would need at least 2 GB of RAM to spin up VM. At the average enterprise laptop with 2-4 GB RAM it was often quite a challenging task, though. A memory upgrade till 8 GB RAM and installation of 64-bit Windows, eased the problem, but still I was not able to do any meaningful job without VMs with Linux.

I stopped using Windows in the mid of 2019, right after Windows Subsystem for Linux (WSL2) was finally stabilized. As such, I don’t really have experience or a particular opinion on this technology. However, thinking about the name “Windows Subsystem for Linux”: if I spend most of my time in that subsystem, why do I need Windows at all? But, I’m jumping the gun here.

Apple MAC OS

After using Windows for about 15 years, I switched to Apple MAC OS. After Microsoft Windows, I felt very happy that I could run Python and Ansible natively. That not only reduced amount of resources I need for my network automation development, as I didn’t need anymore VM for my automation host and, therefore, I could use these CPU cores and GBs of RAM for virtual routers and switches, but also decreased the time I need to wait before starting developing the automation. For the purpose of the network automation development, that was a clear win.

From the perspective of the standard office and documentation tools, it was also quite a good experience. I did some experience with MAC back in 2015-17, and that time working with Microsoft office was just terrible: it was constantly crashing. However, in 2019 I was positively surprised that this was not a problem anymore. Obviously, Microsoft Teams was crashing time to time, but that is what the Microsoft Teams is created for, isn’t it?

There is no offense to Microsoft, just Teams reputation is, unfortunately, not the greatest and, therefore, became a meme.

Compared to Microsoft Windows, Apple MAC OS was much more stable, which can be explained by Unix roots of MAC OS, and in 3 years I had a system crash only once, after upgrade to some newer release.

Then I migrated to the newest laptop, though it is not the newest anymore, with M1 CPU. Being generally a great thing, I apparently found myself unable to use tools I used to use, such as Oracle VirtualBox, which helped a lot with creating local labs with network functions during automation development. Yes, there are alternative type-2 hypervisors, such as Parallels or VMware Fusion. However, the bigger problem is that a lot of images with network automation functions simply cannot run on ARM architecture, which is what M1 is. Probably, if I was a web application developer, such a transition would come almost unnoticed, but it was not the case for myself. So, I decided to move on…

Linux

… And I finally landed in the Linux-only land. Maybe, such a transition was a logical: if I anyway develop automation to be run from *nix, predominantly Linux systems, and I run VMs or containers, why shall I not try to run Linux natively on my laptop? Obviously, I had some concerns about compatibility of Linux with standard office applications, as well as how good all the peripheral devices, such as webcams, mics, etc, would work on Linux. So I had to do some research.

The most popular Linux these days, both in the server and in the desktop Linux is Ubuntu. Despite I mainly used CentOS previously, and our Zero-to-Hero Network Automation Training was structured around it as well (it is not the case anymore). I checked that laptop I want to buy on eBay (cost control is everything for small and medium business :-)) is officially certified by that vendor to run Ubuntu 20.04, which made me feel more comfortable about the idea to run Linux and I decided to do it.

So, for 2 months already I run Ubuntu Linux natively and using it for all the aforementioned activities and so far I have only positive experience:

So, all tick boxes for network automation and operational guys are ticket, what else to dream about?

How Is This related to the Network Automation Related?

Right, you need to have a a great platform to study and develop automation. And we are here to guide you in the world of network automation to be successful.

We offer the following training programs for you:

During these trainings you will learn the following topics:

Moreover, we put all mentions technologies in the context of real use cases, which our team has solved and are solving in various projects in the service providers, enterprise and data centre networks and systems across the Europe and USA. That gives you opportunity to ask questions to understand the solutions in-depts and have discussions about your own projects. And on top of that, each technology is provided with online demos and labs to master your skills thoroughly. Such a mixture creates a unique learning environment, which all students value so much. Join us and unleash your potential.

Start your automation training today.

Lessons Learned

The main lessons that I’ve learned is that many fears are irrational and the best way to tackle them is to try things yourself. I had a number of ex- and present colleagues, who tried to run Linux on their laptops or desktops and failed, at various times. There problems were similar: their laptops were getting hanged, during the usage of some aforementioned tools. May be, I was lucky enough not to use the same applications, or, my laptop is more suitable to run Ubuntu. At the same time, I won’t have my current setup, which suits for building and automating networks, if I didn’t try to run Linux on it. Try and find out.

Summary

To conclude, looking back in time, I feel that I had a natural evolution from Windows to Linux. I was doing first attempt to work with RedHat Linux back in 2005-2007, but I was not getting much success. Yes, I was able to install and launch it, but I was not yet developing anything to get the real power of Linux, whilst the collaboration and office tool that time was not the strongest side of Linux. At the same time, during my journey into network automation world I used to work with Linux CLI and mastered skills in Linux system administration in general. That’s why running Ubuntu Linux as a single operating system for all software development and business activities is quite straightforward. If you are into network automation world, I definitely urge you to try Linux as an operating system for your laptop/desktop, which also would be a boost for your automaton skills. Take care and good bye.

Need Help? Contract Us

If you need a trusted and experienced partner to automate your network and IT infrastructure, get in touch with us.

P.S.

If you have further questions or you need help with your networks, we are happy to assist you, just send us a message. Also don’t forget to share the article on your social media, if you like it.

BR,

Anton Karneliuk

Exit mobile version