Elasticsearch with Liferay – Notes & Links – Part 1

Below are the important notes & links for configuring Liferay DXP with Elasticsearch.

Email me: Neil@HarwaniSystems.in

Security best practice, patterns & architecture links from AWS, GCP & Azure – Part 1

Herewith I am providing a curated list of links for security best practices, patterns & architecture for AWS, GCP & Azure – Part 1.

AWS:

GCP:

AZURE:

Also, check out security as code products like oak9:

Email me: Neil@HarwaniSystems.in

List of good executive education programs in India – Part 1

Since the last few years (5 to 10 years) there has been an exponential growth in executive education courses and market across India. Herewith, I am compiling some of the good options for executive education in India – Part 1.

If you have more links, please share with me over email for Part – 2 of this series.

Email me: Neil@HarwaniSystems.in

How to debug Liferay? – Some pointers – Part 1

How to debug Liferay? Some pointers. – Part 1. Many a times, we only check at specific places and forget other areas while debugging. This small blog acts as a checklist to check and debug Liferay.

  • Look at installing and using GLOWROOT
  • Check the slow traces / web transactions / errors and the related graphs in GLOWROOT
  • Check the logging levels module wise and overall
  • Check all the Liferay nodes if in a cluster
  • Check the app server logs
  • Check JNDI & JDBC settings
  • Check the things by simulating on default vanilla instance / bundle
  • Use help center articles
  • Check your webserver, load balancer and database configurations plus logs
  • Check your portal & system properties
  • Check configurations in control panel for the related work
  • Check your custom API list
  • Check details via GoGo shell commands
  • Check the code in Liferay DevStudio or your favorite IDE
  • Check marketplace apps that are installed
  • Consider using Groovy scripting for debugging
  • Check virtual instances if in use
  • Check OSGI configurations if added
  • Check your elastic search server status
  • Check your heap size and thread dumps plus configurations in setenv.sh/bat

Blog also gives you an idea on the configurability and extent of Liferay modularity. It makes our work easier when many of the things are configurable.

References:

Business Process Reengineering with a fictional Information Technology company

Here is a fictional case study for a business process reengineering class exercise in MBA / PGDM / PGPM classroom. We look at the three phases of an IT founder driven successful startup. Typically, many startups go through these phases. Such examples can be found in many news articles related to Information Technology industry across the world.

Phase 1 – Founder driven startup:

  • Founder driven, liberal culture, no set timings for entry and exit, free snacks, product type employee empowerment driven, work hard, 5 days a week working, flexible hours type culture in an IT company
  • Good salaries & benefits
  • Onsite opportunities
  • Most people are with experience with a small percentage of fresh engineers
  • Work on niche products & services with good margins
  • Few strong partnerships with customers & products / ecosystems
  • Small group of founders & investors with clear goals

Phase 2 – Sale to a larger entity / induction of investors or venture capitalists / investment bankers:

  • Induction of professional management
  • Drive towards IPO
  • Drive towards larger revenue & higher growth
  • Change in services, partnerships & product mix
  • Churn in employees & their loyalty
  • Changes in profitability based on services & product mix
  • Change of branding
  • M&A with other companies or investor portfolio firms
  • Related work with similar companies in investor or buying entity group
  • Focus on long term sustainability
  • Focus on operational excellence

Phase 3 – Stabilization and finding of the “mojo”:

  • Stable partnerships, customers & products / services
  • Stable margins
  • Finding of the mojo product & services mix
  • IPO / Investor / VC / M&A stabilization
  • Mature phase of branding
  • New product / service / offering mix creation
  • Newer ventures in new areas

Email me: Neil@HarwaniSystems.in

Links on important technical concepts of Liferay – Part 1

Here are some links on important technical concepts of Liferay – Part 1. Hope this is helpful to all using and learning Liferay.

Email me: Neil@HarwaniSystems.in

Data Structures & Algorithms Keywords plus Notes – Part 1

Keywords from my learnings in Data Structures & Algorithms Design subject from Semester 1 – M.Tech. BITS Pilani:

  • Pseudocode
  • Definition of algorithms
  • Models for time complexity
  • Primitive operations
  • Notations
  • Correctness of algorithms
  • Recursive algorithms
  • Elementary data structures: Stacks, Queues, Lists
  • Nonlinear data structures: Trees, Binary Trees, Heaps
  • Dictionaries
  • Algorithm design: Greedy, Divide & Conquer, Dynamic programming, Graph
  • Complexity classes & associated topics: P / NP

Email me: Neil@HarwaniSystems.in

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

SSO (Single Sign on) Notes – Part 1

With so many products, technologies, protocols and options – SSO (Single Sign on) discussions can sometimes confuse many. Here is my effort to clarify SSO by explaining the layers in it.

  • Types of SSO – System / operating system based or browser based. There are further refined details here but for part 1 of the blog, only covering the basic two types
  • Identity provider – This is the layer which provides the identity and other details of the user. Think of this as a protocol method / function call to assets behind the scenes. Both this layer and service provider act as methods / functions / flow points / events in the full flow of SSO. This layer will go and in the backend most of the times interact with user stores to get details about users
  • Service provider – This is the layer that provides / presents the user with the business application like Liferay and so on by providing features like redirects, discovery of identity provider and so on. Note: applications like Liferay can act both as identity provider & service provider with SAML
  • SSO technology products – PicketLink, ADFS (Active Directory Federation Services), Okta, Auth0, Ping Identity, SiteMinder, Shibboleth and so on
  • Protocols: NTLM (Deprecated), SAML, Kerberos, OpenID and so on
  • Customizations, configurations in applications like web.xml, XMLs, login screens, redirects, tokens, claims and so on along with their application servers

Thinking in terms of layers & flows between these concepts helps us to understand and work in a better way with SSO solutions.

https://commons.wikimedia.org/wiki/File:Saml2-browser-sso-redirect-post.png

References:

  • https://en.wikipedia.org/wiki/Single_sign-on

Email me: Neil@HarwaniSystems.in

Ideas on Innovation around Technology. We Thrive On Ideas. We are Learner Centered, Open Source & Digital Focused.