What is DevOps, and how differing interpretations have affected me
I just completed my last contract and started looking for a new one. To my surprise, I began receiving offers primarily for tasks like managing Kubernetes clusters, setting up CI/CD pipelines, and automating platforms — all without any development work involved.
While I do have experience with these tasks, it's comparable to my experience in writing unit and integration tests: I do it because it’s part of the job, and I believe I do it well. However, I don't enjoy it as much as research and development.
This led me to ask: where is the 'dev' in so-called DevOps? And that's where the funny part began, I found that there is different understanding about what DevOps is.
What internet said about DevOps?
·?????? Amazon: “Under a DevOps model, development and operations teams are no longer ‘siloed.’ Sometimes, these two teams are merged into a single team where the engineers work across the entire application lifecycle, from development and test to deployment to operations, and develop a range of skills not limited to a single function.”
·?????? Atlassian: “A DevOps team includes developers and IT operations working collaboratively throughout the product lifecycle, in order to increase the speed and quality of software deployment. It’s a new way of working, a cultural shift, that has significant implications for teams and the organizations they work for.”
·?????? Wikipedia: "A set of practices intended to reduce the time between committing a change to a system and the change being placed into normal production, while ensuring high quality"
In my recent projects, we utilized platforms like OpenShift and Kubernetes (k8s), and my responsibilities included:
·?????? Architecting, designing, and developing microservices.
·?????? Creating CI/CD pipeline frameworks using tools such as GitLab CI, Helm, Jsonnet, Maven (mvn), and Kubernetes (k8s).
·?????? Building tools and frameworks to automate our development and operation tasks
领英推荐
·?????? Managing the platform with tools like ArgoCD and Crossplane.
·?????? Monitoring and supporting clusters and microservices across all environments, including production.
·?????? Fixing failed Renovate updates.
·?????? Addressing security findings identified by pipeline tools such as WhiteSource and Trivy.
I would say that I spent roughly 65% of my time on development tasks and the remaining 35% on operational tasks. The team primary goal was to design, build, deliver, and operate a set of microservices in the most efficient way possible. Based on my understanding, I was part of a DevOps team.
I found that being responsible for the deployment and operations of the services I develop has significantly improved my skills in several areas:
·?????? Logging: When troubleshooting production issues, I became much more careful about what needs to be logged, the appropriate logging levels, ensuring all relevant context information is captured, and enabling the correlation of all log entries related to a specific transaction.
·?????? Monitoring: Supporting services in production has taught me to proactively prevent issues whenever possible. When prevention isn’t feasible, I aim to detect problems before clients start complaining, allowing me to address issues as quickly as possible.
·?????? Business Activity Monitoring: Understanding who uses your services and how they do so is essential for setting up effective anomaly detection. This also helps in predicting the impact of issues or maintenance windows.
·?????? Code Review: When I’m responsible for maintaining a service in production, my motivation to prevent errors in a colleague's code increases significantly, as I will likely have to deal with the consequences.
·?????? Automation: We iteratively developed tools and frameworks to improve our workflows. By the end, we became an order of magnitude more effective in our work processes.
There is a different interpretation of a DevOps team as being separate from development teams, responsible primarily for platform automation, platform operations, and CI/CD setup. However, I believe the process I followed is much more aligned with the true DevOps concept, where development and operations are integrated.
Now, I’m wondering how I should adjust my CV to avoid being considered for such purely operations-focused roles. ??