IT organizations today are faced with the challenge of developing, releasing, and modifying software frequently and easily. Continuous Delivery (CD) is a set of software practices that enables organizations to stand up to the above challenge.
CD is facilitated by toolsets that simplify the various tasks involved in the software release cycle. In this article, let us take a look at some of the common CD tools used by organizations today, across different categories.
- Continuous Integration: This is an important software practice that ensures complete transparency in the software development process. Continuous Integration tools automate the integration of the changes introduced by individual developers into the source code. The following are some of the common tools for Continuous Integration:
- Jenkins: This is a popular, open source, continuous integration tool which can automate continuous build, monitor changes introduced into the source code, and serve as a dashboard where all the individual changes are displayed.
- Hudson: This too is a free tool that works similar to Jenkins. It can be used to monitor the tasks performed by individual team members.
- CruiseControl: This a continuous integration tool that provides a customizable framework for continuous build process.
- Version Control: The software development process progresses in several stages. The source code is gradually improved upon by introducing new features and add-ons. Every time a new change is introduced, a new version of the software gets created. This makes it difficult to keep track of each version of the code. Version Control tools simplify this process. The following are some of the popular tools in this category:
- Subversion: This is an open source software versioning and revision control tool by Apache.
- Git: This is a version control system that can be used to track changes in computer files and to coordinate work among a large team of developers.
- Code Review: The software development process involves a team of developers working together to produce a functioning end product. As the code gets written by human beings, there is ample scope for errors. The code review process is the act of teaming up with one’s fellow coders to check each other’s code for errors. This helps streamline and speed up the software development process. The following are some of the code review tools commonly used:
- Gerrit: This is a web-based code review tool that enables online code review with the help of Git version control system.
- GitHub: This is an online version control repository and hosting service that enables collaboration, code review, and management.
- Stash: This is a code review tool with advanced features that support workflows used by distributed version control systems like Git.
- Configuration Management: During the software development process, the code gets thrown into different environments such as the developer’s laptop, the testing environments, the build and production environments, and finally the users’ laptops. Configuration management helps keep all these environments uniform throughout the development cycle. The following are some of the popular tools:
- Chef: This tool is written in Ruby and supports the automation of the various configuration management tasks.
- Puppet: This is an open source project also available for purchase as a tool for enterprises. It supports the automation of server management and other repetitive tasks.
- Ansible: This is an open source automation tool that supports the automation of configuration management, software provisioning and deployment.
- Dashboards: A dashboard is a platform where information about all the different software development activities is made accessible to every team member. This helps each team member keep track of the all changes introduced and the progress made. This also serves as a common platform where team members can collaborate and notify each other about important tasks. Dashboard also displays the key project-related data and metrics.
- Jenkins: The Jenkins dashboard can be used to keep track of the progress made in each software deployment stage. Plugins can be added to customize Jenkins according to an organization’s need.
- Bamboo: This is a build and test automation tool that displays details about each of the build and testing stages. It can be used to understand the exact status of the software development process.
The above list only comprises of the most popular tools in each category. These tools may not be compatible with every organization’s work culture. Readers must note that working with those tools that are most suitable for your project gives you an edge over your peers.