“Give us the tools, and we will finish the job.” Winston Churchill.
If you have been to any DevOps-focused conferences — whether it’s OpenStack Summit or DockerCon — you will see a sea of MacBooks. Thanks to its UNIX base, availability of Terminal app and Homebrew, Apple hardware is extremely popular among DevOps professionals.
What about Linux? Can it be used as a platform by developers, operations, and DevOps pros? Absolutely, says Major Hayden, Principal Architect at Rackspace, who used to be a Mac OS user and has switched to Fedora. Hayden used Mac OS for everything: software development and operations. Mac OS has all the bells and whistles that you need on a consumer operating system; it also allows software professionals to get the job done. But developers are not the target audience of Mac OS. They have to make compromises. “It seemed like I had to have one app that would do one little thing and this other app would do another little thing,” said Hayden.
In contrast, a Linux-based distribution offers a more streamlined workflow. All you need as a DevOps engineer is a terminal, a browser, and an editor. Period.
Fedora is a great platform for DevOps
Hayden is currently running Fedora 24, the latest release of Fedora on his machine. According to him, Fedora is a great distribution because it offers the latest and greatest version of apps and libraries. “You’ve got modern TCC, you’ve got modern Python and that kind of thing. You have the flexibility to go install your own version of Python or something like that if you want, too,” said Hayden.
Unlike many other distributions, you don’t have to bloat your system by adding too many third-party repos or PPAs to get the latest version of apps. No wonder even Linus Torvalds uses Fedora.
Fedora now comes in three versions: Workstation, Cloud, and Server. If you are going to use GUI tools, then Workstation is the right choice for you Almost every tool you need is available either through DNF or through third-party repositories. Hayden said that he rarely needs anything from third-party repos; everything is there in the main repos. To make life even simpler, there are DNF groups that put a bunch of packages together. You can do things like use a DNF group list and it’ll list all the available groups.
“The developer tools group is really handy if you just need to bootstrap a system and have make and automake and C make, and GCC and GCC for C++. You can just get that list of packages really quickly. Of course it includes all the tools that you would need when something goes wrong like Valgrind,” said Hayden.
“In addition to that if you need to go in and audio why your application is using so much RAM or why something is not allocating memory properly or why it’s leaving file handles open, you can go and investigate that with those tools, too,” he said.
With Fedora 24, not only do you get all the tools you need to build it, you also have all the tools you need to compile it. And, you have all the tools you need to look at it when something explodes.
Depending on what you are going to do, every tool is available on Fedora 24: from Ansible to Jenkins. All of the DevOps tools mentioned in this previous article are available for Fedora. If you are using Fedora and you want to install Ansible, all you need is “dnf install ansible” and that’s it. But, if you are on Mac OS, you have to figure out where Homebrew puts everything. You need to install virtual machines to run docker containers where as on Linux, you can do it natively.
The best part is that even if there is a tool that’s not in DNF and in repos, you can still install it on your home directory and start using it. You don’t have to become root and have files scattered all over the place.
Fedora also doubles as a personal machine. It comes with GNOME as the default desktop environment that offers a great desktop experiences. So anything from browsing the web and checking emails to watching Netflix can be easily done from the same machine.
Most importantly, you need your OS to be as agile as your infrastructure. Fedora keeps you up to speed with latest version of packages. Other distros are known for faster access to the latest packages — including Arch Linux and Gentoo — but it could be counterproductive to compile packages all the time, if you have a lot installed. According to Hayden, “Debian is also a pretty good platform to work from because it’s a little bit more consistent than Ubuntu.”
Fedora 24 isn’t demanding of hardware. But, if you are going to use your machine for coding, you need a modern processor and at least 8GB of RAM, especially if you are doing a lot of work with Java. Hardware is inexpensive these days and going from 4GB to 8GB future proofs you.
Additionally, Red Hat is hiring even more engineers to test more hardware, so no matter which machine you buy, it will work out of the box on Fedora and RHEL.
So, what I gather from this conversation is that there are five advantages to using Fedora 24 as a DevOps tool:
A lean and thin OS that comes with everything you need without any bloat
Access to latest packaging
A distraction-free platform
An OS that’s the foundation of the most popular Linux platform in the enterprise space: RHEL
The system doubles as your entertainment platform.
If you are using Linux as a DevOps platform, which distro are you using?