DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Please enter at least three characters to search
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

The software you build is only as secure as the code that powers it. Learn how malicious code creeps into your software supply chain.

Apache Cassandra combines the benefits of major NoSQL databases to support data management needs not covered by traditional RDBMS vendors.

Generative AI has transformed nearly every industry. How can you leverage GenAI to improve your productivity and efficiency?

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workloads.

Related

  • How to Become a DevOps Engineer
  • From Chaos to Collaboration: Transforming DevOps With RACI Matrices
  • The Rise of the Platform Engineer: How to Deal With the Increasing Complexity of Software
  • Unleashing the Power of Site Reliability Engineers

Trending

  • Data Quality: A Novel Perspective for 2025
  • Metrics at a Glance for Production Clusters
  • Performing and Managing Incremental Backups Using pg_basebackup in PostgreSQL 17
  • A Deep Dive Into Firmware Over the Air for IoT Devices
  1. DZone
  2. Testing, Deployment, and Maintenance
  3. DevOps and CI/CD
  4. How a DevOps Engineer Facilitates DevOps

How a DevOps Engineer Facilitates DevOps

A DevOps engineer must have skills that span both development and operations, as well as interpersonal skills to help bridge divides between siloed teams.

By 
Tom Hall user avatar
Tom Hall
·
Feb. 24, 21 · Analysis
Likes (3)
Comment
Save
Tweet
Share
8.0K Views

Join the DZone community and get the full member experience.

Join For Free

When an organization is rooted in a siloed structure where development and operations work separately, implementing DevOps often entails an organizational overhaul. It takes the right people, culture, and tools to successfully implement DevOps. Yet one of the most common hurdles to implementing DevOps is a lack of skills in employees, according to Atlassian’s 2020 DevOps Trends Survey.

One of the key roles for implementing a DevOps restructuring is a DevOps engineer. This person must possess a wide ranging skill set that spans both development and operations, but also the interpersonal skills to bridge divides between siloed teams. 

What Is a DevOps Engineer?

A DevOps engineer is an IT generalist who should have a wide-ranging knowledge of both development and operations, including coding, infrastructure management, system administration, and DevOps toolchains. DevOps engineers should also possess interpersonal skills since they work across company silos to create a more collaborative environment. 

DevOps engineers need to have a strong understanding of common system architecture, provisioning, and administration, but must also have experience with the traditional developer toolset and practices such as using source control, giving and receiving code reviews, writing unit tests, and familiarity with agile principles.


Roles and Responsibilities

The role of a DevOps engineer will vary from one organization to another, but invariably entails some combination of release engineering, infrastructure provisioning and management, system administration, security, and DevOps advocacy. 

Release engineering includes the work required to build and deploy application code. The exact tools and processes vary widely depending on many variables, such as what language the code is written in, how much of the pipeline has been automated, and whether the production infrastructure is on-premise or in the cloud. Release engineering might entail selecting, provisioning, and maintaining CI/CD tooling or writing and maintaining bespoke build/deploy scripts.

Infrastructure provisioning and system administration include deploying and maintaining the servers, storage, and networking resources required to host applications. For organizations with on-premise resources this might include managing physical servers, storage devices, switches, and virtualization software in a data center. For a hybrid or entirely cloud-based organization this will usually include provisioning and managing virtual instances of the same components. 

DevOps advocacy is often undervalued or overlooked entirely, but is arguably the most important role of a DevOps engineer. The shift to a DevOps culture can be disruptive and confusing to the engineering team members. As the DevOps subject matter expert, it falls to the DevOps engineer to help evangelize and educate the DevOps way across the organization.


DevOps Engineer Skills

The technical skills required of a DevOps engineer will vary depending on the team structure, technologies, and toolsets in use. Yet strong communication and collaboration skills are essential. It’s also important for a DevOps engineer to have a solid understanding of all the components of a delivery pipeline, and to know the pros and cons of available tools and services.

Communication and Collaboration

It’s important for a DevOps engineer to communicate and collaborate effectively with teams, managers, and customers. These so-called “soft-skills” are often overlooked and undervalued, but the success of DevOps relies heavily on the quality and quantity of feedback across the entire value stream.

System Administration

A DevOps engineer will have experience with system administration, such as provisioning and managing servers, deploying databases, security monitoring, system patching, and managing internal and external network connectivity.

Experience With DevOps Tools

Since using the right tools are essential to DevOps practices, the DevOps engineer must understand, and be able to use, a variety of tools. These tools span the DevOps lifecycle from infrastructure and building, to monitoring and operating a product or service.

Configuration Management

DevOps engineers will often be expected to have experience with one or more configuration management tools such as Chef, Puppet, or Ansible. Many organizations have adopted these or similar tools to automate system administration tasks such as deploying new systems or applying security patches to systems already running.

Containers and Container Orchestration

