What Do Developers Need to Know to Excel at DevOps?
To truly excel at DevOps, be mindful of collaborating with all other team members, own your new responsibilities, and learn about operations.
Join the DZone community and get the full member experience.Join For Free
To gather insights on the state of DevOps, we spoke with 22 executives at 19 companies implementing DevOps for themselves and helping clients to implement a DevOps methodology. We asked, "What do developers need to keep in mind with regards to DevOps/CI/CD?" Here's what they told us:
- Understand you cannot just throw something over the fence to the operations team because you are now the operations team. Appreciate what operations is doing. Sit down with operations to learn and understand. Realize that cultural riffs need to be addressed – be part of the solution.
- Think about how it will test, deploy, and redeploy. Start writing code as early as possible. Don’t hack something together. Make everything repeatable from the get-go – deployment, development, and testing are all aligned. If not, you will have to reverse engineer how what you just built runs.
- Every change has the ability to break production, so the steps and tools that we develop and use to review and test are every bit as important as the production code itself. This is something that our engineers (and managers!) understand so that for every change we must factor in the effort for testing and for changes to our development, packaging, and deployment tooling. Engineers working on our systems know that they could be required to work on any part of our system. This makes our people mindful of side effects, so our engineers are inclined to consult early and often with peers about changes and put a lot of thought into effective testing.
- Have your data work for you. Leverage metadata. Use metadata to identify what’s critical and needed at any particular time rather than keeping access to the entire footprint. Tagging data becomes important. Know where your data needs to be.
- Start with source control and create versions of your files. All tools connect to source control. Then configuration management – Chef and Ansible. Then containers – Docker and Kubernetes.
- Get much faster and more detailed feedback about issues in the software so they can be fixed quickly.
- As with the Seven Habits of Highly Successful People, begin with the end in mind. Know what you want the end state of your application to look like and have a DevOps strategy that enables you to deliver that end state to deliver value to your customer and your organization.
Here’s who we talked to:
- Gil Sever, CEO, Applitools
- Mike Tria, Head of Infrastructure, Atlassian
- John Trembley, CMO and Scott Harvey, V.P. Engineering, Atmosera
- Aruna Ravichandran, VP DevOps Products and Solutions Marketing, CA Technologies
- Flint Brenton, CEO, CollabNet
- Tom Hearn, Data Center Architect, Datalink
- Shehan Akmeemana, CTO, Data Dynamics
- Robert Reeves, Co-founder and CTO, Datical
- Anders Wallgren, CTO, Electric Cloud
- Job van der Voort, Vice President of Product, GitLab
- Ben Slater, Chief Product Officer, Instaclustr
- Ilya Pupko, Chief Architect, Jitterbit
- Tom Joyce, CEO, Pensa
- Stephanos Bacon, Chief of Product, Portfolio Strategy for Application Platforms, Red Hat
- Michael Mazyar, CTO, Samanage
- Eric Wahl, IT Director and John Joseph, Vice President of Marketing, Scribe Software
- Manish Gupta, CEO and Founder, ShiftLeft
- Martin Loewinger, Director of SaaS Operations and Jonathan Parrilla, DevOps Engineer, SmartBear
- Chris McFadden, V.P. Engineering and Operations, SparkPost
Opinions expressed by DZone contributors are their own.