DevOps solutions
BMC DevOps solutions use best-in-class practices to deploy applications faster and to significantly reduce failures. DevOps software and solutions offer end-to-end planning, coordination, and execution of releases, and help you to build collaborative workflows between development and operations to accelerate release cycles and boost return on investment (ROI).
This topic consists of the following sections:
- DevOps overview
- DevOps gap
- Benefits of DevOps solutions
- Common problems confronting organizations
- BMC Release Process Management as a DevOps tool
DevOps overview
The central role that IT plays in most businesses places huge demands on the IT staff to develop and deploy new applications and services at an accelerated pace. To meet this demand, many software development organizations are using an Agile software development approach to minimize the consumption of resources that do not add customer value to products. Using Agile methodology, development teams are able to shrink development cycles and increase application quality. Unfortunately, the increasing number of software releases, growing complexity, shrinking deployment time frames, and limited budgets present the operations staff with unprecedented challenges. To address these challenges, operations must re-evaluate current processes, remove sources of waste, and automate wherever possible.
The DevOps movement grew out of the need to bridge the cultural disconnect between development and operations. The DevOps approach brings the benefits of Agile and Lean methodologies into operations and reduces the barriers to delivering more value for the customer and aligning with the business. DevOps stresses the importance of communication, collaboration, and integration between development and operations, and requires operations to get involved earlier in the development cycle and developers to become more involved in application support.
The implementation of DevOps solutions requires that you:
- Define more and smaller changes (resulting in less risk)
- Give developers more environment control
- Make the infrastructure more application-centric
- Clearly articulate simple processes
- Automate as much as possible
- Collaborate between development and operations
DevOps gap
Typically, developers are driven to embrace the latest technologies and methodologies. Agile principles bring developers into close alignment with business requirements to move applications from concept to marketing as quickly as possible. The culture of operations, however, is typically cautious and deliberate with emphasis placed on maintaining stability and business continuity. Each group has different processes and ways of looking at things. The resulting gap between the two groups is referred to as the DevOps gap.
For example, your organization might have separate Development and System Administration departments. A Development department concentrates on the delivery of new features and features that might be required frequently. The System Administration department is more likely to concentrate on IT services and optimization of costs. This apparent contradiction in goals can slow down software delivery and result in multiple issues:
- Operations is not in the loop when Development considers code enhancements and delivery of new features.
- Developers can lag behind in communicating configuration or environment changes necessary to run the updated code base.
- Developers make changes in various configuration states, often without maintaining adequate documentation of all the parameters involved. After they reach a working state, they can have difficulty in recalling the exact steps necessary to achieve that working state.
- Developers are likely to use systems or tool sets that ensure rapid and fast changes. Operations uses systems that ensures stability and meets flexibility requirements.
- A development environment often runs locally on the developers' workstations. In Operations, the system is often distributed among a web server, an application server, a database server, and so on.
- Development concentrates on functional requirements, which are usually directly related to business needs. Operations is driven by nonfunctional requirements, such as availability, stability, performance, and so on.
- Operations tries to minimize risk to delivery of nonfunctional requirements by avoiding change. Avoiding frequent change while the requirements for necessary change remain constant results in future change requirements becoming bigger.
- The bigger the change requirement, the bigger the risk.
- Operations tries to avoid change, which slows down the addition of new features to production. The cascading effect is a slowing down of Development's ability to deliver new features.
- Operations is less likely to be aware of internal aspects of applications and might incorrectly define the runtime environment and update procedures.
- Development might lack a comprehensive understanding of runtime environments while writing code.
The DevOps solutions address the cultural gap and enhance collaboration between development and operations.
Benefits of DevOps solutions
- Collaborative workflows
- Faster deployment
- Shorter release cycles
- Better business agility
- Aligned release teams
- Fewer failures
- Faster mean time to recovery
Common problems confronting organizations
The following types of problems can arise as organizations seek to streamline the transition or cooperation between development and operations:
- Release management problems: Your organization needs more solid release planning tools than spreadsheets or similar tools. You want an easy way to understand release risks and dependencies, to stage gate adherence, and to ensure compliance.
- Release and deployment coordination problems: You are focused on better execution of release and deployment events. You want better tracking of discrete activities, faster escalation of issues, documented process control, and granular reporting.
- Release and deployment automation problems: Your organization might have existing automation, but you want to manage and drive this automation more flexibly. You might not want or need to enter everything manually at the command line. Ideally, the automation can be invoked by non-operations resources in specific nonproduction environments. You must prioritize by identifying which problem needs the attention first and put the problems in a definite order.
BMC Release Process Management as a DevOps tool
BMC Release Process Management software enables IT to map out and document the entire application lifecycle process, end-to-end, from planning through release. This software application provides a collaboration platform that can bring operations and development closer together. BMC Release Process Management also enables operations to consolidate release processes that are fragmented across spreadsheets, handwritten notes, and various other places.
BMC Release Process Management helps the release coordinator perform the following tasks:
- Manage the increased infrastructure complexity
- Increase the rate of releases in an agile and iterative development environment
- Coordinate among distributed teams: globally deployed, outsourced and hybrid development, testing, and infrastructure teams
BMC Release Process Management provides for the planning and reporting of software changes so that release engineering can control the release of specific application changes into production.