Implementing Continuous Delivery with Screwdriver

01-20-2017-Screwdriver

Continuous Delivery is the Holy Grail driving many companies to initiate Agile and DevOps programs with the hope for rapid software development, enhancements, and fixes. In a competitive business world, quality applications are a big differentiator between the top organizations and those merely treading water. CD helps enterprises manage their development process in a more efficient manner.

Screwdriver is an application from Yahoo that facilitates Continuous Delivery; the company recently released it into open source status. Let’s take a closer look at the software to see if its features make it worthy of exploration as part of your company’s CD program.

A Closer Look at Screwdriver

Offering scalable continuous delivery, Screwdriver is a tool well-suited for organizations with a widely distributed application infrastructure. Yahoo developed the app for its own array of internal applications. It is possible they are open sourcing it before the company is fully acquired by Verizon.

James Collins, Yahoo’s senior director of engineering commented on the tool’s major advantages. “Screwdriver handles over 25,000 builds per day and 12,000 daily Git commits as a single shared entry point for Yahoo. It supports multiple languages and handles both virtual machine and container-based builds and deployment,” said Collins. Enterprises with large development teams stand to benefit from the application as part of their own CD initiatives.

The application’s architecture is relatively straightforward. A front-end manages handles users input and receives status messages from the rest of the software. The back-end includes a stateless API, which controls and launches builds and other functionality. Docker Swarm is used within Screwdriver to manage environment clusters.

According to Collins, the three main benefits of the application are making deployment pipelines easy, optimizing for trunk development, and to facilitate change rollbacks. Yahoo wanted their trunks shippable, so they leveraged Selenium to handle automated testing as part of Screwdriver’s build process. In short, Screwdriver allows for the efficient management of the build process – an important component of any Continuous Delivery initiative.

Screwdriver has been in use at Yahoo for over five years and is a major part of the company being able to implement CD and DevOps. Collins feels the tool lets programmers fully control the state of an application’s production infrastructure – a key part of the company’s DevOps organizational structure.

The Future of an Open Source Screwdriver

Yahoo is still planning to make enhancements to Screwdriver. These include the storage of build metadata, improved metrics and reporting, system templates, as well as more detailed log analysis. All these features are expected to let companies better refine their Continuous Delivery processes.

With a great proprietary CD-optimized build tool, what prompted Yahoo to release the application to the vibrant open source community? It appears to be an act of charity with a potential benefit to many organizations hoping to implement Continuous Delivery. These companies need to fully explore what Screwdriver brings to the table to ensure they are able to stay competitive with the rest of the business world.

James Collins sums up how Screwdriver enabled CD at Yahoo. “Yahoo’s engineering has modernized as it has embraced Continuous Delivery as a strategy for improving product quality and engineering agility. All our active products deliver from commit to production with full automation and this has greatly improved Yahoo’s ability to deliver products,” said Collins.

Keep returning to the Betica Blog for additional news and insights from the robust world of software development. Thanks for reading!