• Success
    Manage your Success Plans and Engagements, gain key insights into your implementation journey, and collaborate with your CSMs
    Success
    Accelerate your Purchase to Value engaging with Informatica Architects for Customer Success
    All your Engagements at one place
  • Communities
    A collaborative platform to connect and grow with like-minded Informaticans across the globe
    Communities
    Connect and collaborate with Informatica experts and champions
    Have a question? Start a Discussion and get immediate answers you are looking for
    Customer-organized groups that meet online and in-person. Join today to network, share ideas, and get tips on how to get the most out of Informatica
  • Knowledge Center
    Troubleshooting documents, product guides, how to videos, best practices, and more
    Knowledge Center
    One-stop self-service portal for solutions, FAQs, Whitepapers, How Tos, Videos, and more
    Video channel for step-by-step instructions to use our products, best practices, troubleshooting tips, and much more
    Information library of the latest product documents
    Best practices and use cases from the Implementation team
  • Learn
    Rich resources to help you leverage full capabilities of our products
    Learn
    Role-based training programs for the best ROI
    Get certified on Informatica products. Free, Foundation, or Professional
    Free and unlimited modules based on your expertise level and journey
    Self-guided, intuitive experience platform for outcome-focused product capabilities and use cases
  • Resources
    Library of content to help you leverage the best of Informatica products
    Resources
    Most popular webinars on product architecture, best practices, and more
    Product Availability Matrix statements of Informatica products
    Monthly support newsletter
    Informatica Support Guide and Statements, Quick Start Guides, and Cloud Product Description Schedule
    End of Life statements of Informatica products
Last Updated Date Aug 27, 2021 |

Challenge

Develop a promotion strategy for PowerCenter that ensures clean promotion between development, test, quality assurance (QA), and production environments, thereby protecting the integrity of each of these environments as the system evolves.

Description

This Best Practice provides information on options to help ensure that developed objects/code go through a smooth migration process between development, QA, and production environments. This is essential for the deployment and integrity of an application. This document does not include step-by-step instruction on how to accomplish each of the code promotion suggestions, but rather highlights key and useful information. Detailed instructions for completing the code promotion options can be found in the Informatica documentation.

Pre-Code Migration

Key considerations include:

  1. What code is being promoting? (e.g., Mappings/Workflows/Connections/Everything)
  2. Is everything ready for promotion? (e.g., Valid objects/working objects/tested objects)
  3. If using a versioned repository, is everything (e.g., all objects and dependencies) checked in?
  4. Is code that has shared objects being promoted?

All of these come into play when working on setting up a strategy for promotion.

PowerCenter offers flexible promotion options that can be adapted to fit the needs of each application. These options include folder migration, object migration, and XML import/export. In versioned PowerCenter repositories, users can also use static or dynamic deployment groups for promotion -- which provides the capability to migrate any combination of objects within the repository with a single command. All of the above options can be accomplished via the command line utility. This will be discussed further in this best practice.

Distributed Repository Environment

A distributed repository environment maintains separate, independent repositories, hardware, and software for development, test, and production environments. Separating repository environments is preferable for the handling of development to production migrations. Since the environments are segregated from one another, work performed in development cannot impact QA or production.

There are four methods for code promotion. Keep in mind that this code promotion process typically consists of going from environment-to-environment (e.g., Dev to QA). However, using one or more of the below processes would also allow the capability to test code migrations within the same environment.

IMPORTANTExercise extreme caution with code migrations within the same environment as this could seriously impact other work.

  • XML Export/Import
  • Repository Object Copy
  • Deployment Groups, Static/Dynamic
  • Command Line Utility

XML Export/Import

PowerCenter’s XML export/import functionality offers great versatility with code promotion. This method is most useful in a distributed environment because objects can be exported into an XML file from one source repository and imported into the target destination repository.

The XML export/import process is very simple using the Power Center client tools. Designer/Workflow Manager and Repository Manager all have export/import features. Keep in mind when using this feature that objects exported from Designer will only contain objects that can be developed in designer (e.g., Mappings/Sources/Targets/Transformations). This is the same for objects developed in Workflow Manager. In order to ensure that all related objects and their dependencies are being exported, use the Repository Manager for exporting and importing.

