Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Need to Scale DevOps?

DZone 's Guide to

Need to Scale DevOps?

Automation, culture, collaboration, and tools are just four of the litany of things necessary for DevOps to scale in the enterprise.

· DevOps Zone ·
Free Resource

To gather insights on the current and future state of how DevOps is scaling in the enterprise, we asked IT executives from 32 different companies to share their thoughts. We asked them, "What are the most important elements of DevOps?" Here's what they told us:

Automation

  • The most important elements of DevOps are automation, cloud, and culture, all of which leads to speed. Speed of application changes delivery to meet rapidly changing business, customer, and user needs. We wanted our developers to be able to focus on writing code and rapidly releasing application changes, not on other IT services like servers, storage, networks, and more. By providing automation for frequent small production application changes, we help reduce the risk associated with large-scale production deployments, while still adhering to DevOps principles like moving fast and making small changes quickly. With traditional IT, there are change control processes that often involve large changes, such as requiring applications to be taken offline. All of this takes time and introduces potential problems for something going wrong. We remove these barriers by focusing on speed to power nimble DevOps. 

  • More automation. Building the right framework, process, and automation for CI/CD. CD is where you get the value for the end customer delivering features faster to the end market.  
  • Automation to accelerate processes and reduce the opportunity for human error. Cross-team buy-in and collaboration. 
  • The most important elements of DevOps are all about risk mitigation, which has gone from “nice to have” to mission-critical. Risk, time and cost are what businesses are worried about. We’re all human, we all make mistakes, and automation can help avoid many mistakes. Automation also gets rid of the repetitive nature of daily tasks for IT infrastructure. Part of the challenge that DevOps is solving is what if I manually deploy and drop some critical data? Automation helps with that and mitigates a lot of the risk, which increases efficiency and productivity. 
  • DevOps is the understanding that with automation in place, operations can be done much more quickly and more importantly, more predictably without human error. It's all about standardization and automation. With the advent of containerization and orchestration technologies such as Kubernetes and product offerings such as Hashicorp, the world of DevOps has never been more exciting. 
  • Automation. Infrastructure-as-Code philosophy. Better developer productivity. 
  • Self-service through automation for the group (with overall ownership) is key. As an example, groups responsible for specific applications and/or services should have the ability to not only launch the service through an automated method but also have the ability to set up monitoring and alerting in a self-service manner.
  • Automation and reliability. 
  • The top four elements that are critical to the success of a DevOps approach: 1) Establish baselines: understand what the typical performance metrics are for your software and infrastructure and build SLOs around them. 2) Eliminate toil: automate as much as possible so SRE (Site Reliability Engineering) teams can be less reactive and spend more of their time focusing on strategic work. 3) Create well-defined processes: establish clear, specific processes for everything, especially for incidents. This will help relieve confusion and help recovery run smoother while teams are in the high stress of an outage. 4) Continuous optimization: figure out what works, iterate, and throw out things that used to work but have outlived their use. This cycle will continue, again and again, so teams need to be ready to embrace it.

Culture

  • Culture, lean, automation, measurement, and sharing. It’s about creating an environment for innovation. Software and business innovation are becoming one and the same. With the drive towards digital transformation, software and DevOps have become the incredible drivers. Teams are able to deliver customer value at the speed of business. 
  • Culture and collaboration between teams. Then the tools. Focus on cultural transformation. Understand where different teams stand, what different stakeholders think about DevOps. Start by getting the business team and the sales team on board. DevOps is about adding business value. Help engineering achieve what the business executives expect to achieve. Once we start implementation, we layout a roadmap with the milestones and when the business value will be achieved. 
  • Ownership and iteration.” Without question, the most important element for us is ownership and, more importantly, ownership in the sense of: “You can only own what you can fix”. This is quite different from ownership, for instance, in Scrum. Where Scrum is more business-oriented, generally represented by the product owner, the DevOps approach can be represented by a service owner. But maybe it is worth expanding on the use of the term service, as one of the important parts of DevOps is to not isolate infrastructure and application into separate responsibilities, but instead to view them as a unified service provided to customers. One does not work without the other. It is important to acknowledge the fact that services are like living organisms, changing and need to be developed, rather than just maintained. Iteratively improve them to satisfy customer expectations. 
  • A lot of people have started on DevOps initiatives and failed. They were not delivering significant business benefits. There were no improvements in the delivery of items innovative to them. DevOps were optimized for IT engineering outcomes rather than business outcomes. The "shiny object syndrome" applies tools to problems versus a shared cultural mindset done at deployment. You need a culture of continuous delivery across the organization. A business delivery pipeline that delivers outcomes. Make sure quality flows through before bringing in velocity. Apply more systems thinking. 
  • DevOps is a combination of culture, process, and tools that enables organizations to deliver applications continuouslyfrequently, and at high velocity. It also seeks to increase value generation by shortening the feedback loop between the business and its customers. 
  • The most important, but difficult element of DevOps is culture. DevOps can only thrive in a system that encourages individual ownership and initiative, cross-functional collaboration, and small-team dynamics. Top-down decision making and siloed decision-making will kill DevOps faster than anything else. There are lots of articles, books, and tools for doing DevOps – those are useless if your organization is unable to make the structural and cultural changes that are core to DevOps. 
  • To be successful with DevOps you must foster the right Culture and Automate the process. With a culture of collaboration, learning, and continuous improvement, based alignment on shared objectives such as “We will deliver quality software, reliably, repeatedly, and rapidly” the challenges with automating disparate tools, connecting processes become much easier to overcome.  While DevOps is fundamentally based on cultural practices, to effectively implement DevOps requires that you automate your software development and delivery pipeline. Not just your deployments.

