Jenkins and Spinnaker: An Honest Comparison
Spinnaker was never intended to be a build tool. Spinnaker takes advantage of existing build tools like Jenkins to start jobs and monitor their progress.
Join the DZone community and get the full member experience.Join For Free
Many organizations are using a combination of Jenkins and a tool like Ansible, Puppet, Chef, or Salt to automate their CI/CD pipelines, but find themselves having to take many steps manually or use a series of scripts that can be hard to maintain. Many organizations manually move software from Development to Staging to Production with time-consuming manual processes. Spinnaker can fully automate these processes. Spinnaker can fully integrate with standard CI/CD tools such as Jenkins, SonarQube, and Artifactory, but add a layer of automation to automate software deployments to Development, Staging, and Production, eliminating many manual steps. Spinnaker also automates the creation of Canary Analysis and Blue/Green environments. Many large organizations, including Netflix and Google, use Spinnaker. Spinnaker was developed at Netflix and Google to automate their massive volume of CI/CD pipelines, but both large and smaller organizations can benefit from Spinnaker’s automation.
Jenkins is for Continuous Integration. Spinnaker is for Continuous Deployment
Jenkins is currently the most popular Continuous Integration Tool. It has an extensive community with a large catalog of plugins available. However, it is not ideal for continuous delivery because of the following reasons:
- Script-based deployments: To create deployment workflows, stages, and deployment strategies developers need to write scripts and maintain those scripts. And this model is not scalable.
- Taxing plugin management: There are many plugins available in the Jenkins market place, however, handling all dependencies needed to make the plugins work and keeping track of plugin versions can often make the overall pipeline brittle.
- Manual Verification and Slower Approvals: With Jenkins, the process of identifying the risk of release at various stages of software delivery and approving pipeline progression is time-consuming and erroneous. Moreover, it does not provide the health status of new deployments, which further increases the risk of production downtime,
- Limited Visibility: Jenkins provides limited visibility to the build stage only. It does not give insights into various pipeline executions in an organization, making collaboration and improvements of the CI/CD process very difficult.
Spinnaker is a Continuous Deployment Tool. It provides the ability to manage continuous deployment pipelines with multiple deployment strategies and to easily roll back to previous versions.
Spinnaker Is Not a build Tool
Spinnaker was never intended to be a build tool. Spinnaker takes advantage of existing build tools like Jenkins to start jobs and monitor their progress and results. Spinnaker can make the deployment phase much more flexible. The Jenkins pipeline can extend beyond CI to CD, but this functionality was more of an afterthought. Jenkins was never designed for cloud deployment, so there is a need for external scripts to move the process forward.
Spinnaker Offers Built-In Support for Creating Load Balancers, Resizing Clusters, and Rollbacks
Spinnaker was built to combine CI and CD for streamlined, multi-cloud deployments. Spinnaker offers built-in support for doing things like creating load balancers, resizing clusters, and executing rollbacks. Spinnaker provides native support for basic and advanced deployments without the need for custom code and scripts.
Spinnaker Provides Visibility Into Your Entire Deployment Pipeline
Spinnaker has an all-in-one dashboard that allows you to monitor compilation, baking, deployment, and resource management for multiple cloud environments. Spinnaker combines all the capabilities of existing deployment and management tools into a cohesive, cloud-agnostic package. Jenkins needs extra help to take an application from package to production.
Spinnaker Supports Comprehensive Set of Cloud Providers
Jenkins lacks capabilities as a complete deployment tool, especially for the cloud. Spinnaker has a richer deployment model with a master dashboard and native support for major cloud providers. Spinnaker still relies on a build server and must integrate with tools like Jenkins. Spinnaker cannot replace Jenkins as a CI tool, but Spinnaker can make the deployment to the cloud process much more straightforward.
Spinnaker Supports Built-in Deployment Strategies
Spinnaker offers built-in deployment strategies like blue-green, canary, rolling updates, and Highlander. Also, Spinnaker’s automated Canary Analysis capabilities far surpass any features provided by Jenkins.
What About the New Jenkins Capabilities?
A Blue Ocean plugin has been added to Jenkins for a more modern visual pipeline composition and as Continuous Delivery tool, but it lacks Spinnaker’s richness. Jenkins X has also been developed to support Kubernetes. Jenkins X provides developers a better way to automate their CI/CD process for Kubernetes than Jenkins alone but still lacks the Spinnaker deployment model’s capabilities. Spinnaker is also a proper multi-cloud deployment tool with the broadest support for deployment environments and continues to expand.
If you want to learn about Jenkins vs. Spinnaker in detail, visit the webinar Jenkins to Spinnaker: Shift your Continuous Delivery
Published at DZone with permission of Gopinath Rebala. See the original article here.
Opinions expressed by DZone contributors are their own.