How to Become a DevOps Engineer
DevOpsThis is a broad subject and some might argue that DevOps is not even a real job but a culture. You can specialize in SRE or Cloud engineer, but you might need some knowledge to all that.
I'll try to answer this question in two parts,
- Is DevOps for you
- Where to start to become a DevOps engineer
1. is DevOps for you? #
Before spending a considerable amount of time becoming a DevOps, you might want answer this question first, is DevOps for me. I wrote a blog post that I'll summaries here.
1.1 Learning that never ends #
Learning. This is a broad topic, but if you don't like learning mostly on you own, it could be difficult to make the switch. As a DevOps or a Cloud engineer, you have an important amount of learning to do, and once you have a decent amount of learning you are not done. In fact, you are never done with learning. You will sign for a lifelong learning contact.
Let's put it simply, if you don’t like to learn new stuff, you are not going to make it. Learning should resonate on you.
1.2 Could be lonely #
This could surprise as the culture of DevOps is to break silo, meaning make the bridge between teams. That's sounds like a lot of talking between teams that could be done between silos. It could, but with small team it could be totally the opposite, without any Ops teams you could do a lot on your own, there are developers and... you as a DevOps. Because Cloud providers abstract and automate lots of Ops work. I use to say that I'm not DevOps, I'm a DevCloud guy, meaning that I'm the link between Devs and Cloud computing, AKA someone else Ops team.
You get the point, DevOps could be lonely on small teams
1.3 Good job goes unnoticed, mistake can turn to nightmares #
Once again, it will depend on the organization around the DevOps/SRE service and its size.
You take time to build a nice pipeline on Gitlab, to make sure every single release run smoothly, in a well-established environment reproduced with Terraform meaning it's some code that create the infrastructure, with an exact replica for staging if needed. You have a bunch of dashboards to make sure everything is fine and spot problem before anyone notice it or even report it. You made so many efforts to have less incident possible even with some complex Kubernetes environment.
1.4 Stressful, On-Call #
Once again, it will depend on tasks you will do and where the company are in the Cloud adoption. I see two side on this.
- You sometime must do stuff in production that can break. You might fear to do critical operation on production.
- You might be on-call in the middle of the night with some top priority production to
- Those can be critical because when things break, money are in stake, people can be angry to lose money for incidents.
In DevOps, there is a don't blame culture and with a high cloud adoption, you should never need to touch production without automation. Just keep in mind that sometimes it can be stressful.
1.5 Search and Learn #
Let's take an example, your superior asks you to something and you heard about a product that does the job, nobody know how it's work and you’re the only DevOps on board. You'll read through the documentation, build a proof of concept, play with it. If the technology is a bit tricky, it can be difficult and exhausting to get all things right.
This sound fun to do, and it is! But when that kind of projects adds up, for six months for example, it can be very exhausting. If you passionate about it, you might do long hours of deep thinking about all that. Some DevOps tasks can be seems as routine, others can be very challenging.
2. Where to start to become a DevOps Engineer #
Now that you know if DevOps could be for you or not, let's dive into what needed to take few first step.
2.1 Learn DevOps in 30 days #
No... No, no, no. Well, I guess exceptions exists.
If you have no knowledge of IT or any developments, then it will be difficult. One of the reasons of high salary in this job is because DevOps has other experience in other job either as IT or as a Developer, they are not Junior per say.
So, you already have some experience, and willing practicing 40 hours a day, it might work if you find a large team in a large area with junior needs. otherwise, it will be difficult.
Chances are if you are already in IT or Dev that some DevOps tasks are waiting around to be done, volunteer to do them could work, this is a good path to gain real experiences.
2.2 Roadmap #
One difficult side of DevOps is the amount of different area to learn. I had the discussion with IT guys from Windows who clearly was afraid of all things they needed to know.
I wrote a blog post on What you need to learn to become a DevOps, what I wrote last year still valid in 2022.
Here is a quick summary
- Broad vs Deep: you don’t need to master everything, but you have to know some piece of a lot of elements.
- Docker: You cannot do without knowing your way around docker, Dockerfile, docker-compose.
- Orchestrator: Kubernetes, Docker Swarm or others. A way to automate the container orchestration
- Linux: You need it, even if the final product is not running on Linux, some tools probably are.
- Python: you need a programming language like python, very useful.
- Cloud Provider: AWS, Azure or GCP
- Web environment: Apache, nginx...
You might check What you need to learn to become a DevOps that goes in more details.
There are two well-known roadmaps on internet that say almost the same thing that me and beyong.
2.3 Certificates #
Tons of different certifications and as much debate to know if there are useful or not.
If you have no experience or knowledge on Cloud provider, it might be a good idea to get the entry level like the Cloud Practitioner Foundational. I know that this advice can be controversial, but here is an example.
I have read about a commercial passing that same certification, only to know what people are talking about on either side customer and inside the corporate.
My guess is that it will do the same thing for you, you will be able to follow a simple discussion on cloud, like IaaS, PaaS and other Compute Engine. This very entry level certification won’t give you a job but will gives you a light and broad understanding of what all that Cloud is about.
I passed the associate GCP Certification 3 years ago. It was a boost in my career as a DevOps. It also a good certification to considere. I now passed the Professional Cloud Architect Certification, you shouldn't start here!
I'm not sure any other certifications would help as much. You can pass all sort of certifications like Docker, Gitlab, Jenkins, Hashicorp. I guess that Linux certifications could be nice.
3.4 Learning platform #
It's better to learn with content, you can start with some blog posts, and some google research, but quickly you'll need some structured content with quality high enough, you don't want waste time with poor content.
3.4.1 O'Reilly #
Quality content come with a cost. Don’t go cheap, the return of investment can be important.
My main resources cost $500 per year, less because of my legacy plan. You all know O'Reilly books. The online platform gives you access to O'Reilly books and from lots of other publishers. They have as well high-quality videos and training. Subjects are broad enough for me, from DevOps, MicroServices, Architecture, Cloud computing, DevSecOps. It's expensive, but for me it totally worth it.
One thing I like about O'Reilly, it's when they do videos on subject, they always take someone that has authority on the subject, like "I wrote few O'Reilly books on the subject". It's not like someone doing video on X, Y or Z subject. Want to learn micro-services? They bring Sam Newman author of "Building Microservices" and "Monolith to Microservices" from O'Reilly.
As you can tell, I'm quite a fan of O'Reilly contents.
2.4.2 ACloudGuru #
This was called "LinuxAcademy" before that if I remember well. It's good quality, a bit cheaper than O'Reilly, but still $348 per year. I have done some lecture on this platform, bought a month worth subscription here and there. I'm not as impressed that with O'Reilly content, but it's totally worth to take few months.
2.4.3 Coursera #
Follow some courses here as well, and it's a long story for me, as I watch first lectures as they launch the platform. Contents are good, Google Cloud has some official content here. Sometimes I fell it more theorical side, you won’t find some quick start on Docker for example. As a beginner of DevOps, I might not recommend starting here.
2.4.4 Udemy #
I'm not a big fan of this platform, I always thought that their courses are a bit cheap, meaning not always good quality. It might work for you; you could give a try.
2.4.5 Youtube #
The Good, the bad and the ugly, you might find everything in Youtube.
- Conferences. You can find some very nice conferences like KubeCon or DevOps conferences. It can be useful to know where you are on your journey, do I understand what they talk about, even on beginner-oriented talks. Problem is you will not have consistency across subject, and no deep dive in like 10+ hours in a single subject.
2.5 Practice #
A good way to gain knowledge is with practice. The problem is when you start, you don't know what to practice.
Few learning platforms propose hands-on, the cloudskillsboost is nice, was bought by google, used to be called Qwiklabs.
I once mentored someone by trying to give exercises. you might check this. Unfortunately, we didn't went far. I thought the idea to give only guideline without a step-by-step tutorial interesting.
2.6 Find a mentor #
This is related to the previous point, find a mentor can help you to gives direction on your research. I tried both, mentoring someone and be mentored. I have done this 3-4 month, but it was a nice experience.
Unfortunately, it is not easy to find someone for free.
2.7 Find opportunities #
If you are a developer, chances are that some DevOps tasks are already done, be volunteer to some tasks. If no DevOps are done, try something as a side project, once you are comfortable with it, you can propose some evolutions.
If you don't work in such environment, with no DevOps tasks, I guess it's time to check to other opportunities, this is a good time to look for jobs.
3. Conclusion #
By now you should now if DevOps engineering is for you and the number of efforts and learning it ask. If you weren’t afraid and want to keep going, well... welcome abord.
- Next: Use SSH ProxyJump with Bastion Host
- Previous: Where to start with DevSecOps