You know a technology trend has become fully mainstream when you see it written up in the Wall Street Journal. So it goes with DevOps, as this recent article shows.
DevOps and continuous delivery have been important trends in many firms for several years. It’s all about building higher quality software products and delivering them more quickly. For SaaS companies it’s an obvious fit as they sometimes push out minor changes many times a day. But even companies with more traditional products can benefit. And internal IT departments can use DevOps principles to start saying “yes” to business users more often.
For example, let’s say that your business analytics team asks for a small Hadoop cluster to try out some of the latest machine learning algorithms on Spark. Saying “yes” to that request should only take hours, not weeks. If you have a private cloud and the right level of automation, you can spin up a new Spark cluster in minutes. Then you can work with the analysts to automate the deployment of their algorithms. If they’re wildly successful and they need to move their new project to a production cluster it’s just a matter of deploying somewhere with more resources.
Of course, none of this comes easily. On the operations side you’ll need to invest in the right configuration and private cloud infrastructure. Tools like Puppet, Ansible, and Docker can capture the configuration of servers and applications as code.
But equally important is the development infrastructure. Companies like Google practice mainline development: all of their work is done from the trunk or mainline, supported by a massive continuous build and test infrastructure. And Gerrit, a tool that Google sponsors, is perhaps the best code review tool for continuous delivery.
If you look at potential bottlenecks in a continuous delivery pipeline, you need to consider how code gets to the mainline, and then how it gets deployed. With Gerrit there are only two steps to the mainline:
- Commit the code. Gerrit makes a de facto review branch on the fly and initiates a code review.
- Approve the merge request. Gerrit handles the merge automatically unless there’s a conflict.
With this system you don’t even need to ask a developer to open a pull request or create a private branch. Gerrit just automates all of that. And Gerrit will also invoke any continuous build and test automation to make sure that code is passing those tests before a human reviewer even looks at it.
Once it’s on the mainline the rest of the automation kicks in, and those operational tools become important to help you rapidly spin up more realistic test environments.
As you can imagine, this type of infrastructure can put a heavy load on your development systems. That’s why WANdisco has put the muscle of Git MultiSite behind Gerrit, giving you a horizontally scalable Gerrit infrastructure.