Why DevOps Doesn’t Work for Enterprise Applications
Why DevOps Doesn’t Work for Enterprise Applications
The BizDevOps concept fills in the gaps between managing enterprise and custom applications, like larger environments and lower risk tolerance.
Join the DZone community and get the full member experience.Join For Free
DevOps involves integrating development, testing, deployment and release cycles into a collaborative process. Learn more about the 4 steps to an effective DevSecOps infrastructure.
The term DevOps is well understood in the context of typical agile software development lifecycles. Organizations are combining containerization, release automation, and continuous integration platforms to build continuous delivery pipelines that deliver new functionality faster with better quality and less risk. The tools, methodologies, and organizational changes associated with the development and deployment of individual applications is well documented. But what if you are a large company running dozens, even hundreds of applications? What if you leverage an increasing number of cloud-based packaged applications, where you can’t control when and how these applications change?
Typical Enterprise Application Environment
If you’re a large enterprise with a vast application landscape, there are different variables that you need to look at in terms of software development. You may have stringent compliance requirements and extremely low tolerance to risk. You will need to know how to manage the needs of a complex set of stakeholders, including end users, business analysts, project and program manager, enterprise architects, and more. How will you ensure that you understand your critical business processes and have confidence that they will still work when underlying applications change?
Software development for a single application differs in scope and focus from DevOps for the enterprise application landscape. In the first case, your goal is to ensure that an application works as expected. In the second case, your goal is to ensure critical business processes work end-to-end across multiple applications. The effort shifts from development to the business users that are responsible for the end to end process. DevOps alone does not effectively account for the role the business plays in managing end to end business processes that traverse packaged and custom applications. This is where a new approach is required – BizDevOps.
Four Core Reasons DevOps for Packaged Enterprise Applications Is Different
BizDevOps addresses the four areas that make managing packaged applications different than managing custom applications:
1. Massive Environments
A typical enterprise application landscape can have dozens, even hundreds of applications, deployed on-premise, in the cloud, or in hybrid configurations. Each application has its own unique change cycle, and potential to disrupt critical business processes. That’s why it’s so important to understand end-to-end business processes and their variations across applications - and to continuously test these scenarios in very short time intervals.
2. Operations Focused
DevOps processes and solutions are built to support the development and deployment of custom-built applications. Tools are designed primarily for developers and supporting release teams. In contrast, BizDevOps focuses on ensuring the business continues to function efficiently across multiple applications. It’s critical that a change in one application does not adversely impact other connected applications that together serve a business purpose. This requires more of an operational approach to day-to-day change management. The objective of this approach is to avoid business disruption while rapidly deploying updates into production.
3. Multiple Stakeholders
In most enterprise environments, the organization responsible for managing and deploying new functionality is dispersed across various business and IT teams. Communication among stakeholders on how and when to deploy new functionality is required, since many team members may not be as technical as a typical developer or QA engineer. Testing requires specialized domain knowledge and often can only be performed by the technical side. BizDevOps demands close collaboration between technical IT and non-technical business audiences.
4. Low Risk Tolerance
Enterprise applications are also running mission-critical processes that are too important to fail. An enterprise application failure can cost millions. Changes to strategic systems typically take longer and are more complex, the involvement of the business is critical to the success of the project. Failure to document business processes accurately and test thoroughly can have devastating effects. Many organizations have learned this the hard way. For example, Nike tried to implement a $400 million upgrade/consolidation to their ERP system that resulted in $100 million in lost sales, a 20 percent stock dip, and a number of class-action lawsuits.
Continuous quality for enterprise applications can only be achieved by taking a BizDevOps approach. Business-driven automation is the key to executing this approach efficiently and effectively. Most large enterprises have fifty or more enterprise apps for every billion dollars in sales, so if an IT organization aims to achieve continuous deployment, then automation becomes a must-have.
Published at DZone with permission of Shoeb Javed , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.