In this guide, we review the aspects of Document Configuration Management Software, what is configuration management tool in devops, configuration management tools in software testing, and version control and configuration management tools.
Document Configuration Management Software
Whether you’re an IT manager, an operations manager or a front-desk receptionist, someone in your organization is likely responsible for managing document configurations. Document configuration management software makes this process easier by ensuring consistent detail across documents. It can also help prevent errors such as misspelled words and incorrect dates—as well as making sure your documents are compliant with any applicable regulations.
This is a detailed list of the best document configuration management tools on the market.
Document Configuration Management (DCM) is the practice of keeping track of all changes made to documents over the course of their lifecycle. It enables you to pinpoint exactly which version went out, who approved it and when, as well as any comments made by users.
This is a detailed list of the best document configuration management tools on the market:
Each one includes free and open source document configurations.
While the tools in this category are all free to use, they come with various limitations. Some tools offer a free version with limited functionality and paid versions that have more features. Other tool providers offer both a paid and a free version of their offerings.
If you don’t want to spend money on an enterprise-grade document configuration management solution, you can use one of the open source options instead—but note that there are still quite a few limitations when compared to their commercial counterparts.
It also includes the top paid-for options.
You can use a free version of the software. Many tools offer free versions, but they may be limited in some ways. For example, the free version of Wrike might only allow you to create projects up to 5GB in size or 100MB per file. If you need more features (such as unlimited storage space), then you’ll need to upgrade your account and pay for it.
Often, if you don’t use all the features available in the paid-for version of software, then you can choose not to pay for it at all and just stick with the free version instead.
We’ve built this list so that you will understand what’s available, what other people choose, and why.
Let’s start with the top 5 document configuration management tools, ranked by popularity.
-  JIRA Service Desk
-  Intercom
-  Wrike (formerly known as Teamlab)
-  Atlassian Confluence (formerly known as Fisheye)
-  Zoho Creator
The first section is a ranked table to help you visually compare features across the different tools.
The first section is a ranked table to help you visually compare features across the different tools. This will help you prioritize your evaluation based on what’s most important to you and your team.
The second section is an unranked list of pros and cons for each tool so that you can get a quick overview of how each tool stacks up against the others in terms of its strengths and weaknesses.
The second section reviews each tool in detail.
The second section reviews each tool in detail. We explain what features it offers, why it is a good option, and include pros and cons. We also explain how the tool can be used and provide examples of use cases for each tool. Finally, we discuss the price point of each product so you can see how much they cost to use on a monthly or annual basis.
The final section offers a set of questions to get your started in choosing the right document configuration tool for your needs.
Here are a few questions to help you determine which document configuration tool is best for your needs:
- What are the features you need? Do you want to be able to create custom fields, define rules and policies, and set up notifications?
- How much do you want to spend? Are you looking for a free or paid version? Will it be used by one person or more than 10 people on your team (or both)?
- How many users will use the tool? When choosing between cloud-based or on-premises software, keep in mind that a cloud solution will require an internet connection while an on-premises solution does not—but may cost more upfront.
- Do I need a free or paid version now and later over time as my company grows in size (so I can hire more developers).
Document Configuration Management Software is meant to make it easier for everyone who touches documents in your organization to do their jobs more effectively by ensuring consistent detail across documents
Document Configuration Management Software is meant to make it easier for everyone who touches documents in your organization to do their jobs more effectively by ensuring consistent detail across documents.
For example, if you have a project plan that has a list of tasks and each task’s status (i.e., planned, in progress and completed), the document configuration management software will check that all project plans that are created in your organization use the same format. You can also set up change control rules so that any new updates or changes made to the master copy will be automatically applied on all copies of the project plan stored in the system.
what is configuration management tool in devops
What is Configuration Management?
In software development circles, configuration management refers to the process by which all environments hosting software are configured and maintained.
Every development pipeline requires multiple environments for multiple purposes – unit testing, integration testing, acceptance testing, load testing, system testing, end-user testing, etc. These environments become increasingly complex as the testing moves towards pre-prod and prod environments. Configuration management is an automated process that ensures the configuration of these environments is optimal.
The configuration of testing environments is critical for the success of testing teams. Accurate configuration makes every resource – servers, networks, data centers, operating systems, IT assets, configuration files – function as they must to facilitate success. These environments must be meticulously managed, and all configuration changes must be tracked to ensure that they are traceable.
Inadequate configuration management can lead to system outages, data breaches, and leaks. Not to mention the fact that bad environments make for improper, incomplete, and shallow tests.
Using Configuration Management is imperative in DevOps infrastructures. Remember, DevOps is about facilitating speed, accuracy, and efficiency. Configuration Management helps to automate mundane maintenance tasks, which frees up dev time for actual programming. This increases agility, both on the part of individual devs and the organization as a whole. At this point, it would be correct to state that Configuration Management is fundamentally necessary for setting up a DevOps-driven framework.
Elements of Configuration Management in DevOps
Like DevOps itself, Configuration Management spans across operational and development activities within an organization. The primary components that comprise comprehensive configuration management are:
An artifact repository stores machine files – binaries, test data, and libraries. Consider it as a database for infrequently used files within an environment.
In a DevOps setup, Continuous Integration practices often create artifacts such as binaries. Think about it: developers are encouraged to push builds to the mainline continually. Each code push triggers a build, which generates a binary. The bigger the project, the more the number of binaries. It is not uncommon to end up with thousands of binaries in the artifact repository. These files don’t always have to be accessed, but they must be kept at hand.
Source Code Repository
The source code repository contains all versions of code. In other words, it is the database of source code used by all developers on a team or project. Apart from storing all the code, it also stores other relevant components – test, build and deployment scripts as well as configuration files.
Now, certain teams or projects may use the source code repo as an artifact repository as well, to store binaries. This, however, is not an ideal practice. When dealing with DevOps Configuration Management, one has to handle a massive number of builds and resultant binaries. Among these numerous binaries, some may need to be stored in specific ways and formats. It is much less confusing if they are stored in a separate artifact repository.
Everything that is readable by humans goes into the source code repository. This does not include software binaries, so store them elsewhere.
Source code repos fall into two categories:
In the former (CVCS) the source code is stored in a centralized location. In the latter (DVCS), the code is stored across numerous terminals accessed by developers. DVCS is usually considered the quicker and more dependable option. Most DevOps teams choose to work with it.
Database for Configuration Management
Data architecture or a database devoted to Configuration Management works across different systems and applications related to said management. This takes into account all the relevant services, applications, servers, and the like.
A database like this is especially useful for Configuration Control and Audit because managers can view and record how systems function before any changes have been made to their configurations.
What should successful Configuration Management deliver?
If all configurations are being adequately managed, it results in a couple of outcomes. Two of the most prominent ones are infrastructure-as-a-code and configuration-as-a-code.
In basic terms, infrastructure-as-a-code (IaaC) refers to the existence of code that automatically prepares the necessary environment so that it is ready for development and testing activities. Needless to say, this is far more efficient than manual preparation.
In this case, the “environment” refers to all the resources required for DevOps operations – servers, networks, everything comprising the IT infrastructure. These details are crafted as a piece of code rather than some formal document. This code pushed to the version control system, becomes the singular mode of defining this environment. It can also be used to update the environment.
Configuration-as-a-code (CaaC), like IaaC, is code that defines the configuration of servers or any computing resources. Again, like IaaC, this code is pushed to a version control system as part of the software deployment pipeline. This automatically sets up the configuration of the relevant infrastructure so that it is ready to develop and test the software in question.
To define configuration, get the parameters to establish the settings that will allow the software to run as expected.
Benefits of Configuration Management
As mentioned in almost every article here, all software tests must, without exception, be performed in real user conditions. Tests must have access to an in-house device lab or a real device cloud that allows them to execute manual testing and automation testing on the latest and legacy devices installed with various real browsers and operating systems.
However, no tests can be conducted in flawed test environments. Configuration Management ascertains if test environments are ready for test executions. Since the software is released in increasingly short timelines, tests have to be more frequently, which means test environments have to be in pristine condition at any point in time. Automated configuration is the only possible option to enable this.
configuration management tools in software testing
If you’re not sure why Software Configuration Management Tools are important, then here’s why. Sometimes the frequent introduction of a large number of changes during the development process puts developers in an ambiguous and complicated situation, making the wrong choice between various modified versions of a software product, thereby delivering previous or different versions.
This behavior will produce various wrong results, such as successfully passing the software test, finding fewer defects, etc., while the required version may produce opposite results. To avoid this situation, software configuration management is required. And hence, in this top tools list, we have curated a list of Top 25 Software Configuration Management (SCM) Tools.
In the context of software engineering, the term “software configuration management (SCM)” refers to the activity of systematically monitoring and controlling changes or modifications, and is often introduced during the development of software products.
1. Server Configuration Monitor – Solarwinds
The server configuration monitor is one of the software configuration management tools to detect and compare configuration changes to servers, applications, and databases.
You can configure the application and server in real-time i.e. SolarWinds provides server configuration monitors to detect unauthorized configuration changes on servers and applications and helps in the configuration of Windows and Linux Baseline servers and applications.
It improves the visibility and responsibility of the team and reduces the troubleshooting time.
It has the function of discovering differences between configurations.
SolarWinds Server Configuration Monitor provides alerts and reports of baseline deviations in near real-time.
Improves change auditing function by monitoring script output.
It can track changes that take place in and on servers and applications.
2. Bamboo Configuration Management
Bamboo is Atlassian’s famous continuous delivery tool, which provides good support for version management and regular delivery. It is based on the Java programming language and is essentially cross-platform.
The advantage of Bamboo is that it provides users (developers, administrators, testers, etc.) a common shared space to share work and information containing sensitive data.
It provides efficient support for linking automatic build, test, and release into a unified workflow. Companies like Walmart, Target, Kaseya Limited, Zendesk Inc. have been using Bamboo for configuration management operations.
Bamboo has been found to work with almost all popular languages and technologies. It provides continuous delivery operations from source code to implement that reaches the customer.
Bamboo provides a dedicated proxy feature that allows users to run critical builds and patches immediately without waiting.
Bamboo supports Dev + Ops, which means everything from integration to deployment to delivery.
By using Bamboo, you can get a better and improved IC/CD.
Bamboo is a technology stack because it applies to any language and other great technologies like AWS, Docker, etc.
Bamboo provides a dedicated proxy function that users can use to critically review and build immediately without waiting.
3. IBM Rational Team Concert
IBM Rational Team Concert (RTC) is a software extension to the team association tool developed and designed by the IBM Rational Software brand.
It uses change and configuration management (CCM) applications to provide functionality for consolidated development project tasks, including replica planning, process definition, control, defect tracking, source control, build, and schema automation.
Rational Team Concert makes it more efficient to exchange information directly in your work environment. The software has a client version and a web version.
It enables the collective environment used by software development teams to control all aspects of their work, such as proposals, distribution, source code management, build management, and schematics.
Using IBM RTC, you can easily create Rational Team Concert project areas and activities so that the project team can effectively adopt the best practices of agile development, transformation, and release management.
Support software reuse and component-based development
This IBM tool provides a highly scalable platform
Ability to integrate with other products
Customize the dashboard to understand the meeting status.
4. CFEngine Configuration Tool
CFEngine was launched in 1993 and is a leading configuration management tool that can provide automated maintenance and configuration for large-scale IT systems, including unified management of systems, servers, mobile devices, and networks.
Provided as an open-source tool and commercial software, it is considered the perfect choice for process and task management, configuration, and patch management. It has high scalability, security, cost-effectiveness, and high availability.
Developers looking for faster configuration management in large and small deployments often choose this tool. It helps to automatically implement updates and changes to nodes as needed. Orange, Linked In, PayPal, Locaweb, and other organizations have been enjoying the benefits of CFEngine.
It enables you to automatically deploy updates and changes to every node of the infrastructure.
This is the best configuration management tool to help you define the necessary health and configuration of your IT infrastructure.
It uses autonomous agents that are running on all nodes of its infrastructure.
5. Puppet Configuration Tool
Puppet configuration tool is an open-source platform used by IT administrators to register system components, constantly discovering information and creating dependency catalogs.
It is written in Ruby and records data in its declarative language, reminiscent of JSON.
It is scalable enough to meet the needs of businesses and organizations large and small.
Founded in 2005, Puppet has been loved by many organizations around the world, including Google, Red Hat, Siemens, Harvard Law School, Cisco, Cognizant, etc.
A strong user base contributes to its source code. Puppet is mainly used for large infrastructures with good documentation and community support. It is based on Ruby and utilizes a flexible domain scripting language, which can be easily run on any platform that supports Ruby.
The main components of the doll are the puppet server, the console of the puppet company, the puppet agent, and the puppetdb.
This best configuration management tool helps you use your favorite version control system to manage infrastructure like code.
This SCM tool allows you to fully control and view your software delivery process.
Automatically configured in your IT infrastructure
It enables you to make quick changes or fix urgent problems as well as model-based automated management.
6. Saltstack Configuration Tool
SaltStack is a popular configuration management tool that runs on a decentralized model based on the Python language. It is based on the open-source project originally released in 2011 and provides push and SSH methods for efficient customer communication.
It provides convenience for a group of clients and uses configuration templates to easily manage environmental parameters.
SaltStack makes it easy to define security software states and implement them across the entire IT infrastructure.
It provides easy integration with security processes and helps in continuous compliance. It is tightly integrated with ServiceNow and is suitable for IT Service Management (ITSM) for medium and large organizations. Lyft, Linked In, Trivago, Robinhood, Hulu are some of the many companies that use SaltStack.
The introspection feature provided by Salt allows you to easily see what’s going on inside Salt.
Salt Cloud integrates with various cloud providers, such as Google Cloud, Amazon Web Services, etc.
Saltstack has DSL features, so it does not require any logic or state.
It is simple and easy to use because you can run the entire setup process.
7. Rudder Tool
The rudder is an open-source cross-platform configuration management tool that provides effective system compliance. And the concept of associated configuration management and continuous auditing.
Originating from Europe, Rudder has been used to meet production infrastructure requirements and maintain them appropriately. It can display high-level summaries or broadcast non-compliance issues at a detailed level.
Provide an automatic inventory of hardware and software.
The web interface feature helps you manage nodes and define environmental policies.
It allows you to dynamically generate host policies.
This software configuration management tool allows you to automate simple management tasks such as installation or configuration
8. Red Hat Ansible Configuration Tool
It helps to mitigate communication between the IT army and is easy to use.
Ansible is an ideal open-source, SCM Jenkins configuration tool based on thrust for automation engines.
ConfigHub helps teams manage, protect, and deliver configurations across the stack. This tool allows you to store, manage, and distribute software configurations for a single application or distributed system.
When config is included with code, changes are almost always made by the developer, and the same changes must be applied in multiple places.
There is no disk data that can be used, searched, or filtered.
ConfigHub eliminates duplication of files and key values by using context. Zero duplication means fewer errors and a lot of time savings.
ConfigHub has developed world-class support for dynamic configuration contexts, separating application instances from their required configuration data, leading the way in generating host-independent system topologies.
Chef is an open-source cloud configuration management and deployment application. It aims to support the orchestration of servers in the cloud or a departmental data center.
Chef allows DevOps to quickly spin off tens or hundreds of server instances, instead of sysadmins tormenting management programs designed on a single standalone server.
Chef allows programmers and system administrators to collaborate. Rather than having developers create applications and waiting for Ops staff to understand how to deploy software, Chef serves the community altogether.
Chef enables the core goal of the DevOps movement, an effective and automated workflow, to move the process to a continuous delivery model with a naughty release cycle.
It provides libraries for building infrastructure for easy deployment.
It is one of the most popular SMC tools that provide support and packages for configuring infrastructure in code.
version control and configuration management tools
Managing all the content associated with projects can quickly get out of hand. But there are proven tools that can help make these problems a thing of the past.
Version control woes are still a real issue. Of course, control system integrators try to manage all the content associated with your projects, but sooner or later things can get out of hand and they end up in situations where they are spending a lot of time just finding, recovering or recreating work that has already been done. The good news is that a lot of proven and tested tools already exist that could easily make these problems a thing of past.
There are two components to the configuration management system: version control and task/issue management. Before we discuss either of those, it is important to note that the first requirement is to organize all project information—otherwise it could easily become a “garbage in and garbage out” situation.
If a system integrator is used to doing things manually and saving files and other information with a myriad of prefixes, the jargon and ways of using the version control system can be daunting. It is a good idea for system integrators to introduce these concepts step by step so they are not overwhelming.
In the first phase, they could introduce version controls as a backup system. The goal in this phase is to provide a standard way of storing all project data under version control and introduction of the version control paradigm. In this phase, version control is used mostly for sync and backup capability and also its ability to roll back any file to its previous known state. In version control lingo, we would mostly be working with commit and push/pull scenarios.
This presents a nice segue to discuss the tools parts of the version control. There are a lot of options here (Git, SVN, TFS, etc.). What’s great is that most of these options are open source and free. In the software development world, Git is currently the most popular version control system. This is for good reason, since it has a great feature set that can make a developer’s life very easy. You can refer to the Git documentation for greater detail on the topic, but here is an overview of how it works: Each user clones the project repository on their local machine. They make changes to their local copy and commit locally first (Git keeps track of all the commits). Once the user is confident in all the changes that have been made, they can then push it to the server for the changes to be available for everyone else to pull.
Git is a type of distributed version control system because of the “local commit” part. Most of the Git operations are local (hence quite fast) and it keeps the whole history chain local, so everyone has the full copy of the history and the latest data. The distributed system is not without its cons, though, if you are dealing with large repositories and binary files. In other words, keeping all that history local can easily get out of hand.
In such a scenario, a centralized version control system (like SVN or TFS) might be better suited. The major difference is that most of the operations are remote. When you commit, you send files to the server directly so there is no “local commit” and only the server keeps the whole history. It also allows part of the repository to be checked out, which makes the initial clone or checkout faster if you want to work on only a small portion.
The transition to the version control system can be made easier by adding windows shell integration tools (like TortoiseSVN or TortoiseGit), which make all the operations available on a right click of files/folders. There are several easy ways to set up the server side of things or one of the cloud-hosted solutions might also be available to help make life easy.
One other thing to consider for the tool selection is that although the capability to “diff” and view changes exists for most text content (and even Microsoft Word and Excel), this feature is not available for proprietary PLC, SCADA binary files. There are, however, some specialized version control tools (like versiondog) that provide some of those features. The workaround for other tools is to manually “diff” the two versions using PLC compare tools.
At this point, it might seem like a lot of work to keep the backup of the files. If all we were looking for were the backup-type functionality, then tools like SharePoint, OneDrive or Dropbox would suffice, especially if the content is mostly documents. But remember: The goal is to have both top-down and bottom-up visibility, which is what a true version control solution will help to achieve.
After that discussion on the tools, let’s get back to the second phase of the implementation plan. Here, we will introduce task/issue management. Just as with version control, there are many choices available (JIRA, TFS, Redmine, etc.). The key features to look for would be version control integration and flexibility in managing tasks and issues. Both JIRA and TFS are quite popular and widely used. In this phase, the focus is on dividing work into tasks, assigning it to the user and keeping track.
Once the tasks are easily managed and the content easily versioned, here are some advanced concepts that can be put in place during the third and final phase. On the version control side, start using the concept of branching and tagging for creating development sandboxes and for marking releases. On the task management side, start linking the tasks with the commits so they are easily able to trace what changes were made for each task.
At the end of this phase, everyone should have good visibility and control on the process and content, which allows for greater and more efficient tracking of the whole project. If it is important to draw more efficiency out of the process, now would be a good time to start looking toward agile project management techniques. The good news is that with the above implementation, the legwork to apply these techniques will have already been done.
For more information, you can find the complete series on configuration management from the Control System Integrators Association (CSIA).
Andy Robinson and Nishant Saini are both information solutions consultants at Avid Solutions Inc., a certified member of the Control System Integrators Association (CSIA). For more information about Avid Solutions, visit its profile on the Industrial Automation Exchange.