With traditional approaches to IT, organisations do not look to bridge the gap between development and operations teams. This approach to IT tends to be reactive and manual in nature rather than being integrated and proactively focused. Increasingly, maintaining such a practice is impacting on the cost, agility, maintainability and availability of systems, which can ultimately impact on the reputation of the organisation.
DevOps is a philosophy to bring in cultural change aiming to deliver functionalities faster at a higher rate of quality. It is a way to bridge the gap between Developers and Operations team with the aim of enabling frequent deployments. It could be called 'Near Real Time' development or 'Agile' deployment cycle because you can automatically deploy as soon as a change is committed by the developers. Human intervention is minimised wherever possible. DevOps principles shouldn't be pushed by the developers in your organisation, your infrastructure people shouldn't be resisting the DevOps movement either. So, what can be learnt from from the DevOps movement in a non-development environment?
Automation throughout the development life cycle, continuous feedback and process improvement is the key for adopting DevOps.
The following are some of the DevOps principles you can apply to deliver more efficiencies:
- create production-like systems for development and testing environment
- deployments need to iterative and frequent
- ensure a reliable and repeatable process
- continuously monitor and validate operational quality characteristics
- amplify feedback loops for continuous delivery
Mike Curtis, Head of Consultancy & Solutions Design at Claranet explains:
Claranet blend the best bits of traditional IT management with the best bits of DevOps. For example, having a well-defined change management process underlines with automation tools like Puppet."
Best practice systems management
“A DevOps focus is one way of LinuxIT delivering the Best Practice Systems Management. It’s not revolutionary, it’s becoming increasingly sensible to use DevOps tools in the management of an environment. DevOps is a way of approaching systems engineering in a holistic way thus not treating applications and platforms separately.”
Organisations need a multi-disciplinary group with various skills and technologies such as Puppet, Jenkins, Git, Ansible and Red Hat Satellite, Nagios, etc. where the team is designing and operating the environment and works as a team by reducing and removing the silos.
So in practice rather than one team member solely looking after the storage aspect, another databases, another routers, switches, firewalls, network, virtualisation or server management, etc. all in different silos, organisations should organise operations staff to integrate with their development counterparts to create a matrix model, distributing core skills where and when they are needed.
DevOps can provide a solution to mitigate piecemeal or slow delivery and deliver real value to the organisation. The key to DevOps is to unify the development and operations processes by treating them as one end-to-end process. This requires cultural change from a siloed approach to one where development and operations teams truly collaborate, and the introduction of technologies that unify the tooling across departments.
One can think of DevOps as extending the Agile methodology (which helped to connect developers, testers, and business representatives) to also include operations. In other words, a DevOps approach extends the Agile methodology beyond software release to include the deployment phase working in conjunction with and helping to improve management processes such as ITIL.
Avoiding unplanned work and fire fighting
A by-product of DevOps principles is a reduction in unplanned work. It can be avoided by building a best practice standard operating environment (Gold builds, which have been planned, tested, and approved prior to being pushed into production and then patched when new updates are available) and taking a systems management approach e.g. use automation tools like Puppet as it allows you to document more. This improved quality gives the organisations the ability to truncate change management processes. According to The Visible Ops Handbook, best practice IT operations should spend less than 5% of time on unplanned work and fire fighting, however the norm is about 35-45%. Good practice should be about continually reducing reactive work.
DevOps is increasingly sponsoring the use of cloud. It doesn’t matter whether the resource is cloud, PaaS, IaaS or traditional on-premises. There is a danger of over-engineering. e.g. introducing bleeding-edge technology before its ready. Care should be taken to adopt a holistic service management model in a controlled way to mitigate risk. You need a balanced approach. You may find you don’t need to automate everything i.e. your entire business process. It needs to be right for the organisation. Don’t do it for the sake of it. Make sure it’s fit for purpose.
A blend of both
So do you need to take the DevOps or traditional approach to IT?
Increasingly it is not one over the other, it’s becoming a rapid change of pace and change and business dictating a change in an organisation’s delivery strategy. A DevOps focus applied to well-managed (traditional) IT is enabling the move to more proactive, near-real-time delivery objectives for IT organisations, reducing reactive work, improving speed to market and reducing costs.
Organisations increasingly need to look to IT services experts like Claranet to help them retain the best parts of their current systems management environment whilst identifying areas for new tools and techniques to help them improve their service delivery.