DevOps a software delivery lifecycle

DevOps is the union of people, process, and products to enable continuous delivery of value to end users.

The goal for Development is to deliver more features faster, and the goal of Operations is to achieve better system stability. DevOps aligns these disciplines by using a framework of best practices proven to increase speed to market while improving system stability.

The 2019 State of DevOps Report is based on research that provides the most comprehensive view of the growing DevOps industry, and according to this report, elite performers:

  • Deploy code 208 times more frequently than low performers
  • Have 106 times faster change lead time from commit to deploy than low performers
  • Change failure rates that are seven times better than low performers
  • Restore service 2,604 times faster than low performers

Cultural resistance and low levels of process discipline will create significant failure rates for DevOps initiatives.

Gartner

Why do DevOps initiatives fail?

Gartner research shows that through 2023, 90% of DevOps initiatives will fail because of the limitations of management approaches used by leadership. Creative people need mastery, autonomy, and purpose.

When people asked what is the most important part of our success – is it vision, strategy, or execution? I said they’re all important, but in the end, it was our purpose and our growth mindset.

Satya Nadella, CEO of Microsoft

What could be the impact with the current manual deployment in your organization?

This is a real story. In 2012, a software deployment error resulted in a $460M loss for Knight Capital Group, the largest trader in U.S. equities at the time.

The losses began when the market opened. There were no bugs in the code – the problem was caused by an error that was made during a manual deployment to only one of their eight production servers.

When they tried to fix it, all eight servers ended up misconfigured – so they lost even more money. Because all deployment was manual, they had no way to automatically roll the changes back.

After trying to fix the problem for 45 minutes, they finally shut down the entire system. In that time, they had lost $460M.

Use Continuous Delivery to release faster, with smaller costs and risks.

Continuous Delivery is one of the eight capabilities in the DevOps taxonomy. It is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time and released manually.

The purpose of Continuous Delivery is to build, test, and release software with greater speed and frequency, and reduce the cost, time, and risk of delivering changes by allowing for more incremental updates to applications in production.

Continuous Delivery happens when:

  • Software is deployable throughout its lifecycle
  • Continuous Integration as well as extensive automation are available through all possible parts of the delivery process, typically using a deployment pipeline
  • It’s possible to perform push-button deployments of any version of the software to any environment on demand

By automating the process and enabling the ability to release to production at any time, the benefits of Continuous Delivery are significant and numerous:

  • Less waste
  • Faster ROI
  • Lower risk
  • Higher quality
  • Early feedback
  • Better planning
  • Faster collaboration
  • Everyone is involved
  • Fewer production issues
  • Ability to shift left on security
  • Adapt and react a lot more quickly
  • Much more predictable releases
  • Deploy during any business hours
  • Faster response to market changes
  • Change delivered without significant delay
  • Anyone in the team can initiate deployments
  • Fast, repeatable, and configurable deployments

In addition, according to a global study by CA Technologies, organizations realize up to 20% improvement in time to market and increased revenue.

Cloud adoption has radically transformed the way teams build, deploy, and use applications. This combined with the adoption of DevOps has now given teams a greater opportunity to improve practices and provide a higher quality service to their customers.

Coming up more of Azure DevOps.