A new open-source project from Google and Netflix aims to help other companies that want to modernize their application deployment practices but don’t exactly have the same budget and expertise to build their own solution.
Kayenta was designed to be used with Spinnaker, one of Netflix’s key contributions to the DevOps era that lets companies deploy their applications much faster than old technologies allowed. First presented at the Spinnaker Summit last year, it’s a version of a “canary analysis” tool. Like its namesake ancestors in the coal mines, canaries are used in software engineering to detect problems with deployments before they spiral out of control.
“We’re going to try and make software delivery much easier for teams, and not just the tech companies, the big ones (like Google and Netflix),” said Andrew Philips, product manager at Google.
As nearly every company on the planet has realized they need to get much better at developing software (the tech commercials during sporting events call this “digital transformation”), improving the speed at which they deploy their software has become very important lest they be picked off by smaller, nimbler startups. Continuous software development breaks large projects up into smaller pieces and makes it easier to change directions if business or market needs require.
However, this is hard, and Spinnaker was born as part of the master course on cloud-native software development that Netflix taught a generation of software developers. Spinnaker lets you see available hardware resources and specify what should happen at various stages of the deployment process, and Kayenta is a version of the canary analysis tool used in Spinnaker.
“It is a crucial component of delivery at Netflix as it reduces the risk from making changes in our production environment. In addition, Kayenta has increased developer productivity by providing engineers with a high degree of trust in their deployments,” wrote Netflix’s Michael Graff and Chris Sanden, in a blog post.
Most software development teams roll out new applications to a small group of users first in hopes of minimizing the impact of any problems (lots of things can cause problems), which is called a canary release. Canary analysis can detect and assess those problems and then help make a decision about whether or not the new version should be deployed more widely.
Often humans are involved in that loop, but automating the process saves time and focus. Kayenta uses a scoring system to make that decision based on statistical analysis, and it is based in part on what Netflix used internally for its own software development needs.
“(Kayenta) brings along a software delivery pipeline that can be very powerful yet still give you a lot of flexibility about what you want to do with your workloads,” Philips said. It was designed for multicloud and hybrid-cloud use thanks to its heritage in Spinnaker, and supposedly it is easy to add different types of data sources depending on the metrics most important to your app.
Google and Netflix haven’t made any decisions about a governance model for the Kayenta project yet, he said. But future versions are already in the works and Tuesday’s announcement welcomes further participation from individuals and other companies.
This is the upside of the evolution of open-source software development; when two big companies collaborate to release a useful project that would have been much harder for smaller companies to build on their own. But this top-down version of open-source development could also make life more difficult for companies like Armory and DataDog, who offer similar types of cloud-oriented products, although Armory said that it thinks Kayenta is a validation of its bet on Spinnaker as the heart of software delivery in a blog post Tuesday.
(Editor’s note: This post was updated with comment from Netflix’s blog on Kayenta.)