Critical Enablers for Continuous Delivery and Release Automation
Businesses are in the midst of a radical shift in IT process and mindset, often described as a digital transformation. Increased competition among businesses is forcing IT teams to change the way they operate or lose their competitive advantage.
Businesses across industries need to deliver higher quality software faster and meet ever-growing market needs. Among other areas, this can encompass:
- Custom application development
- Internal and external system integration
- Packaged application customizations
- Cloud implementations, including IaaS, PaaS, and SaaS
- Architectures and technologies such as Microservices, Containers, and Serverless
For every situation, speed and quality are critical, but difficult to achieve with many traditional development practices. Agile and Continuous Delivery are changing all of that with faster release deliveries and feedback cycles. DevOps practices and tools help make such a shift possible.
Continuous Delivery means IT teams are constantly churning out new software to end users, instead of releasing infrequently, with large chunks of time between each release. DevOps helps companies get that software to market faster, with fewer errors and lower support costs. DevOps tools, including open source and commercial options, provide more efficient ways to develop and deliver software.
Download the Data Sheet
|Extremes from a complete lack of tools to a mess with tool sprawl. The result in either case is complexity and a lack of consistency and repeatability.|
|Significant time spent knitting together tools, scripts, and manual processes, resulting in slow, high-cost, and error-prone software delivery.|
|Lack of visibility across the Build, Deployment, Testing, and Release processes, causing Dev and Ops team to spend too much time on infrastructure/plumbing versus delivering applications.|
|High cost of software and supporting environments due to licensing costs, administration time, upkeep, and a lack of best practices.|
|An automated, integrated, and repeatable delivery process from provisioning and configuration management through the build/deploy/test/release process. Simplicity drives efficiency.|
|Scripting and manual processes are significantly reduced and often eliminated, increasing the speed and reducing errors, outages, and cost.|
|Integrated and comprehensive toolchain ensures visibility and continuous feedback across all aspects of solution development and delivery. Improved visibility results in troubleshooting optimization through compliance and audit effectiveness.|
|Simplicity of the DevOps toolchain reduces the cost of implementing and supporting the overall software delivery lifecycle and support.|
According to a study by RightScale, 84 percent of enterprises had adopted DevOps processes by 2017, but far fewer were using DevOps tools. In the study, even the most popular DevOps tool was only used by 35 percent of businesses, indicating a large opportunity for businesses to further improve their development processes.
Benefits of DevOps Tools
In the relatively short time since DevOps has gained popularity, many different tools have emerged to help support the DevOps way of working. DevOps tools provide a range of benefits, including:
- Reducing manual tasks
- Reducing errors and other quality issues
- Speeding up software delivery timeframes
- Supporting development processes such as agile, continuous integration, continuous delivery, and continuous deployment
- Improving visibility and insight into changes
- Supporting more streamlined controls and governance
The benefits of DevOps tools often come from specific functionality, such as automation and security, which are used to improve the way IT and development teams deliver software. The benefits are compounded when the tools used to support the end to end process are integrated and orchestrated across the toolchain.
How DevOps Tools Fit into the Software Delivery Lifecycle
Ultimately, no tool will make a company “DevOps” compliant, which is more of a cultural and process shift supported by the enabling tooling. Rather, DevOps tools support the processes that DevOps champions; Continuous Integration, Continuous Delivery, Release Automation, etc.
DevOps tools play different roles across the software delivery lifecycle. Also known as the system or application delivery lifecycle, software delivery encompasses the key phases of creating, maintaining, and enhancing software. The main stages in the iterative lifecycle are: Plan, Code, Build, Test, Deploy, Release, Operate/Monitor.
Uncover what activities fit into each stage of the software delivery lifecycle and which tools provide the greatest business value for your organization.
Open Source and Commercial Development Tools
There are two categories of DevOps tools that enterprises can use: open source and commercial. Most companies use a combination of open source and commercial tools to establish an effective toolchain, bringing together a set of options that works for their unique landscape.
Open Source Tools
Open source software is developed, updated, and maintained by a community of volunteer developers who modify the product and work as a team to decide on the product roadmap based on the needs of the community. These options are generally free and community supported. Most focus on a specific stage of software development by helping teams create and test code or automate its deployment. Some open source tools span multiple steps of software delivery lifecycle.
Because of their availability, many open source tools have gained wide adoption in the marketplace. A few of these include Jenkins, Puppet, SoapUI, and Docker. Each of these tools can be used in conjunction with broader DevOps platforms to create a more complete solution.
Commercial tools, on the other hand, are created, maintained, and supported by a for-profit company, and require a license (typically paid) for use. Like open source tools, there’s a wide range of commercial tools. Most of these tools focus on isolated stages or technologies in software development and delivery, working with other commercial platforms or open source tools to provide complete functionality.
Commercial DevOps tools are sometimes preferred over open source tools because they’re supported by the vendors that provide them. They’re generally more feature rich and have formal processes for support and maintenance, which can lower barriers to use for many organizations. Examples of commercial DevOps tools include Atlassian’s Jira, JFrog Artifactory, Flexagon’s FlexDeploy, and XebiaLabs’s XL Release.
Plugins and Integrations
DevOps tools don’t function alone. They utilize plugins that provide automation for different technologies and integrations that allow them to communicate with other systems and tools across the toolchain.
Plugins and integrations can function with supplementary software like other DevOps tools, or they can work directly with the system that’s being developed. For example, Oracle E-Business Suite (EBS) and MuleSoft plugins can automate software deployment for those products, while Jira, and ServiceNow integrations connect different DevOps tools to one another.
DevOps Tools and the Three Pillars of Delivery
The software delivery lifecycle is not always linear. Some stages in the lifecycle, such as testing, run throughout the entire process, while others are repeated as necessary based on the results of testing. Iteration and continuous feedback are critical.
Whether using tradition waterfall or agile methods, there’s a discovery stage where teams gather information about problems in the current software as well as customer needs and requests. Teams prioritize and plan new development based on this information. Once the team has a plan, they move into the three pillar phases that many DevOps tools revolve around: Build, Deploy, and Release.
In the Build stage, developers have code, configurations, and other changes which have been created to fix a problem or enhance software with new capabilities. These changes need to be packaged up and versioned prior to being deployed into a test or production environment.
DevOps tools in the Build stage:
- Compile source code from multiple developers
- Create complete software packages
- Process multiple builds simultaneously to help scale and avoid long queues
- Support continuous integration with automation and workflows
- Include artifact repositories to store packages of code, images, and configurations
Open Source Build Tools: Maven, Gradle, Jenkins, Travis CI, Junit, Ant
Commercial Build Tools: Flexagon FlexDeploy, Atlassian Bamboo, Nexus, UrbanCode Build
After code is combined into a complete package, the new functionality is deployed into test environments. These environments allow tests to be run on the new code to see how it performs in different situations.
DevOps tools for the Deploy stage:
- Automate software deployments
- Track and report on deployment status
- Provide rollback functionality to revert to a previously working state if needed
- Orchestrate manual and automated testing in conjunction with testing tools and workflows
Open Source Deploy Tools: GoCD
Commercial Deploy Tools: Flexagon FlexDeploy, Octopus Deploy, UrbanCode Deploy
The final pillar in the software delivery lifecycle, Release coordinates the deployment of new code into production. In many cases, Release features help orchestrate the entire lifecycle, from plan through operation/monitor.
- Orchestrate and Coordinate end-to-end software delivery
- Automate software releases
- Track and report on release status
- Inject governance and controls
Open Source Release Tools: Spinnaker
Commercial Release Tools: Flexagon FlexDeploy, Plutora Release, AWS CodePipeline
Comprehensive Build, Deploy, and Release DevOps Tools
Most open source and commercial DevOps tools cover one or two stages of the software delivery lifecycle, either natively or via integrations with other tools. Comprehensive DevOps tools cover all three pillars of the software delivery lifecycle. They include functionality for the Build, Deploy, and Release stages, as well as incorporating more advanced pipeline management that spans all three stages.
While fewer in number, comprehensive DevOps tools can be hugely beneficial to users. A comprehensive tool will provide all the benefits of other DevOps tools as well as:
- Reducing tool sprawl
- Cutting platform costs
- Bringing teams into a single platform to improve collaboration
FlexDeploy is one example of a comprehensive DevOps platform that not only covers all three pillar stages natively, but also integrates with and orchestrates other tools throughout the larger lifecycle. It includes built-in functionality for Build, Deploy, and Release, along with integrations that ensure users have access to any existing or additional tools they prefer to use.
DevOps Tool Pricing and Expansion
Open source tools are free (not counting implementation costs), while licenses for commercial solutions can easily range from $15,000 to $150,000 per year or more.
To keep costs down, some providers will cut costs for users who don’t need plugins and integrations, ensuring that you pay for only what you need.
As DevOps continues to increase in popularity, you’ll likely see the price range and tool options increase. Platforms that play across the lifecycle, orchestrating and integrating multiple DevOps tools, will become more sophisticated as they compete with new and established tools on the market.
For more information on DevOps tools, plugins, and benefits, check out our other resources.