And let’s not forget timing, which as we know, is everything. The development and operations teams must synchronize their schedules and environments to carry out the needed tasks for development, testing and delivery. In the past, developers might “throw new software over the wall” in the interest of deploying new business capabilities, but the operations team was less interested in rapid deployment and more interested in operational stability. With DevOps, both teams need to embrace both speed of development and quality of service.
The failure to embrace shared responsibilities, schedules and priorities can lead to conflicts around functional errors, data loss, performance outages and cost overruns.
Tools of the Trade
DevOps also requires the software tools and systems that support rapid application development, testing, versioning and rapid deployment. In many of these instances, automation is being used to ensure a high level of software quality and system performance. Automation is also enabling higher levels of system availability and the elasticity to respond to changing customer demands.
Service virtualization is a key innovation that enables DevOps implementation. Virtualization lets systems administrators model and simulate an application’s behavior, data and performance during the development, testing and deployment phases of a project. Virtualization also lets IT professionals identify system constraints, network impact, server loads and other performance characteristics.
Cloud computing, seen as the next generation of system infrastructure, can provide an on-demand environment for developers to create, test and optimize new applications in a sandboxed environment that’s separate from their IT department’s actual production environment. Developers were among the first in corporate IT to embrace the services and benefits of cloud infrastructures (Infrastructure as a Service [IaaS]), services (Platform as a Service [PaaS]) and software (Software as a Service [SaaS]).
Now, the operations side of IT is embracing cloud services to provide a flexible and easily configured environment for running new applications and Web services. IT operations can be run on internal cloud environments, third-party clouds and hybrid systems that consist of both types of services.
Release automation is another facet of application development that lets programmers automate the complex configuration of new software deployments during every state of the application lifecycle. Release automation takes many of the errors out of the management processes and speeds up deployments.
Data mining lets developers and operations professionals look at an application’s architecture, learn from past deployments, identify potential problem areas, create test scenarios and perform what-if analyses.
Performance management tools can monitor applications in the production environment, and collect metrics and data that feed back into the development process for faster issue acceptance, root cause analysis and problem resolution.
Capacity management tools let IT professionals observe applications in use and determine when they need additional server and network capacity and whether those capabilities are best sourced in-house or via cloud services.
Project and portfolio management systems are used by architects, analysts and others in the IT department to plan and prioritize the entire application portfolio around projects that deliver the greatest business value. Having greater visibility into operations can help the entire team make more informed decisions going forward, deliver greater value to business customers and achieve a better return on investment.
Infrastructure management tools used by the operations team ensure applications run at agreed-upon service levels. They’re viewed as one of the key elements used to ensure higher levels of return on DevOps investments.
Security is another important facet in ensuring that new applications and Web services deliver business benefit. Whether operating within the firewall or in a cloud environment, operations professionals need to control access to applications, the underlying code, the data it generates and the overall system configuration. Increasingly, protecting the perimeter of the IT department from unwanted access isn’t enough. New security tools and measures are able to detect aberrant system access patterns, the removal or copying of key data and unwarranted configuration changes.
Access control applies to both development and operations teams to mitigate the risk of too many people having access to or interfering with applications and processes that can negatively impact sensitive systems.
DevOps is becoming the standard operating procedure for large and complex IT environments. It enables application development and deployment teams to work in lockstep to ensure new functionality is rolled out as rapidly as possible to its business units and customers. DevOps also enables the real-time monitoring of systems during testing and deployment and enables IT professionals to incorporate the resulting insights into future deployments.
The Benefits of DevOps
- - Improved software quality
- - More frequent software releases
- - Agile, lean application development
- - More flexible change management
- - Greater system uptime
- - Improved collaboration between teams
- - Increased responsiveness to business needs
DevOps Enabling Technologies
- - Agile methodologies
- - Cloud-based development
- - Automated testing
- - Service-oriented architecture
- - IT governance
- - Lifecycle management
- - High-availability infrastructure
- - Capacity planning
- - Cloud management
- - System virtualization
- - Continuous monitoring
- - Advanced security protocols