Thank you 2022, Welcome 2023

Things are never perfect – we face many challenges (this is not the platform to discuss problems though) but there are many things to be thankful for. Here is my list of 2022 for which I am grateful.

  • Liferay for giving me the opportunity to work directly with products. This is my 4th year working directly or indirectly with products either building them or working internally from an ecosystem around products. Also, my past two clients before Liferay who helped me to work on building internal products directly. Cannot name the customers, ecosystem and people involved but my genuine thanks to all in this journey.
  • BITS Pilani for a fabulous Semester 1 with Distributed Computing, Embedded Systems, Database & Applications and Data Structures & Algorithm Design subjects with all the networking I could do with fellow students. Studying M.Tech. Computer Science / Electrical / Electronics was a wish since decades but somehow work, opportunity and many factors kept me busy and it clicked in 2022.
  • NITIE & Prof. David as the instructor for a supply chain course.
  • My friends, batchmates, students, colleges / universities, their staff, my family and network plus LinkedIn with whom I could work / interact with and learn so many things from.
  • Internet which has fueled so many learnings, opportunities and interactions.
  • All the people with whom I had even the smallest positive interaction like with Rajan Singh who writes many inspirational posts. There are too many to name but I wish a happy new year 2023 to all of you with whom I crossed path in 2022.
  • Hopefully 2023 will be filled with many such learnings, collaborations, knowledge sharing, help and interactions through the ups and downs of life.

Email me: Neil@HarwaniSystems.in

Liferay upgrade learnings – Part 1

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
  • Look at top thread dump analyzers like: Smart Java thread dump analyzer – thread dump analysis in seconds (fastthread.io)
  • 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
  • Explore 7.4 DXP features if you are upgrading to this version: Liferay DXP 7.4 New Features
  • Refer help center articles and open documentation both, they have lot of good, useful content
  • Reference: Upgrade Basics — Liferay Learn

Email me: Neil@HarwaniSystems.in