How To Learn DevOps
DevOps is a collection of skills, tools and processes that anyone coming up in the technology industry today needs to learn. It is the most in demand job title in 2021. DevOps is not just tools and processes for deploying code, but an entirely different way of thinking. While this might seem daunting, there are a number of ways that you can learn DevOps in 2021.
How Hard Is It To Learn DevOps
There are a ton of boot camps and courses online that you can buy or learn, but many of them focus on specific parts of the DevOps paradigm. In order to properly learn DevOps, and be marketable in the industry, you need to have some technical background, and some exposure to application development or lifecycle management. I have coached a good number of people transitioning into DevOps roles over the last few years, and have found that while some people take to DevOps like a fish to water, I have seen a great many people struggle to even understand the basics. This is a completely different way of thinking, so it is easiest for those who have an open mind. Overall, learning everything you need to be marketable for a DevOps role is quite difficult, and why these job titles are in demand with high salary figures.
What Skills Do I Need To Learn For DevOps?
This question has many answers, so I am going to speak to the bigger picture of DevOps roles I have seen companies trying to fill…
You should have a solid understanding of the following:
- Linux - This is by and large the most important skill you need to have when entering a DevOps role. Linux is an open source operating system that powers the internet. Linux servers make up 2/3 of all the server capacity on the internet today. It is highly customizable, more preformat and scales better than any operating system available.
- Scripting - a vast majority of the DevOps role is based around automating repetitive tasks. While there are a great many automation tools out there, scripting languages like shell and python are considered “glue” languages, and can help you to script certain tasks that are not automatizable by other means.
- Communication - Being able to communicate with others is a central skill. DevOps Engineers have to communicate across teams that are technical, as well as ones that are not. Being able to articulate what you are doing across multiple functional areas is a basic requirement for all DevOps roles. If you lack communication skills, this role will be brutal, and you will get peered out as quickly as you were hired.
- Containerization - Containerized workloads are everywhere. Companies are either already running “microservices” using things like Docker, Kubernetes, LXC/LXD - or they are looking to transition from their monolithic architectures into containerized workloads. You should learn Docker and Kubernetes, and understand both of them really well. Containerization alone is a leviathan of a skill to learn, and it is not something that you can BS your way through.
- Logging and Metrics - Being able to keep time series data and collect logs to a centralized location for analysis during downtime events as well as daily operations is super important. Knowing how, when, where and what manner to ingest and analyze logs and other metrics in a centralized and searchable manner is key to understanding what is going on daily. Most DevOps shops have applications that scale up and down rapidly, often at global scale, which means you can just be logging into servers to run
tail -f /var/log | grep <error name here>
when servers and containers are literally created and destroyed every minute. Additionally, and probably most importantly, businesses of today that wish to succeed have all kinds of key performance indicators that are literally impossible to determine without good platform data. Being able to mine your platform for data will be an important skill that you need to understand before you can even consider making the transition into a DevOps role.
There are countless other DevOps skills that are specific to certain stacks, platforms and architectures that you’ll learn along your journey, but those are arguably the biggest things that every DevOps engineer needs to know if they want to have a shot at working in a lucrative DevOps role.
Who Or Where Can I Learn DevOps From?
There are a number of people and places that I recommend going to for learning DevOps.
- Coursea has a great list of DevOps learning resources
- Threat Stack has some great resources and a writeup on which ones are targeted at who depending on where in their DevOps journey they are.
- Simplilearn has a full blown certification course that may be of interest to people who already have an idea of where they want to go in their DevOps learning journey or people that are looking to validate their experience with a certification.
When Should I Learn DevOps?
The time is now. There is no better time to start learning anything than at this very moment. DevOps is beyond hot right now. A full on arms race has launched and companies are scooping up DevOps talent at all levels of the learning journey so they can get an edge on their competition. Companies that get their code enhancements into production faster than their competitors are at a huge strategic advantage, and companies are paying handsomely for it.