Although the term DevOps was coined fairly recently, businesses and other organizations have long been concerned about how development and operations teams work together on the deployment of new capabilities. The concern has gained greater attention lately because businesses need to deliver deployments at far greater velocity. That, in turn, has come about because of the emergence of the agile development methodology alongside the availability, through big data, of immediate insights into how people are using particular applications.
DevOps is a software development approach - not a development methodology such as agile - that supports rapid product delivery. It represents a cultural shift that blurs traditional boundaries between development and operations teams (which explains the origin of the term). The focus of DevOps is on team interaction. DevOps is also a philosophy that stresses continuous improvement and visibility.
Although all of that may sound like something of interest only to IT staff, DevOps carries important implications for the business as a whole.
A mature DevOps approach can dramatically accelerate the delivery and reliability of new functionality and features to customers, whether they are the patients of a healthcare organization, shoppers at an online retail store, visitors at a theme park or accountholders at a financial-services company. The ability to quickly give customers the capabilities they have requested boosts competitiveness as well as customer satisfaction.
A mature approach
Development and operations teams have always worked together in some form or fashion, but when we use the term DevOps, we're referring to a mature and considered approach. DevOps includes a focus on such areas as code management, configuration management, and process.
Code management: Development teams historically have operated in a sort of Wild West of coding, with developers checking raw code in at the end of the day and leaving the testing for later. With mature DevOps, developers perform integration testing regularly, leaving code in a known and valid state at the end of each workday. In addition, services such as Jenkins enable developers to run scripts and perform automated builds of desired application. These changes in code management reduce errors and provide visibility into the quality of work done by developers, while saving the business time and money.
Configuration management: The goal of configuration management is to ensure that as code is promoted through environments it will perform predictably within each. What has changed within configuration management is the arrival of cloud vendors and, in particular, platform as a service (PaaS). With the cloud and PaaS, it's now possible to obtain fully configured infrastructure, including servers, within minutes. Although the business will pay for cloud-based services, the velocity the cloud provides offsets the costs and delays associated with traditional procurement and provisioning of hardware.
Process. DevOps represents a cultural shift, characterized in part by frequent feedback loops. Developers push applications to operations, and operations quickly obtains feedback, which is sent back to the development team immediately, so developers can provide frequent iterative releases. This enables the business to respond to new demands, in some cases within minutes rather than months or quarters. DevOps make this possible by injecting automated tools and procedures into the process.
Automating builds, testing and security scans, combined with continuous integration and delivery, allow businesses to add and scale new features and functions rapidly. Other benefits include the use of microservices such as Docker.
Docker can be viewed as its own virtual environment within a server instance, designed to manage a single task; for example, checking the available balance in checking or savings accounts. If the service is overrun, it's easy to implement additional instances to meet demand. If the service requires an update, that's also easy to accomplish. Additional benefits arise as the IT staff promotes environments from development to QA, to test and then to production. Normally, the staff would run scripts and rely on manual labor to accomplish the many tasks associated with promotion. With microservices, it's easy to push environments through these stages, avoiding time-consuming and costly configuration bugs.
Many organizations have invested heavily in a digital strategy as well as a development methodology, but without a mature and strong DevOps approach, they inevitably will fall short in their attempts to engage customers. There is simply no way to be truly responsive customer expectations and needs without advanced approaches to code management, hardware procurement and microservices, all of which - taken together - dramatically improve coding, reduce configuration errors and accelerate speed to market.
CapTech, a leader in technological innovation, uses DevOps because we believe it provides a proven path to success in the age of the customer. In addition to incorporating mature DevOps into our own practices, we offer assessments, consulting, training and mentoring on DevOps, to help organizations mature their own development operations and more fully engage customers.