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
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
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
What's in store for DevOps in 2023? Hear from the experts in our "DZone 2023 Preview: DevOps Edition" on Fri, Jan 27!
Save your seat
  1. DZone
  2. Testing, Deployment, and Maintenance
  3. DevOps and CI/CD
  4. How to Be a Great DevOps Engineer

How to Be a Great DevOps Engineer

Companies have realized the value of adopting DevOps in accelerating releases. Whoever innovates fastest wins—and frequent software updates are key to innovation.

Manisha Sahasrabudhe user avatar by
Manisha Sahasrabudhe
·
Feb. 21, 17 · Opinion
Like (11)
Save
Tweet
Share
11.19K Views

Join the DZone community and get the full member experience.

Join For Free

The term "DevOps" was coined as a combination of developers and operations. According to Wikipedia:

DevOps is a term used to refer to a set of practices that emphasize the collaboration and communication of both software developers and information technology (IT) professionals while automating the process of software delivery and infrastructure changes. It aims at establishing a culture and environment where building, testing, and releasing software can happen rapidly, frequently, and more reliably.

Every company today, regardless of industry, is under pressure to be great at developing and delivering software. This is because software is disrupting every type of business, from taxi services to food delivery to retail. Unless you transform your business and go through a digital transformation, your business is likely to die in the next few years.

Once you start this digital transformation, the next challenge is to innovate fast enough to survive and maybe win. This is where DevOps comes in. Most companies have figured out how to accelerate software development through Agile principles. However, the bottleneck is now software delivery. What is the point of producing code at a faster rate if you can't ship it out as quickly?

DevOps sets out to solve this problem by combining cultural change with end-to-end software delivery automation. The goal of DevOps is to ensure frequent, predictable, error-free software releases that help you innovate faster.

What Is a DevOps Engineer?

A major part of adopting DevOps is to create a better working relationship between development and operations teams. Some suggestions to do this include seating the teams together, involving them in each other's processes and workflows, and even creating one cross-functional team that does everything. In all these methods, Dev is still Dev and Ops is still Ops. 

The term DevOps Engineer tries to blur this divide between Dev and Ops altogether and suggests that the best approach is to hire engineers who can be excellent coders as well as handle all the Ops functions. In short, a DevOps engineer can be a developer who can think with an Operations mindset and has the following skillset:

  • Familiarity and experience with a variety of Ops and Automation tools.
  • Great at writing scripts.
  • Comfortable with dealing with frequent testing and incremental releases.
  • Understanding of Ops challenges and how they can be addressed during design and development.
  • Soft skills for better collaboration across the team.

According to Amazon CTO Werner Vogels:

Giving developers operational responsibilities has greatly enhanced the quality of the services, both from a customer and a technology point of view. The traditional model is that you take your software to the wall that separates development and operations, and throw it over and then forget about it. Not at Amazon. You build it, you run it. This brings developers into contact with the day-to-day operation of their software. It also brings them into day-to-day contact with the customer. This customer feedback loop is essential for improving the quality of the service.

It is easier than ever before for a developer to move to a DevOps role. Software delivery automation is getting better every day and DevOps platforms are making it easy to implement automation with minimal scripting.

Can an Ops engineer move to a DevOps role? Definitely, but it can be a little more challenging since they will need to learn serious coding skills before making that transformation. However, with the upsurge in a number of coding boot camps, it is probably an easier transition to make than it was a few years ago. 

A great way of gaining DevOps credibility is to become an AWS Certified DevOps engineer.

How Can You Be Great at It?

The key to being a great DevOps Engineer is to focus on the following.

Zero-Touch Automation 

The closer you can get to this idea of automating everything such as infrastructure provisioning, CI/CD pipelines, release management, security patching, and even customer feedback, the faster your organization can innovate. You'll eliminate messy manual handoffs and track down and fix bugs as soon as they're introduced. You'll also start doing incremental releases and getting fast feedback from customers, which in turn helps you improve your product and respond to market demand very quickly. This well-oiled machine is the ultimate nirvana of DevOps. 

DevOps platforms like Shippable and Xebia Labs help with achieving complete automation for your software delivery pipelines.

Org-Wide Ops Mindset

There are many common Ops pitfalls that developers need to consider while designing software. Reminding developers of these during design and development will go a long way in avoiding these altogether rather than running into issues and then fixing them.  

Try to standardize this process by creating a checklist that is part of a template for design reviews. Here is a checklist from Microsoft that takes into consideration Deployment and Infrastructure requirements.

End-to-End Collaboration

I am a firm believer in the 'Teams that play together work well together'. Encourage the team to get to know each other through team building events, cross team hackathons, and gamification. We found that even a simple thing like keeping all communication in public Slack channels open to everyone across teams helps with creating a better understanding and empathy for cross team problems.     

How Do You Measure DevOps Success?

Ultimately, all your efforts need to translate to the business goal of faster innovation. I'll write a broader post on this topic, but some key indicators that your DevOps strategy is succeeding are the following.

Deployment Frequency

How often do you deploy to production? With zero-touch automation, you can do continuous deployment with every change going to production. It's a process to get there, so starting with a goal of at least once a day is reasonable. 

Lead Time for Code Changes

How much time does it take for a code change to be deployed to production? This measures efficiency of your automation pipelines. The idea here is less than 30 minutes, but you need to determine where you need to be.

Rollback Rate

How often do you need to rollback deployments due to errors? This means your automation need to be improved since the entire goal of DevOps is to create predictable and error-free releases. 

If your rollback rate is high, you might want to track is how fast you can rollback after a problematic deployment. This will ensure that you can quickly recover from a bad deployment without much customer impact.

Great DevOps engineers are hard to find, and it is still an evolving field. Many companies that advertise for these roles don't really have a clear understanding themselves of what it entails. So, if you're hired as a DevOps engineer, it might be up to you to drive these changes and ensure DevOps success.

DevOps Engineer Software development agile Continuous Integration/Deployment

Published at DZone with permission of Manisha Sahasrabudhe, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • What Java Version Are You Running? Let’s Take a Look Under the Hood of the JDK!
  • Distributed SQL: An Alternative to Database Sharding
  • Using QuestDB to Collect Infrastructure Metrics
  • PostgreSQL: Bulk Loading Data With Node.js and Sequelize

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

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

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: