Software development. System management. Communication skills. These requirements for a DevOps administrator job seem straightforward, but each role has nuance that relates to the specific company looking to fill this position -- and nothing in IT is static.
For candidates, this can create a confusing path to a job, laced with uncertainty about what recruiters look for and what will be expected of them when they land the job. However, these diverse postings -- and the jobs themselves -- share some common mechanics.
To clear up confusion around the DevOps admin role, SearchITOperations spoke with some practitioners to hear about their firsthand experiences.
While a DevOps admin job can range from entry level to senior, some requirements carry over from each level. For example, the years of relevant experience required for a senior-level position will be higher than an entry-level position, but many of the postings for both will require a bachelor's degree in computer science or a related field.
That said, there are job postings that will waive the bachelor's degree requirement for equivalent work experience. And while that experience can come from a range of tasks and previous projects, there is one area it should include: the cloud.
"I think the biggest skills [for a DevOps admin] would be familiarity with cloud providers and infrastructure," said Matthew Grasberger, a DevOps engineer at Imperfect Foods. "As I've performed the DevOps role so far, most of the work has been working with -- in our case, AWS -- and automating a lot of the things that you can do manually in AWS to save developers time."
A company might opt to use Microsoft Azure, Google Cloud or any of the other cloud providers available, and while their intricacies vary, some knowledge and skills transfer from platform to platform. For example, programming languages, APIs and containers are used commonly.
"A couple of years ago, we would have described DevOps engineers or DevOps admins as someone who built and maintains a CD [continuous deployment] pipeline; that was the kind of main job for them," said Mirco Hering, global transformation lead at Accenture. To complete this task, they need to be skilled with tools and concepts such as Jenkins, automation, Perl and Bash. "What we've seen change now is that there's a lot more work being done with cloud-native solutions. So I think nowadays, you do need to have skill sets in either the Azure DevOps platform or the AWS or Google alternatives."
Over the last few years, Grasberger has seen a growth in containerization as well. "Using Docker is, at least in my experience, kind of the de facto standard for applications now. And so with that, you have organizations moving to Kubernetes, Elastic Container Service and many other providers that allow you to simply give them a Docker container and define how you want the container to run," he said.
When asked to list only the top three skills a DevOps admin should have, Hering narrowed it down to:
1. The ability to learn
"The DevOps platform is always broader," Hering said. Being willing to learn new technology is more of an asset than a specialization in just one tool. One way to show this is through certifications. An individual certification doesn't hurt, but Hering sees an individual completing the curriculum from, for example, the general cloud course for Azure to the developer, then admin, courses as a commitment to their own learning.
Automation in DevOps is a general skill. "Most of the people that I work with, and I like working with, don't have a problem moving from Jenkins to do DevOps," said Hering. "They understand how automation works, how you need to abstract variables, how you need to think about using configuration for everything rather than hard-coding things."
3. One sharp knife
As important as it is to have broad knowledge and a willingness to learn, experience and proficiency with a tool or platform such as Azure DevOps, Ansible or Terraform rounds out a DevOps admin's skillset.
"A DevOps engineer in a lot of roles is going to be, maybe not the front line, but sometimes a first responder on certain types of issues," Grasberger said. Familiarity with your organization's application stack is crucial for the role. This familiarity in action could mean looking at a log and, for example, recognizing that it means a database is being overloaded.
However, a DevOps admin's responsibility doesn't stop at the application, but extends to infrastructure, as well. For many, this could mean reinforcing their skills with cloud platforms and applications. But, more likely, it means understanding a hybrid environment. "So they will have some VMware, they will have some cloud, and what you're trying to do is spin up an environment across these two landscapes," Hering said, as an example.
Keep an eye on…
Automation is a huge part of the DevOps role and its growth in popularity and function should have current and prospective DevOps admins paying attention to it.
"I think a lot of companies are already doing [fully automated deployments], where a developer can just write a feature and they push up their code. The entire pipeline has so many tests and can fully validate their changes -- such that if it's a small change, no intervention is actually needed at all -- to then deploy to production," Grasberger said. "And certainly Facebook, Google and those organizations are successfully doing that, at least they say, and I think companies will be moving toward that."
But the road to get there -- especially for smaller companies -- might be a little bumpy. While fully automated deployments are a benefit, there's still a lot of unknowns to implementation, as well as a current lack of tooling that can recognize test validity, Grasberger explained. And while AI and machine learning might help unlock that potential, it's not certain yet.
Look into infrastructure as code
"Infrastructure-as-code tools are incredibly popular, and for a good reason," Grasberger said. "Because without infrastructure as code, it's very hard to understand and track what's going on with your infrastructure." An enterprise that is looking to get started quickly might not be concerned with tracking changes, but large organizations must track these changes and their effect on their cloud setups, he clarified. Terraform is a popular infrastructure-as-code tool, but there are alternatives, such as Ansible and ARM templates.
DevOps is a culture first and foremost. For a DevOps admin to implement this methodology successfully requires changing how people engineer projects. One way to help explain the process is through visualization skills. "We are, very often, talking in such abstract terms that it's difficult to follow," Hering said. Process visualization, such as value stream mapping -- or the visualization of applications and infrastructures -- helps communicate goals, whether that's implementing technology or changing workflows. "The ability to put this into a picture and [bring] more people across to what you're trying to achieve I think is super powerful."
Dig into data
Hering sees understanding and using data -- especially the metrics from DevOps platforms and applications -- to make decisions as one of the next steps in the evolution of the DevOps admin role. "That might be decisions about proactive security remediation so that we're not falling into the problem of having a Log4J coming around the corner -- and then we have to very quickly fix it everywhere."
Or, as Hering is exploring in his research, it can mean investigating how data flows through an application to see what components are more stressed than others and making proactive changes.
"For many years, it was a measurement of 'How quickly do we get the feature out?' And now we're seeing [many] more organizations measure whether these features are actually being used."
Does remote work change the role?
"I started working with [Imperfect Foods] about two years ago and have been fully remote since then -- and [I] was transitioning to a DevOps engineer role at that time. So it's just really common, I think, for DevOps engineers to be remote," Grasberger said. "I know certainly, culturally, folks may prefer to be on site or not, but at least for me, there's zero perceptible way I can see that being on site would [have] enabled me to do my job better."
Enterprises face a different set of challenges with remote work. When employees work off-site, security plays an even larger role in the number and types of security measures to put in place. Now enterprises must ensure that they have device security profiles in place, as well as the bandwidth to support a remote workforce, Hering explained. Companies might choose to invest in technology such as VPNs, firewalls or zero-trust network access to secure remote access depending on variables such as the size of their remote workforce and their locations.
Even with years of experience under your belt, prepare to face surprises.
"The most surprising thing is just how often things go wrong," Grasberger said of being a DevOps engineer. "Software is inherently buggy. And I don't care what software it is, but at some point, it's going to fail. And there may not always be an answer."
A DevOps admin must be flexible and ready to handle whatever is thrown their way, whether the problem is with their own software stack or a third-party service.