Some learnings below from various Liferay upgrades that I have been part of:
Upgrades need us to plan various dry runs in advance on non-production environment
Divide your upgrade between core / database and non-core upgrade
Core includes Liferay engine, configurations and database
Non-core includes themes, custom code, integrations and such
Understand how to use database upgrade tool for core upgrade
Logging of upgrade should be at much more verbose level than normal
You can upgrade with document library or without it using portal-ext.properties configurations
Upgrades between DXP from 7.x to 7.x are easier whereas upgrades from 6.x to 7.x need more planning
For database upgrade tool, you have an option of 3 property files or you can use command prompt to enter required details
Make sure you are at the latest version of whichever 7.x you are upgrading to
Bad and corrupt data are perpetual problems which need to be analyzed properly before upgrade
Use groovy to fix bad data not SQL
Consider analysis and compliance from Liferay compatibility matrix, Liferay whitepapers on cloud, security, upgrade & scaling before planning your upgrade
Create a template document for upgrade with all major areas pre-covered in analysis via the whitepapers on Liferay.com
Understand the breaking changes with every major version release
Learn to use the upgrade planner for code upgrade
Docker containers are available and should be considered
Consider headless, clustering, cloud, advanced file store, CMIS repository options right at the analysis phase of Liferay upgrade
For your data storage requirements in future as per scaling – understand and analyze the load to confirm to the right choices of infrastructure like Cloud, SAN / NAS and so on
Learn to use the basic Linux commands (if you are using Linux) like top, free, tail, ps, grep, liferay bin commands, sudo, vim, thread dumps and such to monitor / manage the upgrade well
Consider learning basics of operating system / network you are using, JVM & database tuning / optimization for threads, core allocations, monitoring and using Eclipse IDE to analyze threads, heap, etc.
Keep reference guide for system.properties and portal-ext.properties handy during upgrade of core part
Keep headless, GraphQL, Liferay / Java API details handy during code upgrade
There are two parts to search optimization in Liferay. One is the internal search and other is the SEO / Digital Marketing for content. Below, I am sharing concepts and keywords to explore for both areas.
Liferay internal search:
Search BluePrints
Search Insights
Custom Indexers
Tags & Categories
ReIndexing
Facets
Suggestions
Boosting
Sorting
Low level search
Search Options
Similar Results
Queries & Filters
Google Search console / Bing search console / Google Analytics analysis and feedback into internal search
An unbiased view on why you should adopt a platform like Liferay and what are the benefits in using Liferay:
Having implementations in various domains like insurance, manufacturing, financial services, healthcare, education, government, intranets, commerce, energy, customer / partner portals and more
Open standards based system built with and around Java & specifications from Java community
Tooling options built on top of Eclipse, Gradle and Blade
Gogo Shell & DevStudio
Has been contributing to ecosystem by community as well as enterprise versions regularly plus has cloud options with analytics & commerce
Modular architecture built using OSGi
Growing marketplace
Maturity of 10+ years in terms of having features in fine grained property file entries, IAM/SSO/AD/LDAP, programming & configuration options and similar inbuilt integrations, workflows, content management, system administration and more
Commerce, Analytics, Cloud option & Content / horizontal portal in the same ecosystem
Evolving features around Cloud, Personalization, CI/CD, Analytics, ML&AI with the trends
Large part of documentation is open for public reference
Growing community & partner ecosystem
Strong features around content, search, collaboration, chat bots, headless and more
Many security, clustering, optimization, workflow, content, configuration features are pre-built with past experiences and evolution for over a decade
Programmers & technical people love the open standards based understanding of the product ecosystem
How to overcome some of the challenges around implementing Liferay:
Read the official documentation, blogs, forums in entirety and refer non Liferay forums across the web, don’t read piecemeal – that does not help
If you struggle with SEO / page load performance problems look at various reports from across the web like GTMetrix, Pingdom and more rather than rely on a single tool and single geo based server. Think of functional, technical and other changes across configurations rather than only one area. Good part is as there is transparency with open standards and open forums, it’s easier to decipher what changes need to be made
To avoid upgrade problems, follow the official path for customization & configuration in conjunction with Liferay team rather than customize outside the official process. Also, use out of the box features as much as possible