DevOps - a 2-in-1 role
DevOps is a 2in1 role - The short answer - Automating the deployment of code (services) and infrastructure (servers , networks , middle-ware , security) . The long answer - a combination of cultural philosophies, practices and tools that increases an organization’s ability to deliver applications and services faster through automation.
Below are the 2 different sets of people in this role
Group A) This group is more focused on infrastructure provisioning - this set know how to design, implement, manage and support IP networks, servers, databases, applications, web servers and security. Their career spans on-prem environments heavy with physical hardware. Provisioning used to be manual or semi manual( through convoluted power-shell , bash , python scripts).
There was no synergy even between the same infrastructure teams but they have since evolved. They have embraced automation in their day to day operations, implementing CI/CD pipelines when provisioning infrastructure and they work with "some of these tools" - terraform , ansible , puppet , git, Jenkins and chef for scripting and automation.
=> what organizations want them to know - collaborate with a team of software engineers in creating end to end CI/CD pipelines for both services/code and infrastructure
=> Skills that will take you there - cloud platforms and technologies , terraform , ansible , puppet , Jenkins , git , python , java etc
Group B) This group is more focused on software engineering - this set is inclined more towards software development. Their career has mostly been developing applications using one of C# , Scala , Java ,PHP ,JavaScript , Python etc. They understand CI/CD pipelines in relation to software deployment, and unfortunately in a lot of instances they don't have access to the infrastructure they deploy to.
=> what organizations expect them to do - work with a team of infrastructure engineers in creating end to end CI/CD pipelines for both services/code and infrastructure
=> Skills that will take you there - cloud platforms and technologies ,
Group C) Finally the 3rd group - those who are both in Group A and B - i am going to ignore this Group (often comes with experience or you work like Elon musk (more than 120hrs a week) or you are quite smart )
Most people are either in Group A or Group B . Their competencies are inclined towards one of Group A or Group B but to grow comfortable into any DevOps role, one has to learn new technologies outside their comfort zone.
Keep in mind , its quite difficult to get into Group C. You have other commitments outside work and it requires time and consistency to be an expert in multiple technologies. Its usually easier if one works with the technologies everyday. If you work for a startup , your chances of learning new technologies outside your comfort zone are very high.
Recommended by LinkedIn
Below i have highlighted the steps one can take to get as close enough to Group C
1) Evaluate yourself and see if you are in Group A or Group B.
2) Based on the Group category one falls into , work on improving your knowledge based on the technologies OUTSIDE that group. This will expand your DevOps skillset outside your comfort zone.
There are 2 ways you can approach this (keyword here is fundamentals)
When you know yourself , you understand what you need to focus on and how you will get there.
Self introspection
I am in Group A (scored myself based on experience). My journey towards DevOps has been insightful. I started way back in 2015 working with a team of 4 C# developers after i had joined a new organization. My first project was replacing webistrano with Jenkins, create delivery and deployment pipelines to Dev ,staging and production using Jenkins and kiln (some version of git). I managed to complete the project, wanted to expand it and include automated tests but stalled along the way due to competing priorities in my role.
Many organizations are looking for DevOps engineers with a strong in automation background, doesn't matter weather you are in Group A or B, all you have to do is be prepared to learn. With the advent of cloud technologies, CI/CD principles are now being applied to both software and infrastructure deployments. There are lots of tools to learn, It takes time i know but one day we will get there, don't rush it.
Below are the technologies that i have been working on since January 2021.
Takeaway - the more technologies you know , the better your chances are in the DevOps space - but run your race , pace yourself , you will finally get there.
Thanks for sharing
Awesome stuff in writing Martin 👏🏾👏🏾👏🏾