The IT industry has a tendency to follow fads. We love our buzzwords and discovering new toys to play with. Some of these fads come and go, while others stick around. One that is certainly going to stick around is DevOps.
For those of you unfamiliar with DevOps it is a software development and delivery process that emphasises communication and collaboration between product management, software development, operations professionals and close alignment with business objectives. (Well, that’s what Wikipedia says anyway). In reality it means slightly different things to different organisations but the overruling principle is collaboration and teamwork. And if I learned anything from the Lego movie it’s that “everything is awesome, everything is cool when you’re part of a team!”
As I see it there are 3 pillars to DevOps – People, Processes and Tools. The people are, of course, Developers and Operations, the Processes generally relate to automated, repeatable processes and then finally the Tools required to make it all work.
While a lots of new ventures in the world of IT lean towards replacing people, when it comes to DevOps people are at the core. When you look at the definition you wouldn’t be wrong in thinking it’s a return to the good ole days of the IT ‘Jack of all trades’, but its more sophisticated and interesting than that. Collaboration and teamwork get mentioned a lot with DevOps but I believe it’s also about responsibility and ownership, both collective and individual. So don’t feel like being a specialist developer or database administrator is a negative in the world of DevOps. A better way of looking at it is, instead of being part of a group of specialist developers or DBAs, you are part of a cross-specialist group, consisting of traditional development and operations personnel, collectively taking ownership of a product/project.
Key to DevOps is Continuous Deployment – the fully automated release of software changes. By automating many stages of the software deployment process organisations hope to improve the velocity and veracity of their software releases. In other words – more releases of less buggy software. This in turn will mean “the business” realise the value of software enhancements quicker and have a reduced risk of software-related issues, ultimately making them more agile, flexible and competitive. Well, that’s the perfect world scenario anyway! And the reason why DevOps is here to stay is because that “perfect world” scenario does usually happen.
Tools can be Continuous Deployment orientated – for example, Version Control Software like Git or Subversion and CI servers, like Jenkins or Bamboo, are core to the Continuous Deployment story, as this is where the aforementioned automated processes take place. But there are many other tools that are not Continuous Deployment orientated but still critical to DevOps. These include your application & database IDE’s, your performance monitoring tools, your bug tracking system, etc., etc. So when it comes to tooling up, DevOps is not an off-the-shelf solution. There are a lot of independent tools used at different stages and for different purposes, and these need to be synced up.
Put simply – the database is the problem. This stateless pain in the backside has been largely ignored when it comes to Continuous Deployment. Traditionally it has just been too difficult to incorporate, especially if there is business logic stored in procedures and functions. As mentioned previously, key to Continuous Deployment is automated processes, and automating processes like schema & data compares, unit testing and code reviews of PL/SQL, while integrating with version control systems and CI servers, has not been possible.
Quest have just released the Toad DevOps Toolkit, the tool that bridges the aforementioned gaps that have traditionally made it difficult to bring database development into the DevOps realm. Now with the Toad for Oracle portfolio you can integrate your tools – the version control system, the database IDE and the CI server, while automating all processes, meaning DevOps teams can now fully include database development in their Continuous Deployment Lifecycle.
To learn more check out the Toad DevOps Toolkit @ www.quest.com/products/toad-devops-toolkit