Product
|
Cloud costs
|
released
September 27, 2021
|
3
min read
|

5 Best Software Deployment Tools to Consider

Updated

When implementing new software deployment tools, there’s much to consider. Different companies/teams have different goals, and if you’re planning for the long-term, you’ll need a tool that will scale with you as you grow. For instance, does it have the governance and security features you need in the immediate future, but also ones you know will be required once your company goes for that SOC 2 compliance audit? Building with the future in mind is paramount.

With that in mind, we’ve reviewed a few software deployment tools to help you in your research. In this blog post, we’ll go over both paid and open-source tools. Choosing the right software deployment tools can be hard, and hopefully we can make it a little easier for you and your team! Note: These tools are not ranked in any order of preference.

Software Deployment Tools: Harness Logo

Tool #1: Harness

Harness is a modern software delivery platform that offers Continuous Integration, Continuous Deployment, Feature Flags, and Cloud Cost Management

Harness Continuous Integration was created to reduce the time, effort, and administration for building new artifacts. The solution makes this happen by using machine learning to optimize the number of tests needed during the build process. The software development process can be tricky enough, CI shouldn’t become an additional worry. 

Harness was founded on Continuous Delivery roots and that still remains one of the company’s cutting-edge products. It leads the pack when it comes to governance with fine-grained RBAC, full audit trails, and proprietary integrated secrets. It’s also worthy to note the incredibly easy installation, which reduces time to value considerably.

Harness Feature Flags helps manage releases by letting developers, marketers, managers, and other company leaders to instantly switch features on and off in production. This allows for easy A/B testing and can drastically increase deployment velocity. Feature flags are quickly becoming a key part of the software deployment process. 

Harness Cloud Cost Management gives users instantaneous visibility into the cost coming from their chosen cloud service. It also lets users automatically control or stop resources that were accidentally over provisioned or left running. 

The great thing about Harness is its à la carte model. Teams are free to pick Harness modules without purchasing the entire platform. Every Harness product is developed to be standalone in quality and functionality.

Key Software Delivery Features:

  • SaaS or on-prem.
  • Machine Learning to reduce task repetition.
  • Advanced governance to increase security.
  • Out-of-the-box canary and blue-green deployments.
  • Automated deployment verification.
  • Automated rollback of failed deployments.
  • Multi-cloud deployments from a single pipeline.

Missing Software Delivery Feature:

  • OPA support not yet available (coming soon).
Software Deployment Tools: Argo CD Logo

Tool #2: Argo CD

Argo CD is an open-source Continuous Deployment solution that provides Kubernetes-first support. It follows Git-based workflows to automate the deployment of services within Kubernetes. As a Kubernetes controller, it ensures your resources’ current state matches your desired or specified target resource state. It can be found on GitHub under argoproj. 

Argo CD leverages what’s called the Argo GitOps Engine, an open-source library that implements core GitOps features, allowing you to manage, automate, audit, and understand your software deployment life cycle. Argo CD is one of the more robust software deployment tools out there.

Key Software Deployment Features:

  • Automated deployments of applications to specified target environments: Users can leverage Argo CD to apply any changes needed to their Kubernetes environment such as a helm chart or application deployment. This allows users to easily manage multiple Kubernetes resources. 
  • Health status analysis of application resources: Argo CD does a good job of visually letting users know the health status of the application. It allows you to know if a pod is failing, needs to be pruned or if it is functioning properly in a healthy state. Argo CD also has automated configuration drift detection and visualization.
  • Web UI that provides a real time view of application activity: Argo CD has an easy-to-use UI that is very intuitive to use. This allows great visibility for users to see the real-time status and activity of an application.

Missing Software Deployment Features:

  • Managing Argo CD: Open-source solutions are a great way to get started but as technology continues to advance, it often doesn’t scale for software delivery solutions. An Argo CD installation is required in every Kubernetes cluster and updates are self-managed so teams will need to dedicate resources to this task.
  • Governance: Security and governance are important when it comes to CI/CD. There is no built-in Argo CD support for encrypting secrets. RBAC and SSO are also not linked, so administrators of the solution will have to control access and define user groups without leveraging user data provided by the SSO provider.
  • Not Agnostic: Argo CD does not support non-Kubernetes workloads. Users may also be challenged by automating the responsibilities and requirements needed after an application or service deployment. This includes verification and incident management. Rollbacks are manual in Argo CD, and there are capabilities of auditing changes made within Argo. Since Argo works on the GitOps model, changes are all committed to a git repository. This means your playbook for handling incidents may need to include additional enablement and integrations to automate many of the post-deployment activities.
