Configuration management (CM) focuses on establishing and maintaining consistency of a product's performance, and its functional and physical attributes with its requirements, design, and operational information throughout its life. CM streamlines the delivery of software and applications by automating the build out of systems quickly and efficiently. It can be used by management and engineers to check which components have been changed and why, ensuring an audit trail of changes done to the system. This helps with quickly identifying bad configuration changes and allows for rollbacks to well-known working ones to ensure rapid restoration of service(s). This also helps developers with debugging to check if configuration changes impacts the product’s functionality.
CM does take time to setup, but if done correctly, it allows for ease of scalability and reduces the time to build out additional resources for your product without the worry of user-prone errors. CM may seem at sometimes daunting to setup and implement, but coming up with a strategy and starting out small can open the door of opportunities to remove the human abstraction layer and automate as much as possible. This allows you to really focus on making your product or service better for your customers instead of misspending time, money, and resources on maintaining your system infrastructure.
Here at C2S Consulting Group, we have helped customers through this CM strategy and have done trade studies in order to come up with the best tool(s) recommendations for our customers. Below is an excerpt of a comparison of the most common CM tools available as of May 2017:
A Few Words on CM tools and AWS:
Chef, Ansible, and Puppet all integrate with the AWS API very well. This integration allows you to provision EC2s and/or create AWS resources and have them automatically configured. It can be built in conjunction with Cloudformation (Templates that can be executed to provision and manage AWS resources) as a better way to organize configurations and environments.
Wrapping This All Up:
Configuration Management is imperative in the DevOps model to support continuous integration. Whether you are operating your systems on premises or hosted in the cloud, the proper implementation of configuration management can ensure proper control, accuracy, traceability, restorability, consistency, efficiency, versioning, and change management of your system(s).
It is important to note that there isn’t one best CM tool that is more advantageous than the rest. It depends on factors that include, but are not limited to: infrastructure size, how fast you’re scaling, use cases, customer requirements, costs, community support, security, and proficiency in being able to learn and use the CM tool itself. In summary, the biggest overarching reason CM is needed is so IT Professionals/Engineers/Developers can spend their time on more important high-level things.
Let us help you determine what CM tool is the right fit for your company. To discuss with one of our architects please contact us at: firstname.lastname@example.org.