might solve a problem addressable by SCM vendors. However, upon closer examination it becomes clear that this is not the case, because AICM has different data, different audiences and different requirements than SCM.
AICM Core Requirements
There are multiple consumers and contributors of configuration related data across the application lifecycle, so AICM must satisfy the needs of multiple audiences. Since most organizations already have an SCM solution (ClearCase, PVCS, CVS etc.) it’s not a requirement that AICM systems provide their own version engine. However, they should provide clear, well defined integration points to third party CM tools for versioning and archival purposes.
The high level components of a competent AICM solution include:
- A repository for configuration artifacts.
- A robust data model that enables advanced configuration analysis, so users can discover and map dependencies, validate entries, search and replace, manage changes between application lifecycle stages, etc.
- Features to improve efficiency and support cross-organizational configuration management, such as filters, compare, automated deployment and auditing.
- Support for multiple file and data types.
These core capabilities enable AICM to virtually eliminate the "problem child" scenario described earlier, because all environments are governed by a single system, rather than multiple humans. For large IT departments, this can save thousands of man-hours each year, simply by eliminating errors and sparing personnel from repetitive and tedious manual configuration work.
And for the developer, it means no more phone calls complaining about your application, when in fact it was an improperly configured infrastructure element causing the problem.
In addition to these core requirements, a complete AICM system should also provide additional advanced features that:
- Allow users to continue to use whatever process is currently in place without imposing a specific "one size fits all" process.
- Allow users transparent access to scripts and automation tools that may currently be in use.
- Provide the ability to quickly "clone" or make exact copies of an environment.
- Provide templates that expedite the addition of new resources into the configuration hierarchy.
- Allow the system to be easily extended to accommodate new technologies or software in the infrastructure stack.
- Provide a framework that allows repetitive tasks to be automated.
- Allow for check pointing and roll back of configurations.
- Provide complete change audit information including the who/what/when/where/why of a change.
AICM Stops the Blame Game and Fixes Bad Behavior
Developers are constantly held accountable for their programs, tools, data and processes. However, IT culture allows infrastructure teams to perform ad-hoc management of mission critical configuration data with virtually no accountability. And, when something goes wrong, the finger of guilt is pointed at you, the developer.
Imagine how much easier - and fair - all of your lives would be if infrastructure teams could simply roll back to previous configurations when something isn’t working properly? Or do a simple compare to identify what is different from environment to environment after changes have been made? What if they could roll out your applications much more quickly by reducing the time it takes to get the application environment right at each phase in the application lifecycle?
AICM makes this possible by automating these processes and eliminating the potential for human error. This results in faster application roll outs and fail-safe management of infrastructure changes, such as application server upgrades.
By eliminating human error, automating configuration management and providing an audit trail of changes made, AICM is the best friend your "children" could have.
Raman Sud is Vice President of Engineering for mValent. He has 20 years of experience delivering mission critical software for enterprises and telecommunication service providers, and has significant expertise in building and integrating distributed teams