G2 takes pride in showing unbiased reviews on user satisfaction in our ratings and reports. We do not allow paid placements in any of our ratings, rankings, or reports. Learn about our scoring methodologies.
GitHub is where the world builds software. Millions of individuals, organizations and businesses around the world use GitHub to discover, share, and contribute software. Developers at startups to Fort
GitLab is the most comprehensive AI-Powered DevSecOps platform that enables software innovation by empowering development, security, and operations teams to build better software, faster. With GitLab
LaunchDarkly is a comprehensive feature management platform that equips software teams to proactively reduce the risk of shipping bad software and AI applications while accelerating their release velo
Fast, consistent, reliable builds on Google Cloud Platform
Bitrise serves mobile application developers navigating the ever-changing landscape of app development, testing, and app store release. Transcending the boundaries of traditional CI/CD platforms, Bitr
Salesforce Platform is the leading low-code development platform that empowers your team to build and extend your Customer 360 with AI, automation, and data. With the Salesforce Platform, you can exec
Automate your builds and deployments with Pipelines so you spend less time with the nuts and bolts and more time being creative
An enterprise-grade server for teams to share code, track work, and ship software — for any language, all in a single package. It’s the perfect complement to your IDE.
Red Hat® Ansible® Automation Platform is Red Hat's primary enterprise automation product offering., it includes all of the tooling needed for building, deploying, and managing end-to-end automation at
AutoRABIT is the only complete DevSecOps platform for Salesforce developers. Incorporate static code analysis, data security, and CI/CD capabilities to increase the security, release velocity, and qua
Split was recently acquired by Harness® to bring teams the most robust feature management and experimentation solution on the market. Set up feature flags and safely deploy to production, controllin
Vercel’s Frontend Cloud provides the developer experience and infrastructure to build, scale, and secure a faster, more personalized web. By providing the toolkit frontend teams love and delivering gl
The Complete DevOps Platform. CloudBees empowers your software delivery teams to transform your business. CloudBees platform brings together development, operations, IT, security, and business teams t
AWS CodePipeline is a continuous integration and continuous delivery service for fast and reliable application and infrastructure updates.
Copado empowers every Salesforce development team to plan, build, test and deliver applications with speed and confidence by unifying CI/CD pipelines and automated testing on one platform — all powere
Continuous delivery refers to the process of constantly generating deployment-ready code via agile workflows and the quick, efficient automation of repetitive tasks. Continuous delivery tools facilitate this process, enabling development teams to achieve a true DevOps environment. DevOps emerged as the result of companies’ desire to shorten the software development lifecycle. The goal behind DevOps is to create a more responsive development, update, and upkeep strategy, as well as to keep development objectives in constant alignment with business ones. Continuous integration, continuous delivery, and continuous deployment were created to promote more agile strategies on the development side. The theory behind each are as follows:
Continuous integration: Merging all developers’ code into one central repository at regular intervals to avoid code conflicts
Continuous delivery: Keeping code constantly ready for deployment
Continuous deployment: Automatically pushing code updates into production after successfully passing testing
Often, the term CI/CD is used to mean continuous integration/continuous delivery, ignoring continuous deployment, because continuous deployment has become antiquated and exists instead as part of the continuous delivery umbrella. Continuous delivery software facilitates the maintenance of tested and approved code in a deployment-ready state. Once the approved code is ready for deployment, the key lies in whether that code is deployed automatically (continuous deployment) or manually. Continuous deployment necessitates more rigorous testing to ensure nothing broken gets pushed into production, and the potential that bad code can go live is discouraging. Not all continuous delivery solutions include continuous deployment, so companies seeking to avoid the potential pitfalls of continuous deployment should assess their options to ensure the possibility of manual deployment. Regardless, continuous delivery serves up a huge advantage in the form of faster software updates and more responsive upkeep, allowing businesses to remain as competitive as possible.
Key Benefits of Continuous Delivery Tools
While continuous delivery can sound intimidating to a lot of companies, the strategy can be quite beneficial. Continuous delivery—in conjunction with continuous integration—creates a strong, fluid pipeline of unified code production, testing, and distribution. Instead of worrying about intermittent, large updates, companies can quickly crank out small changes to continuously improve their software.
Huge update deployments tend to be painful to release, hectic to track, and difficult to sift through for both businesses and consumers. Continuous delivery strategies allow small, incremental changes that are easier to track (especially in conjunction with configuration management software), troubleshoot, and roll back in the event of a break. Incremental changes are also much faster to redeploy, which saves the effort of going through manual deployment over and over.
Fast feedback cycle — Most continuous delivery software enables deployments to occur automatically once functional testing is successful, meaning businesses get quicker feedback around ideas and changes made to their products. Users will have access to changes as soon as they’re ready, which helps businesses keep a consistent stream of feedback on their product. This helps companies build stronger products in the long run.
Competitive edge — Taking long spans between software updates or add-on releases leaves businesses vulnerable to being overtaken by more agile, responsive companies. With continuous delivery software, the business can keep updates and constructive changes flowing directly into the production environment, resulting in a stronger, more consistent product.
Development (specifically DevOps) teams are the primary users of continuous delivery tools. Software engineers and development team leads, both get a lot of value from these tools, albeit for different reasons. Developers easily launch changes directly into pre- and post-production environments with continuous delivery software, which saves them time. Team leads and managers get a lot of use out of the reports, metrics, and dashboards many of these solutions offer, as they provide higher-level insights into the progress the development teams are making.
The following are the most common features seen in continuous delivery solutions:
Repository connectivity — Continuous delivery software needs access to code repositories to push successfully tested code into production. This software should have the capability to connect with any of a business’ code repositories, automatically passing successfully tested code into preproduction or live product updates.
Deployment-ready staging — Continuous delivery software automatically maintains code in a deployment-ready state. This allows developers to stage their code more quickly and efficiently, and empowers businesses to make changes to their software on the fly as issues or market changes arise.
Role-based task assignment—Beyond outright task automation, continuous delivery software designates the necessary tasks and workflows for a team's unique development cycle. This task designation is role-based and fully customizable so that development teams can build the delivery pipeline that works best for them.
Continuous deployment — Most continuous delivery software allows continuous deployment or automated deployment. Continuous deployment allows companies to push small changes quickly into production, reducing the overall hassle of releasing updates and allowing development teams to focus more on writing quality code.
Deployment tracking — Keeping track of automatic code deployments help teams understand exactly why certain shifts occur, like an increase in user errors or an increase in product use. Continuous delivery tools should document each code push that gets sent to production, allowing users to see exactly how the new code performs. It also shows development teams if a build fails to push to production, which will alert them to a potential issue in the code itself.
Reporting and metrics—At a higher level, continuous delivery solutions should display push metadata, such as the number of deployments going out in a certain time span, what part of a software solution the deployments are targeting, and more. This feature is particularly useful for managers and team leads since it gives them a top-down view of a development team’s performance.
Deployment rollback—This feature is helpful when development teams encounter a problem that testing fails to catch. Some continuous deployment solutions have rollback capabilities, where live code can be restored to prerollout status. This lets development teams work out what went wrong, providing additional insights that can be used to improve pre-deployment testing.
Other features of continuous delivery software: Containers, Databases, Mobile Capabilities, Multi-Environment Capabilities, and Salesforce Capabilities.
Pushing bad code — The fault of this issue lies less with the actual continuous delivery solution and more with a business’ testing practices and test automation. Bad code—code that causes errors, breaks, or crashes—should be caught during the testing process so that it doesn’t create problems in the production environment. If testing practices aren’t strong, continuous delivery solutions end up pushing that bad code into staging and production, which taints the user experience. When implementing a continuous delivery solution, especially one with continuous deployment, it is important for a company to have strong manual and automated tests to catch any bad code before it goes live.
Pushing too many visible changes — Companies, when using continuous delivery as part of their development process, should keep in mind the effect it may have on their user base if visible changes or updates keep appearing every few days or each week. While changes to currently existing issues are often welcome, users may start getting concerned if they keep receiving visual or functional changes at small increments. Consistency is key to both improving the learning curve and maintaining customer happiness, and when a company messes with consistency too much or too often, it risks upsetting its users. Generally, a company will want to avoid doing too many noticeable changes too close together, unless those changes are paired with formally released information to update users about the nature and reasons for the changes.