Implementing Content Management Systems with Multiple Environments
A common recommendation we have when designing Enterprise Content Management systems is the use of multiple environments. I am referring the use of Development, Test, and/or QA environments to complement a Production environment. There are many advantages to deploying systems with multiple environments, and I would like to discuss the role of multiple environments and the advantages to implementing them for your ECM system.
Depending on the size and complexity of the solution different supporting environments are recommended. For, example with a smaller departmental level solution with little or no custom development, it is common to only recommend one supporting environment used for development and testing. Now let’s take another example where a customer has an enterprise level ECM system with custom development and a requirement for minimal system downtime. The following is a common layout for this type of system:
- Development Environment – Used for custom development and preparation for testing changes to the ECM system. This environment is usually much smaller than the Production Environment and is commonly running on virtual servers/machines.
- Test Environment – Used for end to end testing of changes to the system. Changes are certified in this environment prior to moving to the QA or Production. This environment is usually smaller than Production, but it is imperative that the functionality is consistent to ensure proper testing and certification of the changes.
- Quality Assurance Environment – This environment serves a couple of purposes and it closely mirrors the architecture of the Production Environment. Performance load testing and client acceptance are performed in this environment. In some instances, this environment can also serve as a disaster recovery environment in the event of a Production outage.
- Production Environment – Used for the ECM Production System.
This environment configuration is representative of a common layout for multiple environments, but depending on the organization and solution it can vary. The ECM solution architects play a valuable role in recommending the optimal configuration. At ImageSource, we have extensive knowledge and experience with ECM architecture and take a great deal of pride in designing the correct layout for the customer and the solution.
Now that we have discussed the role that different environments can play, I would like to touch on some key points to implementing multiple environments for your ECM System. These points are based on my many years of experience implementing these types of solutions.
- It is imperative to put in place and enforce the procedures for implementing changes in these environments. It is very common for us to find ECM solutions implemented with multiple environments, but all of the changes are being implemented directly into Production and the other environment(s) are out of date with Production. It takes additional time to follow the procedures and keep all environments in sync, but it is the key to mitigating the risk of Production issues, such as downtime.
- It is not a requirement to match the horsepower and server structure of your Production Environment with your Development and Test Environments. There are scenarios where this makes sense, but for the most part a scaled down version is sufficient.
- The time and investment that it takes to implement and support multiple environments will pay for itself by mitigating risk and system downtime. There are many items that can adversely affect a Production system, e.g. operating system patches, ECM software patches or upgrades, the addition of new functionality, the modification of existing functionality. Being able to test and certify that the changes will not adversely affect the Production system prior to implementation can completely eliminate a company’s exposure to security or compliance issues, as well as, avoid the cost of having the Production system go down.
- The Development or Test level Environments can provide valuable training for your technical staff. Having environments that will not affect the Production Environment give a company’s ECM technical workers the ability to hone their skills and make mistakes without the negative impact of bringing down the Production system.
In summary, I would highly recommend the use of multiple environments when implementing or supporting an Enterprise Content Management system. It is an investment of time and money to implement and maintain multiple environments, but the payoff will quickly be realized through risk mitigation. If you already have an ECM solution implemented without multiple environments, I would recommend evaluating the cost that Production issues cost your business and use that information to make the case for implementing an additional environment or environments. If you have multiple environments but they are not synchronized with or being used to complement the Production Environment, now is the time to re-evaluate your procedures and leverage your company’s investment to support the health of the system.[polldaddy poll=1982605] [polldaddy poll=1982618]
Ryan S. Keller