Over the next few weeks, Softcat will publish 5 guest blog posts covering the most popular areas of open source software and we would love you to join us, even pose some questions, online during our live panel discussion on Tuesday 22nd September at 1pm.
Through cultural and technological change, the entire development-to-operations lifecycle can now be delivered as one end-to-end process. Applications and platforms no longer have to be siloed from each other, segregated by disciplines, people and technology. Traditionally, siloed delivery has in many places resulted in un-maintainable systems and potential service crisis. Predicting where things may go wrong, even when risks are identified and mitigated, is challenging for any IT project - whether or not you develop your own software.
With traditional approaches to IT, organisations have, in the past, not looked to bridge the gap between the development and operations teams. This approach to IT tended to be reactive and manual in nature, rather than being integrated and proactively focused. Increasingly, maintaining such a practice was 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 about cultural change, aiming to deliver functionalities faster at a higher rate of quality. It is a way to bridge the gap between the Development and Operations teams for frequent deployments. It could be called “Near Real Time” development or an “Agile” deployment cycle because you can automatically deploy as soon as a change is committed by the developers. Human intervention is minimised wherever possible. Importantly, DevOps principles shouldn't be pushed by the developers in your organisation and your infrastructure people shouldn't be resisting the DevOps movement either. So, what can be learnt 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 be iterative and frequent.
Ensure a reliable and repeatable process.
Continuously monitor and validate operational quality characteristics.
Amplify feedback loops for continuous delivery.
Mike Curtis, Executive Director at LinuxIT explains: “At LinuxIT, we blend the best bits of traditional IT management with the best bits of DevOps. For example, having a well-defined change management process complemented with automation tools like Puppet.”
“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.” Mike continues.
Ideally, organisations need a multi-disciplinary group possessing various skills and knowledge of technologies such as Puppet, Jenkins, Git, Ansible, Red Hat Satellite and Nagios. By working together to design and operate the environment silos are reduced and eventually removed.
In practice, rather than one team member solely looking after storage, another databases, another routers, switches, firewalls, network, virtualisation or server management - 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 unlock real value for 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 genuinely unify the tools across departments.
One can think of DevOps as extending the Agile methodology (which helps 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.
A by-product of DevOps principles is reduction in unplanned work. It can be avoided by building a best practice standard operating environment and taking a systems management approach, for example using automation tools like Puppet, as it allows you to document more.
This improved quality gives 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-premise. There is a danger of over engineering, e.g. introducing bleeding-edge technology before its ready. So, care should be taken to adopt a holistic service management model in a controlled way to mitigate risk. You need a balanced approach and you may find you don’t need to automate everything i.e. your entire business process. Ultimately, it needs to be what is right for the organisation -don’t do it for the sake of it. Make sure it’s fit-for-purpose.
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 a change in business dictates a change in an organisation’s delivery strategy. A DevOps focus applied to well-managed IT (traditional) is enabling the move to more proactive, near real-time delivery objectives of IT organisations, reducing reactive work, improving speed to market and reducing costs.
Organisations increasingly need to look to IT services experts 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.
To learn more about OpenStack, make sure you join our live Q&A discussion on the 22nd Sept.
We would love to hear any comments you have about this article!