I frequently encounter these questions on almost on the daily basis. How do I make my career in Devops? What are the various tools I need to know before diving into this field? I have tried to break these questions into a step by step process:
Step 1: Make your Choices
You do not follow Devops blindly and understand the tenets clearly. Devops is not a specific Job Profile; it is rather an approach, a set of practices which help Ops and Dev and also other teams to achieve common goals – Achieving Agility without compromising Quality. Don’t just decide to be a devops professional because everyone else it talking about it. It has to make sense to you.
Step 2: Choose your Base
To begin with, you choose your life work, your domain, your career path. You would pick up one area of expertise i.e. Infrastructure Administration (A Ops Guy), Developer, QA Engineer based on what interests you. Devops is a logical transformation which is built on top of this foundation.
Step 3: Learn the Ropes
Once you choose your life work, acquire the fundamental skills.
For a ops guy:
It’s essential to know operating system and administration, either Linux/windows. It mostly leans towards Linux knowledge. Along with OS Administration, you should also know Networking, Troubleshooting etc.
For a developer:
It’s important to understand at least one programming language well.
Step 4: Skill up with Devops
Once you have the right foundation, you acquire today’s generation Devops skills and practices.
For ops guy:
It would be Cloud and Virtualization, Containers, Configuration Management (Puppet, Chef, Ansible, Salt etc.), Log Management, Performance and Health Monitoring, Web Stack/Big Data Administration, CI/CD Tools from Administrator’s perspective etc.
For a Developer:
For a deveoper its must to know about Agile practices including TDD, BDD, Iterative Development, Scrum etc. It would also helo learning to automate workfl
ows using Jenkins for CI, Deployment using tools such as Capistrano/Ansible. Docker is the future, so its a must know skill. Again, the tools and practices vary based on the context, organisation etc.
If you like to know about the relevant skills to acquire, read Devops Skills Report by School of Devops.
Step 6: Apply
Once you acquire these skills, you keep practicing those, identify all the manual steps and start automating those. That’s what devops folks do.
Step 7: Self Learning
Apart from practicing Devops, one of the most important skills to acquire is self learning, and adapting to new tools. Today’s tool will not last forever. If you stick to one tool and expect it to serve you for lifetime, that will almost never happen. Technologychanges, new tools would come, and you must adapt. However, that does not mean you change your domains/area of expertise. It will remain same . You would still be an ops guy, or a Developer, or a QA, but equipped with the latest generation tools.
I started as a Systems Administrator, then a Operations Engineer and now tagged as a Devops Engineer, but my area of expertise remains same – building, managing, automating and maintaining the systems/ IT infrastructure. And in future, the tag may change again, but not the role/work. It may just be a new practice, a fad or a keyword with possibly even better, cooler and more effective technologies/tools.
To summarize, if you choose an area of expertise, acquire skills on latest tools, and keep yourself updated, you could do a great career in any field including what is tagged as Devops today.
To get your fundamentals right, start with The (Short) History of Devops by Damon Edwards which is a very interesting narration which begins with where it all started and goes on to walk you through how devops emerged as a very popular practice that it is today.