The debate of Jenkins vs Spinnaker as a Continuous Delivery (CD) tool has been making rounds for quite some time. Many are happy to use them together since Spinnaker has a native Jenkins API to delegate compilation and packaging, but once Jenkins 2.0 was released with an added focus on CD, it became fuzzy how Spinnaker really measured up. So here's a breakdown for you.
Spinnaker vs Jenkins as a build server
First let’s address a common misconception: Spinnaker is not a build server and doesn’t want to be.
In a question asked on Stackoverflow, one user who worked on the Jenkins integration at Netflix explained how Spinnaker was never intended to be build tool. Instead, it takes advantage of existing build tools like Jenkins to start jobs and monitor their progress and results. He added that he doesn’t think Spinnaker can fully replace Jenkins at a compilation level “and the million other things it does”, but it can make the deploy phase much more flexible.
Also read: Getting Smart with Spinnaker Pipelines
While the Jenkins pipeline extends beyond CI to CD, this functionality was more of an afterthought. Jenkins was never designed for cloud deployment and so there is a need for external scripts to move the process along.
In an insightful post on Armory.io, the author Kostis Kapelonis explains how Spinnaker, unlike Jenkins, was built from the ground up specifically to combine CI and CD for streamlined, multi-cloud deployments. As a result, it offers built-in support for doing things like creating load balancers, resizing clusters, and executing roll backs. It also offers native support for basic and advanced deployments without the need for custom code or glue scripts.
A major point in its favor is the all-in-one dashboard where you can keep an eye on compilation, baking, deployment, and resource management for multiple cloud environments.
Image credit: Armory.io blog
So while Jenkins needs some extra help to take your application from package to production, Spinnaker offers all the capabilities of existing deployment/management tools into one cohesive, cloud-agnostic package.
Without a community behind it, no software survives very long. Fortunately, both Jenkins and Spinnaker have strong communities on multiple channels where you can jump in and ask whatever question you may have.
Jenkins offers immediate feedback through their Reddit thread while Spinnaker is open for questions on StackOverflow and their (very active) Slack channel. Both have their own pages on the usual social channels so getting direct help will never be an issue.
Jenkins is still preferred amongst teams for its flexibility and extensive plugin support, but it falls short as a complete deployment tool, particularly for the cloud. Spinnaker, on the other hand, has a richer deployment model with a “master dashboard” and built-in support for major cloud providers.
Granted, Spinnaker still relies on a build server so it must integrate tools like Jenkins, so while Jenkins as a CI tool can never truly be replaced by Spinnaker, you can always use the latter to make the “deploy to cloud” step simpler and more extensible.
Also read: Spinnaker and Kubernetes for CD
If you want to know more about how Spinnaker works and how it can make your deployments so easy that they’re almost boring, register here to join tech leaders from Netflix, Google, AWS, Cisco, and many more at the upcoming Spinnaker Summit this November. If you’re into open source and delivering quality software, this is one event you don’t want to miss.
Follow us on Twitter here for event updates and special ticket sales.