Understanding DevOps (Part 2) - Five best practices of deploying DevOps


By Sumal Karunanayake*
Monday, 28 October, 2013


Understanding DevOps (Part 2) - Five best practices of deploying DevOps

In Part 1 of this series, I introduced the concept of DevOps and how it can help IT organisations deliver higher quality applications at a faster pace without having to spend more money. In this second instalment, I look at five best practices for embracing DevOps in the IT organisation.

The key areas of best practice we will focus on are how organisations can leverage the cloud, quality, automation, collaboration and agile development.

1. Embrace the cloud

The availability of cloud platforms for infrastructure, development platforms and software applications provides more options to the business as well as the application development supply chain than ever before (also known as test clouds, dev clouds, platforms such as force.com etc). As much as embracing the cloud provides a great deal of agility and cost-efficiency, it also introduces a more heightened requirement for development, the business and operations to be collaborative than ever before. The notion of embracing the cloud, however, is critical, especially where organisations are moving into agile development methodologies. Agile methodologies by definition are underscored by having access to dev and test environments which are available ‘on tap’.

2. Shift quality left

In any SDLC, constraints have been a perennial inhibitor to driving faster, better quality and cost-effective application development. Using the concept of service virtualisation, we believe that any organisation who is running an agile or waterfall SDLC approach will be able to materially increase the rate and pace of application releases, reduce defects significantly and, by achieving these outcomes, ultimately reduce the cost and dependency of expensive and often inaccessible test environments (especially those centred around mainframe and large ERP, CRM type applications).

This is achieved by creating simulations of the services which are required from these dependent systems in order to effectively develop and test the system which is under development. By creating this simulated or virtualised service, the function of testing (whether it is systems testing, systems integrations testing, performance testing or user acceptance testing) can occur much earlier in the SDLC. From our experience and where we see optimal value, this simulated approach should be occurring during the development phase of the SDLC. The flow-on impact is that when the application moves through the SDLC, the quality of the application or package is of a much higher quality when it does get to the other phases of the SDLC.

This increases the speed of SDLC output and significantly decreases defects. Another key benefit of this ‘shift left’ in focus is that there will also be less ‘idle time’ - ie, time a development team spends NOT working on the application, while waiting for access to test environments to be made available. Another flow-on business benefit in this approach is that less dependency on test environments will also allow CIOs to reduce the expenditure associated with supporting multiple test environments - especially the higher cost items such as mainframe MIPS.

3. Automation is your friend

We also believe that when it comes to truly optimising your application delivery, the use of automation within your SDLC is a critical area of value generation. Automation is not a new concept; however, automating your SDLC - ie, the release of your artifacts, and packages to seamlessly flow through the various environments in your SDLC, reduces a lot of common barriers which cause delays and troubleshooting, which typically slows the SDLC process. Through the use of release automation, you allow the various functions of the SDLC to perform the tasks they are best at - to develop and test high-quality applications.

Release automation will dynamically ensure that packages and artifacts are deployed into new environments, in sync with configurations changes which occur from environment to environment. For example, the OS version, the DB version, the patch levels, HW configuration etc will often be different from environment to environment. When an artifact is ‘dropped’ into these different environments, quite often through the use of scripts or manual code, the application will quite often behave differently and even before testing commences there are issues around troubleshooting to ensure the applications works. Release automation will also ensure ‘continuous delivery’, not just through the SDLC but also into production. This approach is also complemented by the adoption of a DevOps approach as you will see below.

4. Break down your team’s walls

As we discussed in Part 1 of this article, the principles of DevOps and the adoption of this approach will have a material impact on driving more effective application delivery. Although we have already touched on it, DevOps will become the ‘glue’ that binds all of the best practices we talk about in this part of this article.

5. Embrace transparency for agile development

The practical outcomes of DevOps and the associated best practices should all be centred around a fundamental change in the organisation’s approach to application development. Agile is the nucleus delivering faster, incremental, application functionality operated by development teams who are distributed both geographically as well as functionally. Running sprints or taking a scrum approach in a service virtualised environment will allow development to not only deliver the software increment quickly but also put it through its testing paces quickly and be able to deliver the necessary outcome to the business quickly.

Build a successful DevOPs culture

Remember - building a successful DevOps culture in your organisation is not going to happen overnight. The first step to deploying DevOps is to convince employees from all levels to create buy-in, and that is going to take time.

By now you should have noticed three key aspects of DevOps that encompasses everything aforementioned: the people, the process and the technology. If you can achieve these three aspects, your organisation will be well on its way towards a cadence of faster, more predictable releases, better results from each phase of the software delivery life cycle and more effective execution in production with increased cost efficiency.

*Sumal Karunanayake is Vice President, Application Delivery, Asia Pacific and Japan, at CA Technologies.

Related Articles

Is the Australian tech skills gap a myth?

As Australia navigates this shift towards a skills-based economy, addressing the learning gap...

How 'pre-mortem' analysis can support successful IT deployments

As IT projects become more complex, the adoption of pre-mortem analysis should be a standard...

The key to navigating the data privacy dilemma

Feeding personal and sensitive consumer data into AI models presents a privacy challenge.


  • All content Copyright © 2024 Westwick-Farrow Pty Ltd