By Jamie Cook – Consultant DevOps & Site Reliability
While it is argued that DevOps practices have been around for a while, DevOps as a specialism and methodology is a relatively new concept. With that comes the difficulties of defining what truly makes a DevOps Engineer great at what they do.
With the roaring adoption and capability of Cloud-native technologies, bridging the gap in companies between the ‘techies’ (developers) and business operations has never been so important – bringing about the need for highly-skilled individuals that have the ability to speak both languages. In short, a tech-savvy with the ability to spot an issue and build a solution on-demand, while understanding how these issues affect the business as a whole and how to communicate this effectively.
From a technical perspective, summarising some of today’s best-regarded DevOps Engineers in the market there is not a formal career path that each has followed to get where they are today. Most commonly they are engineers that start out as Software Developers and then become interested in the deployment cycle, Network and Cloud Infrastructure. Or they are System Administrators who become passionate about the functionality and use of programming in deployment.
This unclear picture of what a DevOps Engineer truly looks like can be further magnified by the market when analysing job postings – you seldom will see the job requirements and skills be the exact same, even if the companies operate in a similar market.
This is commonly due to a number of reasons such as the gap in skillset within their respective current teams or because of the difference in technology choices adopted by the company can lead to a very different technical environment. The most common attributes found, which perhaps offers a list of core DevOps skills/requirements:
- Deep understanding in at least one open-source cloud technology
- Automation skills are highly valued as businesses strive for maximum efficiency through Continuous Integration and Continuous Deployment (CI/CD)
- Experience scripting and writing good code (e.g. Python, Java, C#, Ruby, Bash, Golang)
- Strong knowledge of configuration management tools, following an ‘infrastructure-as-code’ methodology
- Exceptional communication skills are labelled vital to collaborate effectively and form a cohesive team to ensure maximum workflow efficiency, clean deployments and business outcomes are met with minimal risk factors
- Strong education (often a degree in Computer Science or a related field is required) with emphasis on continual learning and development in a dynamic industry
- Monitoring, logging and testing skills are deemed an essential part of a DevOps Engineer
What are the Skills in Highest Demand?
What already sounds like an impressive ask to manage the large variety of responsibilities outlined above, it becomes increasingly difficult to match with the ideal engineer due to the exhaustive and vast array of tools available for each of these practices.
One of the current most in-demand technologies is the orchestration tool, Kubernetes, which after its release to the market around 6 years ago has seen a quick uptake by businesses looking to improve their software development cycle, and we are now seeing more & more companies actively seeking engineers with the ability to configure and manage these complex clusters in production.
Therefore, to get the most out of your DevOps professionals, you may want to additionally recruit for (or train your team to be) the following:
- Cloud-agnostic – while Amazon Web Services (AWS), Google Cloud (GCP) and Microsoft Azure (Azure) are currently the most commonly used open-source technologies in the market, it is vital to be able to remain agile in today’s transformative technical landscape and engineers that have a deep understanding of the concepts and capabilities in multi-cloud environments will be highly sought after
- Masters of the CI/CD process and ability to follow an ‘Infrastructure-As-Code’ methodology – technologies such as Jenkins, TravisCI and Circle CI are among the most popular tools for pipelines, while Terraform, Ansible and CloudFormation are all highly sought after for Config. Management among the clients we work with
- Experience building out and managing containerised and orchestrated environments – Docker and Kubernetes being the most cited technologies
- A strong programming ability – allowing your DevOps team to work seamlessly alongside developers by fully understanding their needs in the full deployment cycle
- An ‘automate everything’ approach – so you can streamline current processes by reducing errors, minimizing infrastructure spending, all while speeding up the production cycle
Due to the increasingly dynamic workforces bought on by continual transformative changes in technology, it can still be described as a strenuous task to truly define the role and responsibilities of the modern-day DevOps Engineer. What is clear is that for companies, especially operating in a technology-driven environment, having engineers that understand both best coding practices, can navigate and utilise the full power of cloud-based environments and communicate best DevOps practices for others across the business can yield significant benefits in their business cycle and costs – such as reducing deployment times, configuration management costs and the expensive requirements for on-site bare metal machines.