Today’s business leaders want more innovation, faster. They know that, in order to beat competitors and continue to thrive, their organisation must excel in bringing new products and services to market at speed and on consistently exceeding customer expectations.
That puts major pressure on those responsible for developing and delivering new and enhanced software functionality for the business to use.
More frequent releases and shorter deadlines are increasingly becoming facts of life, but in the race to fast-track new pieces of code, IT teams often hit a roadblock. That roadblock occurs at the boundary of application development and IT operations, an intersection where two very different cultures meet.
On one side of the boundary is the culture of the developer, where creativity, freedom to experiment and choice of tools are paramount. The developer is happiest using Agile techniques to produce a constant stream of software releases and upgrades that will get the business where it needs to be, in terms of innovation.
On the other side of the boundary is IT operations, where stability and control are what matters. Disruption is the enemy and frequent software releases can be complex to manage. IT operations agree that they want the business to move forwards – but not at the risk of critical systems falling over.
This cultural divide can lead to all sorts of ‘flashpoints’ before a piece of software makes it into production. Developers get frustrated if they are forced to wait for new development environments to be provisioned or new applications to be approved. IT operations, meanwhile, get exasperated if developers take matters into their own hands, setting up their own environments or releasing code early into test environments. And when code fails, due to library mismatches, for example, or platform/networking differences, everyone is infuriated by the perceived failings of the opposing side and the valuable time that will now be lost to debugging. Even worse, the business is left waiting until the next release window for the functionality it needs. Of course, if any of the bugs reach production or integration fails with other live systems, the fall-out isn’t worth imagining.
These kinds of conflict are the reason that there’s a great deal of interest in DevOps right now – a movement that encourages application developers and IT operations professionals to collaborate more, to remove the bottlenecks that delay the release of new software and to help the business to keep pace with the speed of innovation that will enable it to stay one step ahead of its competitors.
Cloud bridges the divide
At Red Hat, we believe that the Cloud is the best venue for DevOps, providing a way of working that can benefit every business, no matter how risk-averse. A platform-as-a-service (PaaS) approach may be hosted by a third-party provider or remain on-premise, in a private cloud infrastructure, but either way, the same benefits that make cloud technologies attractive for production environments also apply to the development and delivery of software: lower cost of entry, faster speed-to-market, on-demand scaling and centralised administration, standardisation of provisioning and deployment techniques, for example.
More importantly, however, a cloud-based PaaS provides a single collaborative venue where participants on both sides of the DevOps divide work together closely as a team, regardless of physical location, and get a better understanding of how the other side works.
In particular, automation capabilities guide all staff through the application development and delivery process, providing everyone involved with regular progress reports and alerting them to required next steps, while still preserving distinct roles and responsibilities.
IT operations staff, for example, can create templates in the PaaS environment that mean that developers have instant access to development environments that accurately mirror production whenever they need them. Developers, meanwhile, are provided with access to self-service capabilities that enable them to create scalable applications using their choice of languages and streamlined workflows that accelerate productivity. The result is a more efficient use of time and skills across the entire IT team and more opportunity for the business as a whole to innovate.
The DevOps roadmap
At the same time it is easy to recognise that most organisations have significant investments in existing tools and processes. The journey to DevOps, for many, will and must be an incremental one. That’s why we at Red Hat Consulting think it is vital to work with organisations to create a roadmap that will help them get the most of what they have in place today but, over time, will enable them to incorporate new technologies, such as hybrid cloud, and new ideas, such as continuous development.
Even if fully continuous development and delivery is not the goal for your business, or the idea of automating application development right through to production would be widely greeted with horror, DevOps can accommodate your company’s own particular comfort levels while at the same time helping it to increase reliability, reduce risk and optimise the resources required to get new software into use.
IT operations will get the control they require over environments, framework and reuse. They’ll reap the benefits in terms of cost and efficiency of virtualised and cloud-based environments, as well as vastly accelerated development and testing. Over time, they may choose to work towards charge-back mechanisms that make line of business units responsible for the cost of the development skills and environments that they consume.
Developers, meanwhile, get faster access to new environments; more choice in tools; and the scope to ‘fail fast’, when it comes to trying out new technologies, frameworks and versions. If one approach doesn’t work, they can quickly swap it for another. They get better scalability of environments and improved test control and repeatability. Above all, they spend more time developing and less time waiting to start on the next stage or the next project.
To agility and beyond
The fact is that any organisation – whether it’s an IT team or the business it works for – must be agile in order to innovate. That’s a familiar concept to developers who have been using Agile programming techniques for more than a decade to speed development processes. The point of DevOps is to bring the same speed and efficiency to IT operations, creating a win-win for both that breaks down barriers and gets them working at the same speed, towards the same goals. Developers get more freedom; operations still retain the control that they need.
In the process, DevOps enables the whole organisation to become more agile and innovative. A steady stream of fresh software, released without disruption, can make a huge difference to business performance, at a time when responding at speed to changing customer demand and exploiting new business opportunities as they emerge has never been more important. DevOps is here already – your first step to better business agility and increased innovation should be to seize on the opportunity it represents.