A step by step guide on how to become a DevOps engineer
github.com
github.com
2. Become an IT Operations Engineer
3. Years later, find out what DevOps actually is
4. Never actually practice DevOps
5. Become a DevOps Consultant
Most of the people I’ve worked with called like that stopped their professional development somewhere around the year 2000 and are now coasting along.
For the new title, I feel like they completely ignore the Dev part of DevOps.
- just dealing with bad Ops engineers at work that "don't do much"
- employees taking advantage of the DevOps movement to make more money
- System Administrators complaining that 'this is what we have always done'
System Administrators, though skilled, had a much different mindset in the 90s when I worked closely with them. They were more focused on keeping Sun hardware running and keeping the SAN from filling up. That server room was their 'production'. They were still on call for when a server went down and it took days for a new server to be rebuilt. The best of them wrote scripts to make their lives easier but that wasn't often the focus. They were too busy keeping the systems running to automate much of it.I find that DevOps is a different level of abstraction compared to Sys Admins. In general, they do not need to know how to build a server and fight with the OS as they can use tooling to spin up 100s of machines in the cloud. The amount of knowledge they need is much broader and less specialized than a System Administrator. Where the Sys Admin would need to know the ins and outs of Cisco Routers, the DevOps engineer only needs to know how to use a Load Balancer. If lucky, there is a tool that makes it easy to create them.
I find the list in the guide to be quite accurate but you do not need to be a master of everything in the list.
2. Start implementing tools into existing workflows
3. Pad resume with new buzz words
4. Leave for a more lucrative gig while midflight with current projects
5. Rinse and repeat
So it's definitely a lot but at the end of the day it's just knowledge you can self study. A focused course could probably teach it in 6-8 months and give you a pretty solid chance at landing the job vs the algo-puzzle coding path which has a high false negative rate even for talented software engineers. Plus once you have your foot in the door you can always look into a ladder change if you find you don't enjoy the SRE-style work.
Seriously tho, I stepped to next level when I started doing Boto stuff in Python.
12. Learn DevOps
What is Scrum?
Ways To Learn About Scrum
Software Development Life Cycle (SDLC) Phases & Models
The Beginner's Guide to Agile in Jira: Course description
Learn SAFe
Learn Automation Testing
Well. That list is certainly something. But whatever it is, it's not DevOps. It's like "certified agile"? Which is also not agile.And I agree, that's "certified agile". Pretty useless. You can pick whatever "agile" processes are being done in your company in 15min and just go with the flow. A "devops engineer" (whatever that is) hardly needs to know more than that to deliver.
Spivak's approach is much more in line with what I'd suggest folks do: https://news.ycombinator.com/item?id=33398284
There are also other places like where I am now where every team that works on backend infrastructure (Windows, Linux, Virtualization, Networking) also works on their own automation for their platform. We do have a Platform Engineering team that focuses on K8s and Dev tools such as Artifactory, Gitlab, Puppet.
I have an opinion that if a company has a specific role of 'DevOps Engineer' they are doing DevOps wrong. Also Jira and Scrum are absolutely not needed at all to do DevOps.
1. Learn a programming language first. Pick something common. Ecosystems are more important than the quality of the language. If you feel overwhelmed by choice learn Python. The ideal learning path is high-level -> low-level -> low-level (advanced) -> high-level (advanced). You want the language to get out of your way at first so you can learn concepts, then get in your way as you learn how things really work, and then back out as you learn real software development. Learning version control first will feel completely unmotivated without knowing why the tools the way they are.
2. Absolutely 100% learn Linux. The best infra people have a strong strong background in sysadmin work. And learn networking through the lens of the kernel/low level userspace. Don't try to learn network protocols in a vacuum, learn how they're actually used on real systems.
3. From this point skip right to IaC. You are at the point where this will make the most sense. And unless you have quite the setup this is when you're gonna learn a cloud provider. Pick AWS. This isn't a bias toward them -- knowing AWS will make learning other clouds easier, the reverse isn't true. And tooling, guides, and documentation for AWS is more plentiful. Explore using the console but don't do anything except play around. Assembling the Cloudformation/Terraform will teach you much much more about how the pieces fit together.
4. Now learn CI/CD, and you'll find yourself reaching for containers here because it's such a huge pain without them. Now you have a real motivation to learn them that isn't contrived. Once it "clicks" you'll understand why you might want to deploy other things with it.
6. Don't bother learning "devops the process" -- it's worthless, nobody agrees what it even is, and every company will do it differently anyway. You want your "knowledge" about the process to be as rich as the flavor in a La Croix. All these processes are at their best when everyone only vaguely knows what they are because any sort of strict adherence only makes you lose sight of your real goals.
7. Do not learn k8s until the very end. It is literally the final boss that combines all the other knowledge you acquire in your devops journey and you genuinely cannot understand the architecture, the tools, and decisions until you experience the pain points of not using it.
8. If you can swing a job as a junior then don't bother to learn how to run production systems, you will learn so much better and faster on the job than anywhere else. Have a "homelab" running some semi-production services to play around with and talk about in the interview but be ready that the big leagues will be a lot more involved. Once you are reasonably self-sufficient at your job and ready to move from maintainer to architect then look toward sre books.
This will get you ready to work at shops in the cloud. If you want to do on-prem work it's a different path.
The sad truth is that DevOps is a cost center which comes with all types of organizational disrespect, including lower pay and harder political battles.
No there was never a time in modern history (ie at least since I’ve been around in the mid 90s) that operations at any scale wasn’t using some type of tooling - either DCL for VAX machines, Perl, PowerShell, etc.
Keep in mind that "ops" and "admin" really depends on 'how much you have', a half rack of hardware was also managed by "ops" and "admin", and generally bootstrapped by hand and maintained with individual remote access or kludges like cssh/pssh. Even legacy systems like puppet were mostly used in the context of cluster management, not an entire fleet of mixed systems. There was no API for any of this either, so any programmatic access had to traverse layers of incompatible proprietary systems.
Developers did (and do) none of this. This work hasn't disappeared or changed much, and also isn't part of the DevelopmentOperations amalgamation. The grey area that it creates used to be the realm of release engineers and technical application operators. Those are the roles that have largely disappeared when an environment goes from legacy to more modern organisational structures.
This overlap (and the legacy disaggregation and hyper-specialisation) exists for a reason: developers that don't have to wait to deploy and instrument can release faster and more often, which adds value. But specialisation to enable developers to do all this is now needed because that extra value that was created now needs to be protected and enabled at scale, something that is enough work to keep one or more FTE busy. This is where specialisation (in a business context) comes from in general. If administrating systems and operating those systems was a very small task and easy to learn, there would be no sysops/sysadmin specialisation and the janitor would do it.
Even in the mid 90s when I worked on backend mainframe systems for lotteries, everything except physically changing out tapes and malfunction hardware was automated.
There has been an API to manage networked servers since networking existed.
The value add of DevOps was suppose to be developers and operations working together. When I develop something. I always do it with a mindset of how will it be deployed, scaled, monitored, etc
If “DevOps” is a role instead of an institutional behavior, you get none of those benefits.
And yes I know “Devops” [sic]. My day job is consulting companies on how to bring modern development and cloud operations, networking, CI/CD, monitoring, aggregate logging, etc together. I work up and down the stack from an empty AWS account to back end development and if you put a big enough gun to my head, I’ll deal a little with the clusterfuck of front end development
i feel like devops is just a bucket for lost souls who like tech stuff.
am i crazy?
Yup, that's me. I would call my self a generalist with a slight tendency towards cloud infrastructure. But I love ALL the tech!
* Let me install the newest WiFi hardware and rehaul the local network - I'm happy
* Let me dig into the newest cloud-native tools to enhance the developer experience- I'm happy
* Tell me about the small problem you have in a step of your build pipeline - I'll sink 10 days into it and optimize the whole pipeline - I'm happy
* Let me put all the infrastructure configuration into code - I'm happy
The list is endless. The / one downside is that I'm juggling priorities all the time and the backlog of things I would like to do is also - endless.
Sure, if you're only motivation is money. To a lot of folks that sounds miserable.
> i feel like devops is just a bucket for lost souls who like tech stuff.
I don't understand...do you not like "tech stuff"? We're posting on hackernews here...