Pros

  1. A user friendly GUI allows for choosing the objects to export.
  2. Multiple objects may be selected at a time.
  3. Multiple folders may be selected at a time.
  4. Allows for the selection of all object and dependencies when using Repository Manager.
  5. Provides the ability to see conflict resolution during the import.

Cons

  1. Unless using the command line utility, client software is required.
  2. Appropriate permissions are required to perform the export/import actions.
  3. Invalid objects may also be exported.
  4. All objects must be checked in prior to the export/import when using a versioned repository. Only the latest checked in objects are able to be exported. This could lead to missed changes.

Repository Object Copy

Using the Repository Manager client, a user is able to copy from one repository to another. This method has some advantages and disadvantages. One of the biggest things to keep in mind with this method is that the client software must be installed.

Pros

  1. Allows copying of either folder level or individual objects.
  2. Allows copying of relational connections and all the information for them with the workflows being copied.
  3. Useful and easy to use when moving repository to repository no matter the environment.
  4. Allows for typical copy options or advanced options within the wizard.
  5. Able to retain existing information pertaining to the code after it has been copied.
  6. Drag and drop style interface.
  7. Very useful for small amounts of objects to be copied.

Cons

  1. Requires that client software is installed.
  2. This method could easily wipe out existing code.
  3. The drag and drop style can be time consuming based on the number of folders/objects to copy.
  4. Network connectivity is required between environments.

Deployment Groups

For versioned repositories, the use of Deployment Groups for promoting code between distributed environments allows the most flexibility and convenience. With Deployment Groups, migrating individual objects is just like an object copy migration, but can also have the convenience of a repository or folder-level migration as all objects are deployed at once. The objects included in a deployment group have no restrictions and can come from one or multiple folders. For additional convenience, dynamic deployment groups can be set up that allow the objects in the deployment group to be defined by a repository query, rather than being added to the deployment group manually. Because deployment groups require versioned repositories, they also have the ability to be rolled back, reverting to the previous versions of the objects, when necessary.

Pros

  1. Allows for static or dynamic groups.
  2. Allows for labels to be applied.
  3. Allows for objects to have different names after being deployed.
  4. Allows for rollback if anything breaks.
  5. Allows for a scheduled deployment.

Cons

  1. Requires versioning be turned on for both repositories being used for deployments.
  2. Can be a little overwhelming at first to understand how everything works.
  3. Check-in and Check-out processes can cause issues with deployments.
  4. Need to set up rules and best practices for developed code and appropriate labels.
  5. Need to ensure that shared objects are deployed first.

Command Line Utility

Using the PMREP commands is essentially the same as the XML Export/Import method, folder copy, and deployment group, except that it is run from the command line rather than through the GUI client tools. The Informatica client and server installs the command line utility when the installation is completed, and a separate installer is included if needed for use. The pmrep command utility has the capability of running commands from the client machine or the server which accomplishes the same goals as using the PowerCenter client software. Refer to the product documentation for a full list of pmrep commands.

The pmrep utility is a very useful utility that can be used in scripting or interactive mode. The command line utility is utilized by many due to the requirements of the project. In most cases projects will script the various commands and then package all the code that is to be promoted and push these packages. This allows for a fully automated process with no manual intervention except for pushing the package to get it started.

Some key information to keep in mind when using the command line utility:

  1. Always ensure that the exported xml code is the latest copy.
  2. Always ensure that a control file has been created prior to importing. This file is used to tell the import where the source and target is as well as all the conflict resolutions that the import is to perform.
  3. Ideally kill all connections to the repository before attempting the import process so that a smooth and error free import can happen.
  4. Ensure that code that has been imported has the necessary permissions required by the users.

This method is basically the same as the XML Export/Import, as an xml file is used for importing. The only difference is that the client software GUI is not used for the export/import. This option also allows a project to utilize configuration management software that can check in all the scripts and xml files related to a code promotion.

Recommendations

Ultimately all the options above are useful options for code promotion. Each of the above listed options has its pros and cons and these should be measured against requirements to determine which will be the most useful option for each specific situation.

Table of Contents

Success

Link Copied to Clipboard