Comprehensive DevOps guide for beginners! Dive into the world of DevOps with step-by-step tutorials, best practices, and hands-on exercises. Elevate your skills in automation, CI/CD, and cloud technologies. Perfect for those starting their DevOps journey!
This guide has no specific crowd in mind. If you are not yet technical or working in tech but trying to switch to DevOps, this guide is just what you need. Also if you are already working in tech but would like to switch to DevOps Engineering, you're in the right place.
All materials listed below are free. I know what you might be thinking. If it is free, then maybe it isn't so good for the author to put it out there. You might be right. There is a lot of content out there that is free and the quality isn't so good however, there are top creators that are backed by major tech giants, and watching a video on YouTube isn't exactly free. You are paying with your time.
Lastly, all of the creators I am linking their content here are professionals who spend lots of hours creating these top-notch materials/courses, so be sure to support them in any way possible. If it is a YouTube channel, like & subscribe. If it's a blog post, like/clap & share with others.
- Introduction to DevOps Theory
- Prerequisites / what you need before getting started in DevOps
- DevOps Roadmap / DevOps Tools
- Recommended Certificates
- Bonus Resources
This section provides you with the material you need to understand the foundations / basic theory of DevOps and what the whole idea is. I do not intend to make this guide a tutorial, it will be impossible to provide the DevOps knowledge you need but instead, I want to point you in the right direction with the additional benefit being that you grab all the knowledge you need for FREE without money.
The mistake I and a lot of other people make is that they jump straight to the technical skills without spending time to understand what you are trying to achieve using an entire stack or even a particular tool. Skipping on these basics hurts you along the line because you miss the foundational knowledge that helps you understand the end goal and what DevOps brings to a business.
That said, the videos below are all you need to grasp the theoretical knowledge you need to get started.
By the time you are done watching the videos above, you will have understood the basics of DevOps. If you have not worked in tech before, it might be hard for you to grasp some of the terminologies, and that's fine. Try to find resources online that explain some of the concepts you did not understand when watching the videos, even further.
The reason why most people, even technical people think of DevOps like magic is because it involves a lot of moving pieces. However, all of these moving pieces build on top of the foundational technical knowledge and this is what makes the speed of learning DevOps faster for someone who already works as a technical resource in the tech industry, while it might take a bit longer for someone just getting started in tech. While these are prerequisites that you should know, I am not implying that if you don't know them, you should quit. I have added free materials that will get you started in a few weeks.
- Computer Networking
- Linux
- What is Linux?
- Introduction to Linux
- Linux Operating System
- Version Control with Git
- [Software development lifecycle](https://aws.amazon.com/what-is/sdlc/#:~:text=The%20software%20development%20lifecycle%20(SDLC,expectations%20during%20production%20and%20beyond.)
- Agile Development
While most of the skills/knowledge mentioned above are things you can master while on the job, be sure to not run through them like a Netflix series. Take your time to understand the videos/articles. If you need extensive knowledge of a particular section and this is not being explained well, it's fine to step out of that tab and search for materials that will help you understand. You can use chatgpt for prompts that will return just the answer you need to clear out the blocks.
If you have covered the list mentioned in the previous section, your next goal should be learning a programming language. If you picked DevOps because you don't want to write code, sorry to disappoint you, but you will need to know how to code. The good news is, you will not be a software engineer so you don't need to know how to build a solution but you need to understand and know how to use code to automate the boring and repetitive tasks. AUTOMATION is the main reason you will be getting paid the big bucks. There are a few languages that you could run into in your pursuit of being a DevOps engineer including Python, C#, Javascript / Typescript, Golang, and the list goes on. I recommend 3 - Python, Golang & Bash script. You do not need all 3. Learning one of the first two and the Bash script is enough. If you have never written any line of code before in your life, I'd recommend you stick to Python for your first few months. Bash is something you can easily learn on the job. That said, for the sake of providing content that fits everyone, here are the free resources to use for your learning.
At this point, I assume you have covered the prerequisites and are ready to move on to the added skills/tools you need to complete your arsenal. Again, there are so many tools you will work with but you need a few of those to get yourself past the door of HR and hopefully shake the hand of your future employer/hiring manager. These tools fit into the buckets below:
-
Cloud Knowledge: Most companies now deploy their applications/solutions on the cloud. Granted, you might run into deployments done without the cloud but the number of these cases keeps reducing drastically. There are several cloud providers including Alibaba Cloud, Oracle Cloud Infrastructure, AWS, Azure, GCP, and the list goes on. The last 3 are the main players on the cloud scene and you can't go wrong by choosing any of them and you can always switch easily to another one after you have a solid knowledge of another, however, be sure to check which one has more job listings in your area and which is demanded by the companies you want to work for.
-
Infrastructure as Code: IaC enables automation of infrastructure provisioning and configuration processes. This reduces the likelihood of human errors and ensures consistency across different environments. Several tools allow you to be able to do this. Terraform is the most popular.
- Complete Terraform Tutorial AWS
- Learn Terraform with Azure by Building a Dev Environment
- Learn Terraform with Google Cloud Platform
While Terraform is popular and can do most of the job, you might run into vendor-specific tools like AWS's Cloudformation, Azure's ARM templates, and GCP Cloud Deployment Manager.
-
Containerisation: Containerization is a lightweight and portable form of virtualization that allows applications and their dependencies to be packaged together in a single, standardized unit called a container. These containers can run consistently across different computing environments, providing a level of abstraction that simplifies the deployment, scaling, and management of applications. The most important knowledge you need here is docker & Kubernetes (also written as k8s).
-
Monitoring
-
CI/CD: There are three most popular - Gitlab CI, Git Actions & Azure pipelines
- Official Documentations: using official documentation is essential for staying informed, building a strong foundation of knowledge, and effectively implementing DevOps practices with accuracy and reliability.
- Paid Materials: The purpose of curating these materials is to help anyone get started in Devops with zero financial commitments you heard the saying "Put your money where your mouth is", you might have a few bucks that you want to invest in your learning and by no means, go ahead and do just that. Here is a list of paid resources I think you might need.
- Community: Joining DevOps communities while learning has several benefits that can significantly enhance your understanding, skills, and overall experience in the field. Here are some key reasons why it is important to be part of DevOps communities during your learning journey