DevOps and Continuous Delivery might seem akin to the Holy Grail, yet for modern, agile, responsive organisations, both are essential. We explore the 7 keys steps to making them both a reality for organisations based on Oracle solutions. For more about common challenges and how to overcome them, read our Blueprint for Continuous Delivery & Automation of Oracle.
1. BREAK WITH TRADITION
Delivering new systems used to require a herculean effort from your IT department, and that’d be after years of development and testing. This ‘big bang’ approach is now a liability, as it prevents businesses from getting new initiatives to market quickly, and blunts their competitive edge.
That’s why a break with tradition is the first step: leading organisations are embracing DevOps and Continuous Delivery automation, to push new initiatives and capabilities to market much faster. The diagram below (reproduced with permission from DevOps.com) shows just how different these approaches are.
Comparing DevOps to traditional IT: Eight key differences – used with permission from the author.
2. DETECT FAILURES EARLY
The diagram from Mustafa Kapadia’s post at DevOps.com shows the key differences between Traditional IT and the DevOps approach. Continuous Delivery is the process of pushing lots of small changes into the delivery pipeline. It’s similar to a production line for cars: at various checkpoints, the changes are subjected to verification such as Integration Testing, Performance Testing and Acceptance Testing.
A key concept here is to catch failures early, while they’re still easily fixed and before they have a major impact on your business. Once changes have been verified, the code is automatically released into production. This way, testing and deployment can be largely automated, and production always runs the latest code or ‘master’.
3. RECOGNISE SMALL IS BEAUTIFUL
That’s how Continuous Delivery enables new updates and capabilities to be delivered rapidly, reliably and repeatedly, with minimal manual interaction and risk, and much higher quality. Another advantage of small implementation sizes is that they’re much easier to work with and less risky to deploy since small changes can be easily rolled back with minimal or no impact. You can also communicate them more easily and clearly among project teams.
4. USE SMART TOOLS
To derive maximum benefit from Continuous Delivery, automation is critical so you must choose your tools with great care. The best ones are deceptively simple, using simple user interfaces, and offer a range of functions such as
- Enabling the design of high quality new environments in minutes
- Letting your architects & designers collaborate with far less documentation and far more accuracy, so that what the architect designed is what is actually built
- Easy cloning & extending of reference templates, or building environments from scratch
- Drastically simplifying the management of topology versions
- Validating all configurations and detecting any errors before build or release to Dev or Prod teams, thus eliminating the risk of defects that could cause downtime.
The best tools make it really simple to deliver faster, higher quality and more consistent environments. That’s the bottom line.
5. AUTOMATE YOUR BUILDS
Automation is a key aspect of Continuous Delivery of repeatable, reliable, high quality systems. CD automation is also essential for responding rapidly to changing business needs. The fewer manual processes you rely on, the greater your organisation’s agility and ability to adapt to change.
Here’s what you should expect from an effective Continuous Delivery Automation engine. It should:
- Allow development teams to execute sequenced build steps
- Monitor real time job activity and logs
- Enable you to run and re-run the entire build or parts of a build
- Let you copy or clone configurations from existing environments back into Design
- Store all build configuration in ‘Source Control’, a centralised configuration repository for audit and quality assurance
- Enable integration of the Oracle technologies underpinning your solution such as infrastructure virtualisation, databases, OFM and applications
- Enable the integration of cloud services.
Keeping everything in Source Control and adopting an ‘Infrastructure-as-code’ approach, allows you to define your infrastructure and platform through code constructs, and deliver it through automation. The emergence of cloud deployments (especially hybrid cloud /on-premise deployments) make it more important than ever to keep your environments and configurations consistent across your delivery pipeline.
6. MANAGE & TROUBLESHOOT
Another critical element for the rapid delivery of new initiatives and updates is a configuration console that gives your operations and support teams a real-time, in-depth view of the technical configurations of their environments. The console enables them to detect and manage changes to your environment configurations from a central control panel.
The best automation tools have configuration consoles that include the ability to:
- Detect and prevent issues before they happen
- Compare environments, detecting changes automatically
- Provide detailed reports on the configuration drift and other changes
- Compare multiple environments with configuration snapshots
- Uncover and eliminate operational process inefficiencies
- Align your Oracle platform with your organisation’s software configuration management (SCM) DevOps and Continuous Delivery Frameworks.
Advanced tools like this are an important part of early detection and mitigation of problems in configurations and applications, and they help to detect and fix the majority of issues before they reach production.
7. CHANGE YOUR CULTURE
Embracing DevOps can be a tough challenge for some organisations, because taking on new ways of doing things is always uncomfortable. DevOps principles also advocate close co-operation between Dev and Ops teams, which are often sequestered from each other by solid walls.
The good news is that most of the obstacles standing in the way to culture change are organisational, and it really comes down to people getting to know and trust each other, instead of apportioning blame for failures. In a DevOps environment, teams learn to collaborate and people learn to trust each other. Obviously management must encourage, reward and support that process.
The proof lies in the pudding. In a way, configuration change management and drift detection are alarm systems, that show where the failures are, be they process inefficiencies or team members falling back on old habits. Either way, the fewer the alarms, the greater the harmony between teams, and that can only be good for building bridges, DevOps and the business overall.
After a while, we’ve seen bridges grow by themselves. We’ve also observed that the greater the cohesion between Dev and Ops teams is, the greater the business value of the delivered solutions and capabilities will be. The full benefits of DevOps are realized down the track, when its concepts become Business As Usual (BAU).
For more about the challenges that face many organisations and how to overcome them, read our Blueprint for Continuous Delivery & Automation of Oracle.