Yahoo adds Screwdriver to devops toolbelt

Yahoo's internal continuous delivery system makes its open source debut, joining a crowded field

Yahoo adds Screwdriver to devops toolbelt
blickpixel (CC0)

It's become a tradition for big names in IT to open-source bits of their infrastructure: Google with Kubernetes, Facebook with React and RocksDB, and many others.

Now it's Yahoo's turn. The web portal has open-sourced the build system it uses "to enable continuous delivery to production at scale for dynamic infrastructure," as put in a blog post.

Screwdriver is a collection of services that simplify continuous delivery by using software technologies that are likely already in use in an organization. A project's production pipeline is defined by a YAML file in the project itself, rather than in an external dependency. Code from GitHub or Bitbucket can be pulled and built automatically, or Screwdriver can be notified to perform actions on code if it receives a notification from those services via a webhook. Once built, the software can be run by a defined execution engine.

Most subcomponents used by Screwdriver can be defined by a plugin: the source control, the database used for the internal datastore, the execution engine, and so on. Right now, the list of available plugins is small. The execution engine, for example, has  only Docker Swarm, Kubernetes, Mesos, and Jenkins plugins. (According to Yahoo, Screwdriver was originally created more or less as an abstraction layer for Jenkins, but outgrew that function.)

Yahoo claims that Screwdriver has helped it ease deployment and pipeline management. Aside from being able to define the pipeline with code in the project itself, there's also the ability to run different phases of the pipeline in previous states, so the pipeline can be run from a specific git commit -- a fast method to roll back to a last-known-good version.

Screwdriver is being unveiled at a time when the choices available for CI/CD could scarcely be richer. Aside from the aforementioned Jenkins, many other devops tools have made names for themselves, such as GitLab CI or Atlassian Bamboo. Some are primarily cloud-based, like Bitbucket Pipelines. Others, like the proprietary product Atlas (from the creators of Vagrant), are on-premises. Yahoo's name does confer automatic attention on Screwdriver, but the real test of its value will be in how useful it proves to be outside of Yahoo's walls and in the hands of developers in much smaller organizations.