Yahoo is releasing the tool that helped the company perform Continuous Delivery at scale into the open-source community. The company announced Screwdriver.cd, an adaption of its Continuous Delivery build system for dynamic infrastructure.
“Screwdriver handles over 25,000 builds per day and 12,000 daily Git commits as a single shared entry point for Yahoo,” wrote James Collins, senior director of engineering at Yahoo, in a blog post. “It supports multiple languages and handles both virtual machine and container-based builds and deployment.”
(Related: Testing lags in agile development shops)
According to Collins, Screwdriver has helped Yahoo make deployment pipelines easier by allowing developers to configure pipelines in a familiar way, optimize for trunk development by running functional tests in pull requests, and simplify rolling back by leveraging PaaS features and storing metadata.
The solution’s architecture is made up of four components: a front end that brings content to the user; a stateless API to manage user interactions and build operations; execution engines such as Docker Swarm and Kubernetes; and a launcher that executes and monitors commands.
Going forward, the company plans to expand Screwdriver with the ability to store structured build data, provide built-in metric collecting, offer system-wide templates, and feature log analysis in order to give developers more insight into their Continuous Delivery process.
“Continuous Delivery enables software development teams to move faster and adapt to users’ needs quicker by reducing the inherent friction associated with releasing software changes,” wrote Collins. “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.”