Software Deployment Tools: GoCD Logo

Tool #3: GoCD

GoCD describes itself as a free and open source CI/CD server, allowing you to easily model and visualize complex workflows. It provides end-to-end pipeline visualization, cloud-native deployments, complex workflow modeling, and advanced traceability.

While these features are important to creating good CD pipelines, if compared against the basic capabilities of a modern CD tool and what else is available, GoCD ends up being one of the run-of-the-mill software deployment tools currently on the market. 

Key Software Deployment Features:

  • End-to-End Visualization: Shows the entire path from build to commit to production in a single view to allow users to navigate across jobs, spot inefficiencies, and optimize processes.
  • Cloud-Native Deployments: Streamline CD workflow on common cloud environments such as Kubernetes, Docker, and AWS.
  • Complex Workflow Modeling: Parallel execution, dependency management, CD workflow modeling constructs.
  • Advanced Traceability: Troubleshoot broken pipelines with audit trails and diffs.

Missing Software Deployment Features:

  • Automated blue-green and canary deployments.
  • Advanced governance for security and compliance.
  • Automated deployment health checks.
  • Automated rollbacks in case of failure.
Octopus Deploy Logo

Tool #4: Octopus Deploy

Octopus Deploy is a software solution for managing releases and automating deployments. In addition, it has runbook automation capabilities. From a release management perspective, Octopus Deploy helps teams understand what versions are released and what environments they were deployed to.

Looking at deployment automation, Octopus Deploy comes with 450 templates. Octopus Deploy uses variables in their deployment pipelines so you can use the same process in dev, test, and production environments. Additionally, Octopus Deploy supports advanced deployment patterns, including rolling, blue/green, canary, and multi-tenancy.

The last major capability of Octopus Deploy is runbook automation. Using this capability, it’s possible to automate operations tasks like routine maintenance and emergency incident recovery. These runbooks include all the necessary permissions so anybody on the team can be granted permission to execute the runbook.

Overall, Octopus Deploy is one of the solid software deployment tools out there, with a strong feature set and support for modern as well as legacy environments. As with every tool, there are some important features that Octopus Deploy fails to deliver on. Notably, automated deployment verification and automated deployment rollback are completely missing. For even more detail about Octopus Deploy, you can read our article on Best Octopus Deploy Alternatives & Competitors.

Key Software Deployment Features:

  • SaaS or on-prem.
  • Over 450 automation step templates.
  • Automated approval steps.
  • Advanced deployment patterns.
  • Proprietary secrets manager.

Missing Software Deployment Features:

  • Complex and lengthy configuration of custom steps for integration with popular secrets managers like Hashicorp Vault.
  • No automated deployment verification.
  • No automated rollback after failed deployments.
AWS CodeDeploy

Tool #5: AWS CodeDeploy

AWS CodeDeploy is a fully managed deployment service that automates software deployments to a variety of compute services such as Amazon EC2, AWS Fargate, AWS Lambda, and your on-premises servers.

Amazon seems to have a service for just about everything these days. It makes sense that they have a software deployment tool to ensure that you’re using as many AWS services as possible. According to Amazon, AWS CodeDeploy is platform and language agnostic, so it works with any application (although there is a requirement for your on-prem instances to connect to AWS public endpoints). There also does not appear to be any support for deploying to other cloud providers, like GCP and Azure, so the “platform agnostic” claim needs to be carefully considered.

Key Software Deployment Features:

  • Deployments to AWS or Data Center.
  • Rolling and blue-green deployment patterns.
  • Integrates with EC2 autoscaling.

Missing Software Deployment Features:

  • SaaS only, no on-prem version.
  • No multi-cloud deployments.
  • No advanced Governance, including RBAC.
  • No native Canary deployments.
  • No advanced deployment customization.
  • No automated rollbacks.

