Ed Han, lead consultant from Liferay, Inc., presented a session at the 2017 Liferay Symposium on best practices for upgrading to Liferay DXP. There are essentially four broad questions that should be asked when planning and starting an upgrade:
- Why upgrade?
- What is an upgrade?
- What are the risks?
- What is the plan?
There are many reasons why you should upgrade to Liferay DXP. First, there are many new features available such as modern web experiences, e.g. audience targeting, updated UX, forms and mobility and a modern architecture with true modularity with OSGI. Also, system components may require upgrading such as operating systems, databases or perhaps migrating to cloud. Probably most importantly Liferay 6.1 and 6.2 will soon be out of support. For specific support dates, visit here.
What is in an upgrade project?
- Analysis – What is being upgraded and what are the risks?
- Planning – How will it be done?
- Development – Make it happen.
- QA – Make sure everything works and performs.
- Go Live – Launch!
Upgrading Liferay includes:
- Functionality and code – marketplace plugins, utilized features, customization and configuration
- Database upgrade
Upgrading system components includes:
- Operating system may need to be updated.
- Java 8
- Search server – Migrate to Elastic but Solr is still supported.
- Check the support matrix to make sure your hardware/software combination is supported.
What are the risks?
- Accept that problems will happen
- Always have a fallback
- Always have a plan for a rollback
- An untested backup is not a backup
- Identify new risks from development
- Go live is often the riskiest
- Customizations are a big risk area. Identify them in analysis, verify they are still needed and additional testing will be required.
- New features may be able to replace customizations
- Decide on plugin upgrade path
- Service builder plugins must be regenerated
- Themes will require near-rewrites
- Freemarker preferred over Velocity
- Developer learning curve is also a risk. Training and documentation help minimize this.
- Some configurations have moved
- There is a new configuration admin
- Some behaviors have changed
- Database upgrade is a high risk area
- Bad data requires remediation
- The upgrade can take time
- If you are on 6.0.11 or earlier, you need to upgrade to 6.2 first
- Do dry runs multiple times
- The database upgrade is the highest risk area. Test the database upgrade tool against production data first
- Code deployment
- Quality – Heavy functional and performance testing is required
- Search index – don’t under estimate how long it may take.
Notes for the plugin upgrade path, the following considerations are important:
- Plugins SDK is deprecated but still supported
- OSGi modules are new to Liferay
- Consult the 7.0 documentation
- The code upgrade tool can help identify and remediate problems
Go Live Strategy
- Do an upgrade during a maintenance window with a scheduled outage
- No chance of data loss
- No extra infrastructure is needed
- Downtime could be long
- Rollback strategy is complex
- Minimal impact to end users
- Rollback scenarios are easier and do not impact end users
- Near instant launch
- Requires additional infrastructure
- New user data could be lost
- Backups and rollbacks
- Ensure all data is backed up
- Test restoration of backed up data
- If possible, snapshot the server
Long story short, a DXP upgrade is complex but for most customers, the new features and capabilities are well worth the effort as DXP will allow you to deliver engaging and modern customer experiences in an open and extensible platform.
Technical Director, Portal