A Career in DevOps
In the past week, I got this question on a couple of occasions about how to make a transition and progress in a career in DevOps. This article is an attempt to address these questions in detail.
What is DevOps?
There are several popular definitions for DevOps in use
All these are correct to a certain extent. Let's explore these definitions in detail.?
?So, what is DevOps?
?DevOps is the amalgamation of people, tools, and processes primarily focused on automating the software delivery process. DevOps helps you deliver your software in an error-free, secure, reliable, and repeatable way in the shortest possible time with the least amount of human intervention.?
?
Details on the various aspects of DevOps are probably the content for another post.?
Why is DevOps a such a challenging (read rewarding) role?
?The biggest challenges of the DevOps role also make it the most exciting and rewarding if you are up for the challenge. Let's focus on the difficulties first.
And all these challenges make the DevOps role such a rewarding experience. A DevOps professional is at the center of all the action learning new things regularly. You almost always could see your work's impact and are beautifully poised to make a difference. In addition, you collaborate with all the teams and get to pick new skills in some form or the other. You will never have a dull day being a DevOps professional.?
What do DevOps Engineers do?
The short answer is a lot of things. However, as I mentioned earlier, the DevOps role varies significantly, and what a DevOps engineer does can vary significantly from company to company. Also, the DevOps role overlaps with other established positions in the industry like Systems engineers, Operations Engineers, Security Engineers, and even Developers and Testers. Larger organizations have many of these specialized roles separate from DevOps. However, DevOps engineers do get to do these roles at some point. Following is a superset of all the things a DevOps engineer might end up doing.
Applications: -?Ownership of some of these roles is shared with the Development, Testing, Systems, and Operations teams.?
Systems: -?Ownership of some of these roles is shared with the Systems team.
Security: -?Ownership of some of these roles is shared with the Systems, Security, or Identity and Access Management teams.
?Operations: -?Ownership of some of these roles is shared with the Operations and SRE teams.
?Data & ML: -?This is a relatively new addition to the DevOps role and is fast emerging. This role overlaps with Data Engineers and Data Scientists.?
领英推荐
What is the absolute minimum set of skills required for a DevOps role?
With these skills, you could probably start the DevOps journey; however, you will have to continuously add to this list of skills and tools to go far on the DevOps road.
A case for the "Full-Stack DevOps Engineers."
As we saw earlier, the DevOps role is quite varied, and it can have a very focused set of responsibilities as well. However, a breed of DevOps engineers has mastered most of the skills listed above, if not all. I choose to call them "Full Stack DevOps Engineers." You could compare them to a swiss army knife in real life. You throw them into any DevOps implementation, and they will deliver. These engineers have the spread and depth of expertise and have exposure to various tools and implementations. There is a clear differentiation between them and other DevOps professionals with a more focused experience. I suspect "Full-stack DevOps engineers" will be a norm in the direction industry is heading. I rue that this term is not much in use in the industry.?
How to pick up DevOps skills?
Real-life projects: -?There is no substitute for learning on a real-life project and implementing requirements and solving problems unique to the DevOps role. However, you cannot just rely on this unless you are working to build an extensive DevSecOps platform. This is primarily because a typical DevOps implementation might have a very focused goal with a defined set of tools. If you would want to progress far in a DevOps career, you would need to supplement your on-project learnings with other sources like the ones listed next.
Certifications: -?If you do not have an opportunity to work on a real-life project, the next best thing is to get a certification. A certification is also a good way to consolidate your knowledge about a topic. It also adds weight to your resume. Preparing for certification gives you the rigor and coverage of topics within a tool or technology. However, if learning is your goal, then just focussing on getting the certificate, using question banks and exam dumps, might not be sufficient. It would help if you studied to excel in the exam, probably preparing you better for a real-life DevOps challenge.?
Online Courses: -?These are a great way to pick up skills; however, you might have to curate the courses you pick. Just picking the most popular course might not be sufficient. Do your research on the technology, list down topics you want to learn, see how hands-on a particular course is, and then choose. Focus on finishing available content rather than procuring more content. Once you get a head start, you will know where next to go. Another tip, most online courses have a much slower speed to accommodate all skill levels. If you are comfortable with the topic, consider doing it at 1.5X speed. And no shame in slowing it down if things get too busy for you.?
YouTube: -?Word of caution here as well. The most popular video is probably not the best. It could be a great starting point. I am astonished at times as to how absolute gems of videos have such low views. There is a lot of great content in conference videos, but again with very few views. This is because YouTube rewards content creators who regularly post content with wider viewership (read basic). Curate your playlists.
How-to progress in a DevOps career??
If you are at the start of a DevOps career or have been in the role for a few years, here is the blueprint of how you can go about acquiring Devops skills that will help you progress in a DevOps career. Again, in the spirit of DevOps, this is not the only way to do it. However, I think this is an excellent way to go about it.
Acquiring skills: -?If I listed the Devops skills in the order of jobs available in the market, it would be the following
The details of these skills are mentioned above in the "What do DevOps Engineers do?"?section above.
I would say that apart from applications, all the other skills overlap with IT profiles dedicated to these skills. So, it makes sense that you start to acquire these skills in the same order. I am not suggesting that you don't progress to a new skill unless you are an expert in the previous skill in the order of precedence. This list is just an indication of how you should prioritize your efforts. Your goal should be to have mastery over all these skills. If your job does not give you exposure to these skills, refer to the "How-to pick up DevOps skills?" section above on how to go about picking these other skills.?
Tools exposure: -?As I mentioned earlier, the DevOps tools sprawl can be daunting. However, it is not that tough to tackle. Your goal should be to pick up at least one tool in each skill group and have complete mastery over it. This is paramount since it will give you the base needed for picking other tools fast. Once you have mastered this one tool, pick up other popular tools in that skill group. See how the features map. Maybe do a hands-on implementation of a basic use case. Skim through the documentation and check out some product videos. You would be surprised to see that this would be enough for you to prepare you for a more involved implementation of the tool.?
Building things from scratch: -?The initial few years in your DevOps generally would be about maintaining existing processes or enhancing them. As you develop your DevOps skills, you should be in a position at some point in time when you would be required to architect processes and tools implementations and would be setting up things from scratch. These opportunities help solidify your knowledge as expertise and take them to the next level. It would be best if you were on the lookout for such opportunities.
Big picture: -?As you climb the skills and corporate ladder, it will become vital for you to be able to tie business cases to DevOps implementations. Getting exposure to how DevOps solutions are designed, how tools choices are made, and how factors like budget and resourcing impact these choices would become important and desirable. You should be able to identify bottlenecks and improvement opportunities in existing processes. You would be required to architect complex systems from scratch. You would also be required to have a deep understanding of DevOps concepts, and tools, and you should be able to communicate these concepts to leadership and other teams in relatable terms. You will also have to hire and mentor teams and make staffing decisions. While the business aspects of the role do increase as you climb up the ladder, I strongly feel that being hand on and having relevant technical knowledge is paramount for you to succeed in a DevOps career.?
Making the switch to a DevOps role
?Being a rewarding career in various aspects, it is natural that a DevOps role attracts people from various other functions. I would segregate these profiles into four different types. Following is a strategy for these profiles to make the switch
My journey in the DevOps world?
?I started my career as a C++ developer in the year 2001. Somehow, I ended up being in projects of all kinds from the onset. From testing to web development to writing installers and maintaining version control tools. One day I was writing device drivers, and the other day I was creating Flash animations. From writing web crawlers to setting up VPN, I did it all. This was when C++ developers refused to work on java projects because it would dilute the technology focus of their resumes. However, my focus was to pick as many tools and technologies as possible. Little did I know that I was preparing myself for a career in DevOps. Eventually, I transitioned from a jack of all trade developer to a build and release engineer role. A transition almost unheard of in those days. DevOps, as a term, would still not be in use for the next eight years of my career. For the first ten years of my career, I was an individual contributor to big teams, being the only one doing what I was doing. After that, I joined a team of fantastic DevOps engineers and spent another ten years forging my DevOps skills in the heat of battle. In the last few years, I have been fortunate enough to get opportunities to build complex DevSecOps platforms from scratch. The learning has not stopped, and the journey continues still today.?
Senior Growth Manager & CSM
2 年Great article Pinaki! I learned a lot especially for the upskilling aspect of it as well as the Full-Stack DevOps Engineers definition. Neil, Timothy, I believe you’ll like it as well ??
--
2 年Thank you for sharing this information.
Sr. Director, TMO
2 年Good one...I would need to go thru it one more time though ??
Senior Engineering Lead | Data Solution Designer | Cloud Engineering, Data & Machine Learning
2 年I was thinking to speak to you in the same
Technology Manager - DevOps/MLOps/SRE | AWS | Data Science | MLOps | Python | Snowflake |Alteryx
2 年whole and sole of DevOPs in one page!!! great Article Pinaki Mukherjee