MSM Best Practices
- Topics:
- Multi Site Manager
CREATED FOR:
- Admin
General
MSM is a configurable framework for automating content deployment. Implementations often involve major portions of a website and span organizations and geographies. It is therefore highly recommended to plan MSM implementations as carefully as you plan your website:
-
Carefully plan structure and content flows before starting implementation.
-
Customize as much as necessary, but as little as possible. While MSM supports a high degree of customization (e.g. rollout configurations) typically the best practice for the performance, reliability and upgradeability of your website is to minimize customization.
-
Establish a governance model early, and train users accordingly, to ensure success. A best practice from a governance point of view is to minimize the authority that local content producers have to allocate/connect content to other local users and their respective live copies. This is because un-governed, chained inheritances can significantly increase the complexity of a MSM structure and compromise its performance and reliability.
-
Once a plan exists for your structure, content flows, automation and governance - prototype and thoroughly test your system, before starting live implementation.
-
Keep in mind that Adobe Consulting and leading System Integrators have deep experience planning and implementing content automation with MSM, so they can help you both get started with your MSM project and throughout its entire implementation.
- MSM is more flexible and allows fine-grained control over what content is synchronized and when.
- Core components are now recommended over the foundation components.
Live Copy Sources and Blueprint Configurations
Keep in mind that a live copy can be created using either regular pages or a blueprint configuration. Both are valid use cases.
The additional benefits of using a blueprint configuration are that they:
- Allow the author to use the Rollout option on a blueprint - to (explicitly) push modifications to live copies that inherit from this blueprint.
- Allow the author to use Create Site; this allows the user to easily select languages and configure the structure of the live copy.
- Define a default rollout configuration for live copies that have a relationship with the blueprint.
In the case that a blueprint configuration is not referenced, rollouts can only be initiated from the live copies themselves, essentially pulling content from source.
When creating a new site with live copy, it is advantageous to create blueprint configurations to ensure the availability of the full MSM feature set.
Components and Container Synchronization
In general, the rollout rule in MSM regarding the synchronization of components is:
- Components are rolled out syncing any resources contained in the blueprint.
- Containers synchronize only the current resource.
This means that components are treated as an aggregate, and in a rollout the component itself and all its children are replaced with those in the blueprints. This means that if a resource is added to such a component locally, it will be lost to the content of the blueprint at rollout.
To support the nesting of components such that locally added components are maintained in a rollout, the component must be declared as a container. As an example, the default parsys is declared as a container so it can support locally-added content.
cq:isContainer
to the component to designate it as a container.Create Site
Notice that AEM has two main approaches for creating live copies:
-
When creating a Live Copy
This can be considered as the more generic approach, allowing you to create live copies from any page. The content structure of a live copy exactly matches the source.
-
When creating a Site
This is a more specialized approach, primarily for creating websites with a multilingual structure.
Following are a few considerations to keep in mind when creating a site:
-
To create a new site, you need a blueprint configuration.
-
To allow the selection of language paths to create in a new site, the corresponding language roots must exist in the blueprint (source).
-
Once a new site has been created as a live copy (using Create, then Site), the first two levels of this live copy are shallow. Children of the page do not belong to the live-relationship, but a roll-out will still descend if a live-relationship that matches the trigger is found.
It helps avoid:
- manually adding languages in the blueprint (below the first level)
- manually adding content directly below the language root,
- does not result in automatically carrying this new content over to the live copy on rollout.
MSM and Multilingual Websites
MSM can assist in the creation of multilingual websites in two ways:
-
When creating language masters.
-
While MSM itself does not provide content translation, it can be integrated with third-party translation connectors that do. Please note that:
-
MSM allows you to cancel inheritance at the page- and/or component- level. This helps prevent overwriting translated content (from a live copy, with not-yet-translated content from a blueprint) on the next rollout.
-
Some third-party translation connectors automate this management of MSM inheritances.
Please check with your translation service provider for more information.
-
An alternative approach for creating and translating language masters is to use language copies in conjunction with AEM’s out-of-the-box translation integration framework.
-
-
-
When rolling out content from language masters.
- For example, from the French language master to country-specific sites, such as France/French, Canada/French, Switzerland/French.
For more information see Translating Content for Multilingual Sites and the Translation Best Practices.
Structure Changes and Rollouts
Modifications to the content structure in a blueprint/source tree are reflected differently in a live copy. This is dependent on the modification type:
-
Creating new pages in a blueprint will result in corresponding pages being created in live copies after rollout with the standard rollout configuration.
-
Deleting pages in a blueprint will result in corresponding pages being deleted from live copies after rollout with standard rollout configuration.
-
Moving pages in a blueprint will not result in corresponding pages being moved in live copies after rollout with standard rollout configuration:
- The reason for this behavior is that a page move implicitly includes a page delete. This could potentionally lead to unexpected behavior on publish, as deleting pages on author automatically deactivates corresponding content on publish. This can also have a knock-on effect on related items such as links, bookmarks, and others.
- Content inheritance in the respective live copy pages is updated to reflect the new location of their sources in the blueprint.
- To fully realize a page move from a blueprint to live copies, consider the following best practices:
-
Create a custom rollout configuration:
-
This new configuration must include the action:
PageMoveAction
Do not add other actions to this configuration.
-
-
Position the new configuration:
-
To fully roll out the page move, while deleting respective pages at their old location in the live copy:
-
Position the newly created configuration before the standard rollout configuration.
The standard rollout configuration will take care of deleting the pages in their old location.
-
-
To roll out the page move while keeping respective pages in their old location in the live copies (essentially duplicating the content):
-
Position the newly created configuration after the standard rollout configuration.
This will ensure no content is deleted in the live copy or deactivated from publish.
-
-
Customizing Rollouts
MSM rollout configurations are highly customizable. You should be aware that automating rollouts can have far reaching consequences. As a best practice, you should plan very carefully before, for example:
- automating rollouts; for example, with onModify triggers,
- customizing node types/properties,
- starting subsequent workflows,
- and/or activating content as part of rollouts.
onModify
When using the rollout trigger onModify
you should consider that:
-
Automating rollouts with
onModify
triggers may have a negative impact on authoring performance as they trigger rollouts after every page modification. -
The rollout result may differ from the one expected as:
- You cannot specify the order of the resulting modify events.
- The event-based architecture cannot guarantee the sequence of the events passed to the Rollout Manager.
-
Using such a rollout configuration could lead to commit conflicts if concurrent updates of the same resource occur.
Therefore, it is recommended that you only use onModify
triggers if the benefits of automatic rollout initiation outweigh any potential performance issues.
Node Types/Properties
Remember that:
- In addition to customizing rollout actions, MSM also allows you to customize node properties that are being rolled out. The MSM OSGi configuration allows you to exclude node types from being copied from the source to the live copy.
Further Information
This and the following pages cover the related issues:
More help on this topic
Experience Manager
- Administering User Guide overview
- Sites Features
- Website Administration
- Reusing Content: Multi Site Manager and Live Copy
- Live Copy Overview Console
- Configuring Live Copy Synchronization
- Creating and Synchronizing Live Copies
- MSM Rollout Conflicts
- MSM Best Practices
- Translating Content for Multilingual Sites
- Managing Translation Projects
- Identifying Content to Translate
- Preparing Content for Translation
- Creating a Language Root Using the Classic UI
- Connecting to Microsoft Translator
- Configuring the Translation Integration Framework
- Language Copy Wizard
- Translation Enhancements
- Translation Best Practices
- Configurations and the Configuration Browser
- AEM FAQs
- Operations
- Dashboards
- Operations Dashboard
- Backup and Restore
- Data Store Garbage Collection
- Monitoring Server Resources Using the JMX Console
- Working with Logs
- Configure the Rich Text Editor
- Configure the Video component
- The Bulk Editor
- Configuring Email Notification
- Configuring RTE for Producing Accessible Sites
- The Link Checker
- Troubleshooting AEM
- Audit Log Maintenance in AEM 6
- Editor
- Managing Access to Workflows
- Using cURL with AEM
- Configuring Undo for Page Editing
- Proxy Server Tool (proxy.jar)
- Configuring for AEM Apps
- Administering Workflows
- Configuring Search Forms
- Tools Consoles
- Reporting
- Administering Workflow Instances
- Configuring Layout Container and Layout Mode
- Enabling Access to Classic UI
- Starting Workflows
- Configure the Rich Text Editor plug-ins
- Admin Consoles
- Security
- User Administration and Security
- User, Group and Access Rights Administration
- Security Checklist
- OWASP Top 10
- Running AEM in Production Ready Mode
- Identity Management
- Adobe IMS Authentication and Admin Console Support for AEM Managed Services
- Creating a Closed User Group
- Mitigating serialization issues in AEM
- User Synchronization
- Encapsulated Token Support
- Single Sign On
- How to Audit User Management Operations in AEM
- SSL By Default
- SAML 2.0 Authentication Handler
- Closed User Groups in AEM
- Granite Operations - User and Group Administration
- Enabling CRXDE Lite in AEM
- Configuring LDAP with AEM 6
- Configure the Admin Password on Installation
- Service Users in AEM
- Encryption Support for Configuration Properties
- Handling GDPR Requests for the AEM Foundation
- Content Disposition Filter
- Personalization
- eCommerce
- Integration
- Integrating with Third-Party Services
- Integrating with Salesforce
- Integrating with Adobe Target
- Integrating with Adobe Analytics
- Connecting to Adobe Analytics and Creating Frameworks
- Configuring Link Tracking for Adobe Analytics
- Mapping Component Data with Adobe Analytics Properties
- Configuring Video Tracking for Adobe Analytics
- HTTP2 Delivery of Content FAQ
- Troubleshooting your Adobe Campaign Integration
- SharePoint Connector Licenses, Copyright Notices, and Disclaimers
- SharePoint Connector
- DHTML Viewer End-of-Life FAQs
- Integrating with Adobe Campaign Classic
- Related Community Articles
- Integrating with Adobe Campaign Standard
- Flash Viewers End-of-Life Notice
- Integrating with Adobe Creative Cloud
- Integrating with Adobe Dynamic Tag Management
- Opting Into Adobe Analytics and Adobe Target
- AEM Portals and Portlets
- Integrating with Dynamic Media Classic
- Troubleshooting Integration Issues
- Integrating with BrightEdge Content Optimizer
- Best Practices for Email Templates
- Catalog Producer
- Integrating with Silverpop Engage
- Integrating with Adobe Campaign
- Integrating with ExactTarget
- Analytics with External Providers
- Integrating with the Adobe Marketing Cloud
- Manually Configuring the Integration with Adobe Target
- Prerequisites for Integrating with Adobe Target
- Adobe Classifications
- Solutions Integration
- Target Integration with Experience Fragments
- Best Practices
- Content Management