Two of the newest DevOps tools that are gaining in popularity are Terraform and Spinnaker. They are similar in that they both work with multiple cloud providers. Terraform is similar to AWS Cloudformation in that you can use it to provision servers and network resources but not just with AWS but with other cloud providers and in data centers as well..
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 do many steps manually or by using 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 common CI/CD tools such as Jenkins, SonarQube and Artifactory but adds an additional layer of automation making it possible 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 huge volume of CI/CD pipelines but both large and smaller organizations can benefit from the automation that Spinnaker brings.
What is Terraform?
Terraform is an infrastructure as code (IaC) tool that allows developers and SREs to build, change, and version infrastructure safely and efficiently. The provisioning done by Terraform includes all components from compute instances, storage, and networking, to DNS entries, SaaS features, etc. Terraform can run on existing service providers or a custom built solution as well.
Terraform Key Features
- Infrastructure as Code : Terraform helps describe a infrastructure using a configuration language in human-readable, declarative configuration files. This allows you to create a blueprint that can be shared and reused.
- Execution Plans : Terraform allows SREs to review , create and destroy changes before making any changes to an infrastructure.
- Resource Graph : Efficient management of resources by modifying non dependent infrastructure. Greater visibility into infrastructure.
- Change Automation : With minimal human intervention changes can be applied to infrastructure. this is done by resecting dependencies so that nothing breaks with each change implemented.
What is Spinnaker ?
Spinnaker is a multi-cloud continuous delivery platform for releasing software changes. It is designed to increase release velocity and reduce the risk associated with updating applications. Spinnaker is used in production by thousands of organizations around the world to automate their software delivery process, and used by developers, testers, SREs to deploy hundreds of changes a day.
Spinnaker Key Features
Spinnaker is supported by a large community including AWS, Google, Azure, Oracle, SAP, Cisco, Netflix, etc. Spinnaker is a Linux Foundation project, and CD Foundation executes the product roadmap and strategic initiatives. some of the key features are as below.
Can we Compare Spinnaker and Terraform?
Terraform is for Provisioning whereas Spinnaker is for Continuous Deployment
Terraform has become one of the most popular provisioning tools. Spinnaker is a Continuous Deployment Tool. It provides the ability to manage continuous deployment pipelines with multiple deployment strategies and the ability to roll back easily to previous versions. Terraform does an excellent job of provisioning the initial environment. Spinnaker can then take over to manage the software deployment process.
Terraform – Infrastructure as Code
Terraform uses an infrastructure code approach to provide effective, reusable, and safe infrastructure provisioning automation. This approach enables operators to increase their productivity, move quicker, and reduce human error. Terraform Enterprise does add Workspace Management and UI (shown below) although this is not included with the free version of Terraform.
Spinnaker – Continuous Deployment
- 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. Spinnaker also provides excellent monitoring and logging capabilities.
- 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 offers native support for basic and advanced deployments without the need for custom code and scripts.
- 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 offered by other CI/CD tools.
Both Terraform and Spinnaker support many cloud providers
Both Terraform and Spinnaker have Cloud Support for many Cloud Providers. Both have support for Google Cloud, AWS, Azure, Kubernetes, and Openshift.
Terraform and Spinnaker are Complementary
Spinnaker can be used alongside Terraform in cases where either Spinnaker doesn’t have native support yet (like Bare metal provisioning) or Terraform is used as a provisioning tool whereas Spinnaker is used as a deployment tool.
Terraform scripts when promoted to production are mostly manual handovers in organizations today. Spinnaker seamlessly automates these handovers using triggers and pipeline expressions. Terraform has drivers to configure common application platforms like Apache web servers which makes it simpler for deployment to a test environment. However, in production deployments, this introduces risk as it makes it harder to rollback config changes.
We would love to hear your feedback on this topic, please leave us a comment below.
This blog was authored by Henry Kendall
If you want to know more about Spinnaker or request a demonstration, please book a meeting with us.
OpsMx is a leading provider of Continuous Delivery solutions that help enterprises safely deliver software at scale and without any human intervention. We help engineering teams take the risk and manual effort out of releasing innovations at the speed of modern business. For additional information, contact us