I’ve been receiving numerous messages from developers who are interested in transitioning to DevOps teams or beginning their journey into learning DevOps methodologies. Therefore, I’ve decided to write a brief post that will provide a summary for those of you looking to make progress in this field.
This article will summarize the prerequisites for transitioning into the DevOps role and won’t cover specific learning topics, that’s what Roadmap.sh is for.
There are two types of changes you’ll need to make:
- A perceptual change — seeing the organization’s products and their development from a different perspective.
- A professional change — gaining expertise in areas that were previously beyond the scope of developers’ interests.
Let’s delve into with 4 main points:
- Shift your perspective from a narrow focus on developing specific features to a broader view that encompasses the entire system, including its various layers (code, infrastructure, processes, monitoring, etc.). By the way, I recommend this approach not only for developers looking to change their roles but for all developers. Understanding the process and infrastructure for the feature you’re working on is necessary for creating a better product.
- A deep familiarity with CI/CD processes is crucial. As a developer, you may have a basic understanding, but it’s essential to grasp the rationale behind each step and how to build and enhance these processes. To be DevOps professional, you need comprehensive knowledge of CI/CD, which includes processes like build, testing, deployment (with various types), version control, and more.
- Understanding microservice architecture & cloud infrastructures is one of the most important things. Learning of cloud provider services (e.g., AWS), differentiation between container orchestrators / Serverless technologies, gain an ability selecting the appropriate services for developers (by experience, performance, costs and so on). Once you’ve mastered infrastructure, learning Infrastructure as Code (IaC) becomes crucial, as it’s now integral to the role of a DevOps engineer. Modern infrastructure management relies on IaC, and you’ll need to integrate it into your CI/CD pipelines.
- Transitioning to Platform Engineering gradually transforms DevOps engineers from service providers to developers who create internal tools and processes. DevOps teams undergoing this shift will value experienced development professionals. Additionally, fostering a self-service culture and developing developer platforms will also become requirements.
You will have to use a lot of DevOps and SRE knowledge (processes, architectures, IaC and more) to improve the development experience while implementing automation for all parts of the product building process — from the development phase to the monitoring phase.
And what wouldn’t you want to automate? (e.g. user management, permissions, secrets, etc.) — Build a self-service system for it like we did (here and in other areas, your advantage as developers will come into play).