Subscribe

Reaching new DevOps heights

DevOps can enable companies to eliminate development and delivery constraints and reduce delivery cycles.

Jaco Greyling
By Jaco Greyling, Chief technical officer, DevOps, at CA Southern Africa.
Johannesburg, 17 Sept 2013

Business leaders are recognising that companies must become more agile and efficient to adapt to marketplace changes and remain competitive. For many industries and companies, these business changes are occurring more frequently and becoming more disruptive in nature.

Change can come in the shape of: industry consolidation; new global competitors; changing regulatory requirements; and relentless economic pressures to reduce costs.

To better respond to business needs for greater agility and responsiveness, IT companies are changing their approach to enterprise applications, from large and monolithic to ones that are more dynamic, distributed and heterogeneous.

These applications are being implemented with a variety of technologies, including cloud computing, services-oriented architectures, business process management, rich Internet applications, and enterprise service buses. Regardless of the implementation approach, the overriding pattern is the same; re-usable components shared across multiple application tiers, all of which are subject to frequent change.

These technologies help companies develop new solutions faster and with better alignment around changing needs. The development methodologies to build and assemble these modern applications have changed as well. Development companies are becoming more efficient and responsive, through the use of agile development techniques that rely on shorter release cycles and smaller teams that are geographically distributed.

Speed of light

Some companies have already recognised the fact that they are releasing software faster than they can adequately test it. Others are recognising emerging threats through increased system downtime, missed delivery dates, and spiralling maintenance costs. Still others recognise that failure to address these issues will be disastrous for critical application modernisation strategies to which their companies have committed. Testing is not the only area under pressure from growing business demands and faster release cycles.

IT professionals (IT operations, help desk) are also feeling the pain in supporting these new composite applications in production. Companies spend more time fighting fires in production than streamlining their operations for better efficiency. As the gap between business demand for innovation and IT's capacity to deliver increases, companies start to find it harder to take innovations to market.

Companies spend more time fighting fires in production than streamlining their operations for better efficiency.

The problem is compounded by the fact that development and operations largely remain separated by a 'big wall' creating a systemic problem not easily solved by agile methodologies alone. Many activities and components must be aligned on either side over the course of weeks or months to deliver code into production. Even with these delays, new applications in production often contain nagging defects and performance flaws that are costly to find and repair.

It is out of this sense of urgency that the DevOps movement was established. DevOps is often associated with agile development methodology, as well as its ops counterpart - infrastructure automation. By connecting these disciplines with closer collaboration, IT companies moving toward DevOps seek to change the way applications are produced to more rapidly deliver positive business outcomes, such as increased customer satisfaction and competitive advantage.

So, how can DevOps enable companies to eliminate development and delivery constraints and successfully contain cost, mitigate risk and reduce delivery cycles?

The four Cs

The answer lies in the four 'Cs' of DevOps. The first two, "constraint-free development" and "continuous delivery", focus more on accelerating the software delivery life cycle itself. The latter two, "complete monitoring" and "collaborative data mining", are all about closing the loop between development and operations to ensure continued improvement in the quality.

Let's take a quick look at each step.

Constraint-free development is all about removing constraints during the development and testing phases of any application component. The ability to virtualise or simulate complete test environments - that react and respond just like the production environment - can accelerate development cycles and allow testing to occur earlier. These virtual services can be customised to allow for multiple teams to develop in parallel and help eliminate contention for shared resources - including production systems.

Companies have found that modern development techniques, like agile development alone, are not enough to ensure faster release cycles. Getting an application from development through testing and into production is sometimes a bigger challenge than the construction phase itself. Continuous delivery tools must automate the complex configuration of software deployments at each step of the development life cycle. A recent study found that over 40% of production outages are caused by application misconfiguration alone.

Previously, applications were delivered once a year and it was fairly easy to figure out what was going on with a system, as there was time to understand its behaviour. Today, customers are making more frequent releases, creating a need to automate the feedback loop necessary to make development more effective. Data mining solves this problem by delivering visibility into the behaviour of applications. Learning from production to create more lifelike test environments optimises the software delivery life cycle.

In this four-part series of Industry Insights, I will unveil what it takes to truly embrace the DevOps movement and push application delivery to new heights.

Share