A typical organization divides its infrastructure into several deployment environments.
An application in different stages of its lifecycle moves through these environments.
Traditionally, an organization might have some or all of the following deployment environments.
The size of the organization and the complexity of its infrastructure can determine which of the
following environments are used:
- Development
- User acceptance, testing, and quality assurance
- Production
- Performance testing
- Training
- Staging
The more deployment environments that are used and maintained by an organization, the more
important it is to create a process for the deployment environments that saves time, reduces
errors, reduces risks, ensures similarity among the environments, and reproduces problems
reliably for troubleshooting and resolution.
Many organizations use at least three of these environments: development; user acceptance,
testing, and quality assurance; and production. For example, developers create applications in
the development environment. Then, the application moves to the user acceptance, testing, and
quality assurance environment for various types of testing. If a problem is found during testing,
the problem can be fixed and tested directly in the user acceptance, testing, and quality
assurance environment. After all testing is complete, the application can be deployed to the
production environment. The changes to the application must also be deployed into the development
environment so that the application is synchronized in all three environments.
In addition, the user acceptance, testing, and quality assurance environment in the example is
used to test, capture, and automate the configuration steps that are required to support the
application. One major component of the configuration is the LDAP structure that is used for user
authentication. The test environment uses the same LDAP structure as the production environment.
This similarity of the test and production environments enables the testing, application
documentation, and automation of configuration steps, including LDAP configuration, to be used
directly in the production environment.
Within this example, the user acceptance, testing, and quality assurance environment plays a
vital role. This environment enables the creation of an automated and repeatable deployment
process for the application into any of the deployment environments, particularly into the
production environment. The keys to creating this deployment process include the following tasks:
- Capturing and automating a repeatable process for migrating the application to the
production environment.
- Writing clear documentation for the entire process, including the following information:
- The required security credentials and the values used.
- Any manual security changes.
- Any manual configuration changes and how these changes are applied.
- The order in which assets must be migrated and deployed.
- Testing the deployment plans and instructions in the user acceptance, testing, and quality
assurance environment.
As the example shows, the creation of a well-defined, repeatable, bidirectional process to
ensure the accurate migration of applications to various deployment environments is critical. The
following list of practices are not required, but they are best practices for the creation of an
application migration model in a
FileNet® P8 system:
- Do not do development tasks within the production environment.
- Separate the test environment from the development environment to maintain test environment
integrity. The separation of development and test activities avoids the introduction of
unwanted changes to configuration or code by developers before those changes are ready to be
tested. This separation also enables testing to be done in a clean environment, by using
documented procedures. This type of testing ensures that the results are well understood and
repeatable.
- Separate the test environment from the production environment to maintain production
environment integrity. This separation avoids the introduction of unwanted changes before those
changes are ready to be put into production.
- Use the same LDAP foundation in all environments except the development environment. The use
of the same LDAP foundation yields more reliable security testing. It also enables scripts and
procedures that are developed in the test environment to be reused when you are applying the
same changes to the production environment.
- For most application development efforts, separate environments by the FileNet P8 domain. This separation enables people to work
simultaneously and independently on the same project, but in different phases, without
adversely affecting the work of others. In particular, assigning each environment its own
FileNet P8 domain simplifies the process of granting
domain-wide permissions in each environment to different groups. For example, developers can be
granted full permissions to configuration objects in the development environment, but granted
no permissions to configuration objects in the production environment.