Tools We Don’t Recommend

Spinnaker Logo

CD: Spinnaker

Spinnaker, originally created by Netflix, is a CD platform that simply has too many problems for us to recommend. We went over them in our Spinnaker Alternatives post, but to recap: it’s on-premise only, lacks native secrets management, doesn’t provide traditional app support, and has been referred to as “a nightmare” to set up and configure. It just doesn’t seem worth the effort.

Jenkins Logo

Legacy CI: Jenkins

Jenkins is the most well-known open-source tool that is used for both Continuous Integration and Continuous Deployment. Since it is an open-source automation server, it is free to use for all and there is a huge community following which leads to extra support, documentation, and features. This continuous integration server/tool is a self-contained Java program that is platform-agnostic. It is available for most major operating systems such as Linux, Windows, and MacOS.

We usually put Jenkins in this list since it’s a decade old, isn’t cloud-native, and frankly relies on too many plugins to extend what it can do. We don’t feel comfortable recommending a product that relies so heavily upon added extensibility. It was also designed to be a Continuous Integration tool, and engineers must rely on scripts to extend it into Continuous Deployment. It’s not worth it.

GitLab Logo

Modern CI: GitLab

GitLab, originally a source code management tool based on Git (like GitHub and Bitbucket, for reference), introduced a CI/CD solution to their product suite. They support container orchestration tools, such as Kubernetes and ECS, and they support all 3 major cloud providers (GCP, Azure, AWS). In terms of infrastructure, GitLab recently released a Terraform integration. The platform also offers good governance and compliance features available on their enterprise-level plans. As far as languages go, GitLab aims to support every language, old and new – including PHP, Go, Ruby, .NET, Java, JS, and more. 

GitLab qualifies themselves as a CI/CD platform, but CD is achieved by extending CI with scripts - it’s not entirely a ‘platform’ in the true sense of the word. Additionally, there is definitely a learning curve to utilize the tool. GitLab doesn’t have any deployment verification capabilities, but can integrate with tools such as Prometheus for monitoring and observability purposes. GitLab also lacks native secrets management capabilities, but integrates with HashiCorp Vault. 

A Note on Using CI Tools for CD

We don’t recommend using CI tools for deployment. GitLab and Jenkins are prime examples of this. When you take a tool that was meant for CI and slap CD onto it, you’re severely limiting yourself and causing more pain than you need to. Here’s why. 

Software deployments require many different skill sets to be applied together in order to achieve success, especially for advanced deployment patterns like Canary deployments. To achieve a successful Canary deployment, infrastructure must be provisioned, software deployed, network routing rules changed to shift a percentage of users to the new software, health and performance of the new software verified, rollback processes defined and potentially executed, etc… until either the new release has been fully promoted or rolled back. CI tools don’t have all of this built in. Instead, you must define every step manually, which requires the right knowledge, significant time, and often a lot of trial and error. Why not make things easy and use software deployment tools that have predefined templates and already know how to perform all of these steps?

This same thought process can be applied to CD-specific features like automated deployment verification and automated rollback. CI is not CD. They require different feature sets to be done right.

Try a Better Software Deployment Tool

Are you looking for a software deployment solution that’s simple and self-service? Harness’ software delivery platform packs a punch with modules for Continuous Integration, Continuous Delivery, Cloud Cost Management, and Feature Flags! Why not schedule a demo with Harness to see if we’re the right fit for your DevOps and Engineering teams? 

Sign up now

Sign up for our free plan, start building and deploying with Harness, take your software delivery to the next level.

Get a demo

Sign up for a free 14 day trial and take your software development to the next level

Documentation

Learn intelligent software delivery at your own pace. Step-by-step tutorials, videos, and reference docs to help you deliver customer happiness.

Case studies

Learn intelligent software delivery at your own pace. Step-by-step tutorials, videos, and reference docs to help you deliver customer happiness.

We want to hear from you

Enjoyed reading this blog post or have questions or feedback?
Share your thoughts by creating a new topic in the Harness community forum.

Sign up for our monthly newsletter

Subscribe to our newsletter to receive the latest Harness content in your inbox every month.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Continuous Delivery & GitOps