Jun 16 ’14
DevOps Helps IT Departments Meet Innovation Demands
DevOps is rapidly gaining ground in organizations that feel intense pressure to operate more efficiently and rapidly deliver new products and services to their customers.
DevOps, short for development and operations, is a new way for IT departments to organize their resources to become more closely aligned with business goals and requirements. DevOps emphasizes the communications, collaboration and integration of software development and operations management within the IT department.
It also represents a strategy for a seamless flow of ideas between business units and corporate IT departments. The overarching goal is to innovate quickly and make changes on the fly as new insights and opportunities become apparent to business leaders. This means business leaders must communicate these requirements to the IT department, which must add new capabilities through new applications and existing systems.
According to recent surveys, more than 60 percent of IT departments are using DevOps to produce more applications, to deploy them more rapidly and to ensure higher levels of operational success. That’s up by 25 percent from just two years ago.
While DevOps isn’t a specific methodology or a fixed collection of tools, it does make use of the latest best practices and system management techniques offered today. DevOps is really a mindset that requires application developers to quickly respond to business demands for new capabilities by deploying software that supports those requirements. This means development teams will build complex software, Web services and mobile apps, spinning out new features and updated components on a daily or, in some cases, hourly basis.
Once the software is tested, it’s handed off to the operations team to deploy it in the production environment. The development and operations teams are in constant contact to understand what each team member is doing and when the handoff needs to occur. Once the software is deployed, the team members continue to collaborate and make critical adjustments in the software, servers, networks and other areas to optimize the business processes these IT systems support.
While the concepts behind DevOps have been around for quite some time, the term gained significant visibility around 2009 with the intersection of several application development and system management practices, including agile development methodologies, lean start-ups, cloud computing and management automation.
A New Attitude
Many enterprise computing vendors claim to have DevOps solutions, but a successful DevOps strategy requires more than just IT tools. It requires an organizational structure that supports communications and collaboration between the application development and operations teams. It also requires IT governance in the creation of processes and best practices that encapsulate the DevOps mindset. Moreover, it requires vigilance by IT management to ensure business priorities are being funneled into the development and deployment process in a consistent fashion.
Development and operations teams must find a way to share responsibilities such as priority setting. Both groups must agree on the business goals they’re supporting and the metrics used to track the effectiveness of new software. They must also assume shared responsibility when errors occur and not engage in finger-pointing.
The teams must also agree on budgets, resource allocation and the trade-offs between speed, stability, features, usability, access and control.
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