With containerization, a technology popularized by Docker, the code for the application and its runtime environment are bundled in the same image. This makes traditional configuration management tools less necessary. At the same time managing containers brings its own challenges, and experience with the class of tools known as “container orchestrators” (e.g. Docker Swarm or Kubernetes) becomes a necessary skill for the DevOps engineer.

Continuous integration and Continuous Deployment

Continuous integration and continuous Delivery (CI/CD) are core practices of a DevOps approach to software development, and enabled by a host of available tools. The most fundamental function of any CI/CD tool or set of tools is to automate the process of building, testing, and deploying software.

DevOps engineers will usually need experience with configuring and deploying one or more CI/CD tools, and will usually need to work closely with the rest of the development organization to ensure that these tools are used effectively.

System Architecture and Provisioning

A DevOps engineer should have the ability to design, provision, and manage computer ecosystems, whether on-premise or in the cloud. It’s important to understand Infrastructure as Code (IaC), an IT management process that applies best practices from DevOps software development to the management of cloud infrastructure resources. A DevOps engineer should understand how to model system infrastructure in the cloud with Amazon Web Services (AWS), AWS CloudFormation, or Terraform.

Familiarity With Coding and Scripting

Many traditional system administrators have experience writing shell scripts to automate repetitive tasks. A DevOps engineer should go beyond writing automation scripts and understand advanced software development practices and how to implement agile development practices such as code reviews and using source control.

Collaborative Management Skills

Cross-team collaboration is a fundamental component of an effective DevOps strategy, regardless of the specific organizational structure. Whether the engineering team is a group divided only by roles or there are separate teams for feature development, quality assurance, DevOps, etc., the DevOps engineer should work across the organization as coach and co-worker, with many different people. 

For example, one of the most valuable returns on a DevOps investment is the ability to deliver faster feedback to developers. A DevOps engineer will often have to work with QA (whether they be manual testers or developers who write test automation) to improve the speed, efficacy, and output of testing methodologies.

At the same time, developers may need support from DevOps engineers when working to improve the process of building and deploying application code.


The DevOps Team: Other Roles and Responsibilities

DevOps Evangelist

This is a DevOps expert who promotes and develops DevOps practices across the organization. The DevOps evangelist will typically have a strong technical background, but the focus of the role is on interpersonal communication and process improvement.

Release Manager/Change Advisory Board

Organizations that have not transitioned to DevOps or are still in the early stages of doing so might have a separate group called the change advisory board (CAB) or an individual release manager role. 

The purpose of such roles is to ensure that any new application software being released into production meets quality and security standards and has the appropriate management approvals. 

These roles were particularly important when software releases were more risky. However, these roles are less important (if not obsolete) with the use of strategies like automated testing and dark deployments.

Automation Expert

Every DevOps engineer is expected to have expertise in automation. Yet it is not unheard of for an organization to have a separate automation expert or automation engineer role. This may be someone whose focus is to manage the CI/CD tooling or develop and maintain automated test suites.

Software Developer

In most cases the title software developer is given to individuals who write either front-end or backend application code, or both. These are the people who have been historically described as “computer programmers” before the rise of agile thinking.

Quality Assurance

The quality assurance (QA) team is responsible for finding failures in software. QA engineers historically focused on manually testing new application code to ensure that it doesn’t immediately blow up (“smoke testing”), break existing functionality (“regression testing”), or conflict with any other new features (“integration testing”). 

Organizations are increasingly supplementing or replacing manual testers with the software development engineer in test (SDET) role. The SDET focuses on testing new application code before its release into production. However, rather than testing software manually they focus on writing test automation code.

Security Engineer

Organizations that haven’t embraced the notion of fully integrating security and compliance concerns into their planning and development processes will often have an individual or team that is responsible for security. This often proves to be an anti-pattern because it makes security an afterthought, and it is much harder to secure software after it has been designed, built, and deployed than it is to design with security in mind.


Going Beyond a Single Role

DevOps is a practice that requires a cultural change, new management principles, and the use of technology tools. A DevOps engineer lies at the heart of a DevOps transformation and must have a broad set of skills to facilitate this change. Yet most organizations will need more than just one DevOps engineer, but a mix of generalists and specialists to work closely with each other to implement DevOps and improve the software development lifecycle. A DevOps engineer helps to break down silos to facilitate collaboration among different experts and across toolchains to realize the full promise of DevOps.

DevOps Engineer Software development Continuous Integration/Deployment

Published at DZone with permission of Tom Hall. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • How to Become a DevOps Engineer
  • From Chaos to Collaboration: Transforming DevOps With RACI Matrices
  • The Rise of the Platform Engineer: How to Deal With the Increasing Complexity of Software
  • Unleashing the Power of Site Reliability Engineers

Partner Resources

×

Comments
Oops! Something Went Wrong

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends:

Likes
There are no likes...yet! 👀
Be the first to like this post!
It looks like you're not logged in.
Sign in to see who liked this post!