Subscribe

DevOps crucial for competition

The automation and accountability of the continuous loop of development and operations helps to accelerate innovation.

Jaco Greyling
By Jaco Greyling, Chief technical officer, DevOps, at CA Southern Africa.
Johannesburg, 14 Nov 2013

The IT world is evolving at a rapid pace. Data centre and home-grown applications are increasingly complex, application changes are rising in volume and frequency, and operations are deploying across multiple environments and infrastructure models (physical, virtual and cloud). In order to keep up with increasing business demands, development teams are adopting agile methodologies, and quality assurance (QA) is employing automated testing.

Unfortunately, IT operations are struggling to keep up with the rapid pace and efficiency of the development and QA teams. Existing manual and semi-automated approaches are uncoordinated, time-consuming, error-prone and impossible to scale - draining both labour and budget resources. In addition, the lack of application deployment visibility impairs the ability to audit and control operations. The result is a slow and unreliable system that often leads to failures, bottlenecks and delays.

Continuous delivery is all about seeing the big picture, to consider all aspects that affect the ability to develop and release software. In order to acquire a better understanding of this and how organisations can benefit from continuous delivery, a reference framework must be created. The level of adoption ranges from anything from manual deployments and scripting to automated and continuous deployments. Most organisations will fall somewhere within this continuum, and usually within the first two levels.

Holding out for a hero

The first level involves manually configuring and setting up the infrastructure required for the new software codes. This level of maturity involves a lot of human intervention, and there are many places in this process where problems can be introduced. At this level, an organisation will typically have occasional death marches of activity to get the Web servers, databases and other information systems set up.

Companies will also typically rely on one or two key resources or 'heroes' to keep the lights on.

In the second level, people start writing scripts for deploying the software and setting up all of the servers involved. This is a step up from manually configuring the required systems, but it can break down when the infrastructure changes. It also requires considerable human effort to set up and tune the scripts used for pushing out new code. An error at any step can create problems, which adversely affects the application delivery. Here, companies start to adopt simple processes to aid in their journey to become fully automated and streamlined.

Continuous delivery is all about seeing the big picture.

In the third level of maturity, companies begin to use automated tools for managing all of the processes involved in deploying new software. In this phase of maturity, companies typically use dedicated tools for managing the logic of configuring all of the systems involved in software deployment. These tools help to create re-usable common application delivery processes that are established for each target environment. In addition, they add in appropriate tracking and reporting of the deployment processes, and the artefacts such as code, test, approvals and configuration settings.

Today, many companies are looking at moving towards continuous application delivery. In this stage (level four), end-to-end application delivery processes have been established that integrate and coordinate existing orchestration and software life cycle tools. This enables predictability throughout the supply chain, from development to production. To achieve this level of maturity, companies have to realise the benefits of service virtualisation (as discussed in the second Industry Insight in this series) to remove constraints from the software delivery life cycle. This is required to achieve a truly continuous delivery process.

Once companies have grown comfortable with the infrastructure and practices required for continuous application delivery, they can start to optimise the process (level five). At this level of maturity, the operations and development teams start gathering data about how the applications are actually deployed and perform on real-world systems. This feedback is used to identify better practices that might trim costs, boost performance or enhance business value. I will discuss this in more detail in the final part of this four part series of Industry Insights.

Up the maturity curve

Agile development methodologies brought a fresh approach to software development and gave birth to rapid application development. Automated testing takes the manual labour away from regression testing, which accounts for 80% of test cycles.

It is at this point where the proverbial wheels can come off. The one area that a lot of companies still struggle with today is the rapid delivery of new applications into production. In a nutshell, the delivery supply chain is broken. CIOs should strive to move their companies up the maturity curve and embrace a continuous delivery culture.

Application release automation platforms reduce errors, mitigate business risks, accelerate deployment times and decrease costs. Companies should carefully evaluate these solutions to ensure they are fit for purpose. At the very least, a desired solution should support automation across heterogeneous infrastructures, streamline plus coordinate processes, and shorten application release and service times.

When development teams automate the packaging and deployment of each software change, and operations automate the certification and monitoring of each new release - only then does the company start to attain a continuous delivery loop.

Software updates, which used to wait for the next weekly or quarterly build and release train, can now be deployed in hours or minutes, as IT ops can automatically inspect and incorporate the release into production without fear. The automation and accountability of this continuous loop is how DevOps practices and tools accelerate innovation.

Share