Collaboration

  • Everyone is trying to deliver code faster. It’s not a technology. DevOps more has to change – a collaboration between teams, feedback loops, multiple tools incorporated. Organizations need to change many ways to make DevOps successful. The most important is around continuous improvement with feedback loops. Incorporating more things like testing and security earlier in the process. 
  • Everyone wants to get their product out faster these days. In theory, most teams agree on the value of increased efficiency. However, more often than not, organizations tend to put the success of DevOps on a single team, and thus, undermine the very notion of a true DevOps culture. Getting alignment within the entire organization is the single most important element of creating a successful DevOps culture. Alignment with team leader across all major departments is initially more critical to developing a robust DevOps environment than a focus on the technical underpinnings. Without a team that buys into the importance of a culture where collaboration is paramount, there is little point to discuss CI/CD tools. 
  • Have a clear idea of what your goals are. Do you want to go faster, deliver what customers want, higher reliability of deployment? DevOps is a culture thing. If you go into a cross-function cultural conversation with different goals, it will not work. IT wants always wants faster releases, but is that what the business wants? RAC in England, like AAA in the U.S., was constantly updating their app. But customers don’t want to update the app to use the service once every six months. Define your objectives and get the teams together on how the process will flow. Don’t get caught up on the technology. Get an understanding of the end-to-end process across the cross-functional teams. Make sure you are building a culture of collaboration across all functions. 
  • There are three pillars to success with DevOps: Collaboration and trust, automation, and measurement, and continuous improvement. These three concepts are interconnected. As organizations improve in one area, all three pillars see improvement, creating a virtuous cycle.

Tools

  • It’s important to have the right tools and infrastructure in place to create an end-to-end automated pipeline to support DevOps. The toolchain ranges from source code management, continuous build/test/integration/deployment to configuration management and monitoring. That said, the most important is proper training and leadership support for DevOps. Putting the right tools in place doesn’t mean an organization will be successful at adopting DevOps. It requires a different mindset and un-learning processes and best practices that have been developed over many years. Some aspects of DevOps are counterintuitive, for example, that deploying more frequently to production usually reduces the risk of downtime. So it’s important to have buy-in from all involved parties across an organization for DevOps to be successful.

Other

  • Technology becomes more important over time. Get more users onboard and follow through with a particular methodology. Better processes help you get the most out of your hardware and software making things easier to deploy and highly available. Get the best out of the technology that’s available and then move to the next generation.
  • Flow, Feedback, Continuous Experimentation (coupled with the use of small autonomous/self-contained teams to reduce handoffs and waiting).
  • DevOps is much more about people than technology. Set up the right goals, give people time to build context and skills. Organizations are transitioning from people without the right set of skills. Investing in people is more important than buying the right tools.
  • Understand that if you ignore any element of DevOps it builds debt, which has to be repaid. All elements of DevOps are equally important, and the practice of DevOps teaches us that its required elements extend beyond the foundational CI/CD, IaC, microservices, alerting, and collaboration tooling required. When scaling DevOps in any organization, competencies including courage and servant leadership with a goal to continually improve are what really count.
  • We've seen the evolution from pre-DevOps to DevOps. Given what we experienced we followed site reliability engineering (SRE) best practices laid out in 2018 — how Google tackled and refined methodologies. There are more specific definitions of SRE within DevOps. SRE is an instance of DevOps. SRE is Google’s interpretation of optimal DevOps for us. We help companies see how SRE that can work if you’re not Google, LinkedIn, or Netflix.
  • The most important elements of DevOps are Continuous Integration (CI), Continuous Deployment (CD), security, and monitoring.
  • People get scared of DevOps because they don’t understand that it’s not about going super-fast without thinking about stuff. You are deploying so frequently you’re able to see what’s working, what isn’t, and fixing it. What's most important is really understanding the work, everything that has to be done to meet the business requirements, to write good code, building everything you need for implementation, testing, breaking down the process so it can be built in a simple and boring way.
  • One of the most important elements of DevOps is to remember that it’s not a team, it’s a methodology. It’s also important to understand there are many successful patterns for implementing DevOps and at the same time, just as many anti-patterns that could cause more harm than good.
  • DevOps methodology has many key elements which together make the entire process of SDLC much more efficient. Continuous Integration, Continuous Delivery, Monitoring, Reliability, Scaling and Security are some of them. These all need to be streamlined into a workflow or pipeline in a way that suits the fast nature of DevOps.
  • I believe security is the most important element of DevOps. The risk and cost associated with breaches and exploits are increasing and astronomical. If you don’t bake security into DevOps it isn’t a question of if you will be breached, it is simply of a question of how soon and how often.

Here’s who shared their insights:

Topics:
devops ,devops adoption ,scaling ,automation ,collaboration ,devops culture

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}