The Most Important Elements of DevOps
The Most Important Elements of DevOps
People, process, and technology are three of the most important elements of DevOps. Which other elements would you name?
Join the DZone community and get the full member experience.Join For Free
The need for DevOps innovation has never been greater. Get the results from over 100 business value assessments in this whitepaper, Digital Darwinism: Driving Digital Transformation, to see the positive impact of DevOps first hand.
To gather insights on the state of the DevOps movement in 2017, we talked to 16 executives from 14 companies who are implementing DevOps in their own organization and/or providing DevOps solutions to other organizations.
Here's what they told us when we asked, "What do you see as the most important parts of DevOps?"
People are the most important since they must change the culture. We are all about providing the tools to facilitate the transition, communication, and collaboration. I expect the transition to take five to 10 more years.
The biggest challenge is the change in the mindset.. We just moved from DevOps to NoOps with AWS, automating away the traditional operations team and building a self-monitoring and self-correcting system. We must change how to develop and deliver software by building the next-generation APM product for the next generation of software.
We’re an Atlassian shop using JIRA, Confluence, and HipChat, as well as Jenkins open source to build automatically. Create structure, get buy-in, and enforce implementation. Define the process and create controls that cannot be violated. The deployment process treats all developers the same with regards to creating the optimal deployment process. Assign the team lead for each team responsible for managing the deployment process.
There are three legs to the stool: people, process, and technology. People involves culture and change. Process involves the adoption of the process that makes the most sense for your people and your business. Technology is automating everything you can to make it “hands-free.”
Begin with cross-team collaboration by tearing down walls between all departments – developers, operations, support, sales, and marketing. Everyone gets a say into what is being built at the beginning of the process. Focus on delivering business value and fulfilling the end user's need. As you go from 50 to 100 to 200 people, optimize the use of third-party technology. Do not try to build everything yourself. We were using our own log tools which were great but required between one and two of our developers to maintain. We brought in SUMO Logic and saved the opportunity costs of two developers. Automate everything to be consistent across the board. Development, staging, and production need a consistent platform upon which everyone is working.
Development understands what operations is like, so they make choices that help rather than hinder, and vice versa. Adopt continuous or at least rapid or pushbutton deployment so that fixes and features can be rolled out more quickly.
Culture change that needs to happen, meaning IT developers and operations collaborating with the help of tools and physical environments. Pay attention to titles and organizational strategies help to change the culture.
Continuous delivery is not feasible for our customers. Getting a new release every three months is too frequent for them. It’s good for new customers. We’re getting current customers to begin with a staging site. Implementing DevOps at our shop has been a great learning experience. Tests were 40% automated. We did a sprint for test automation that got us to 60%, and the methodology was through the UI, but it was flawed. We moved to a different test approach with internal code perspective and got to 80% of the bugs, but they did not decline. We learned we weren’t doing a lot of end-to-end integration tests. Adding those tests reduced the escape defects. The challenge has been developing so we get customer feedback quickly. We weren’t showing the build to anyone externally. We went from a cycle of two-week sprints to four-week internal releases. The sprint is not for the developers; it’s for the customers to see if what we're developing works for them. The field uses the product in a sandbox on AWS with a bigger emphasis on more people looking at the builds from a customer perspective.
DevOps came naturally from engineering and operations working together. We architect from the beginning with deployment and integration in mind and with everything able to be automated and reproduced. We focus on building features rather than where the application is running.
People, process, and culture are key. In enterprises, there is a lot of change in culture required with people and technologies. We focus on tooling and supporting iterations. We build automation into all our tools and integrate with Jenkins. The feedback loop is smaller, we can release faster, and we increase quality and reuse assets across development, testing, and monitoring. Develop and leverage with what you have already created. The tooling emphasis builds in quality and results in better software thus spending less time fixing bugs later. Find flaws before release, especially for mobile apps. You see the results in your customer satisfaction scores and higher quality product.
The trend is to get more customer-facing apps out the door more quickly. Apps are becoming the interface for customers rather than people; that’s why it’s important to drive continuous delivery.
The challenges of application security and how it can slow down the DevOps process. There is a need for Dev/Sec/Ops or “rugged DevOps.” All building and testing processes need to be fully automated. DevOps teams automate processes that may not have been automated in the past like QA and security analysis.
We are fundamentally improving the quality of life for everyone involved in development, operations, security, testing, sales, and end-user experience (UX).
Focus on productivity, collaboration, and automation. Continuously work to automate infrastructure. You need an overview of the process and collaboration.
What do you consider to be the most important elements of DevOps?
By the way, here's who we spoke to!
Michael Schmidt, Senior Director, Automic
Amit Ashbel, Director of Product Marketing and Cyber Security Evangelist, Checkmarx
Sacha Labourey, CEO and Founder, CloudBees
Samer Fallouh, V.P. Engineering, Dialexa
Andrew Turner, Senior Architect, Dialexa
Andreas Grabner, Technology Strategist, Dynatrace
Anders Wallgren, CTO, Electric Cloud
Job von der Voort, V.P. of Product, GitLab
Charles Kendrick, CTO, Isomorphic Software
Craig Lurey, CTO and Co-Founder, Keeper Security
Josh Atwell, Developer Advocate, NetApp SolidFire
Joan Wrabetz, CTO, Quali
Joe Alfaro, V.P. of Engineering, Sauce Labs
Nikhil Kaul, Product Marketing Manager Testing, SmartBear Software
Harsh Upreti, Product Marketing Manager API, SmartBear Software
Andi Mann, Chief Technology Advocate, Splunk
Opinions expressed by DZone contributors are their own.