PaaS Support Coverage
Legacy PaaS Support Coverage
This article is a compilation of the legacy Liferay PaaS Support Coverage policies.
- Best Practices for Configuring Liferay Cloud for Auto-Scaling Based on CPU
- Configuring Remote Staging in Liferay PaaS
- Custom Images and Services
- Do you support Bitbucket/GitLab integration?
- How is Auto Scaling charged?
- Liferay PaaS Go-Live Checklist
- Liferay PaaS Performance and Penetration Test - Advanced Notice
- Liferay PaaS Security Checklist
- Liferay PaaS Shared Activities
- Liferay Premium Security for PaaS
- Where are your data center locations?
Best Practices for Configuring Liferay Cloud for Auto-Scaling Based on CPU
Auto-scaling is a critical feature for managing resource utilization and ensuring the optimal performance of your applications in Liferay Cloud. While traditionally auto-scaling can be based on both CPU and memory thresholds, certain applications, especially those that are memory-intensive, can face inefficiencies with memory-based auto-scaling. This article will guide you through the best practices for configuring auto-scaling based on CPU utilization and discuss the benefits of upgrading to the latest Liferay version.
CPU-Based and Memory-Based Auto-Scaling
Some Liferay applications and the JVM are known for their memory-intensive nature. Configuring auto-scaling based on memory thresholds can sometimes lead to inefficiencies due to the JVM's behavior in memory allocation and deallocation. The JVM does not always release memory back to the operating system promptly, which can result in auto-scaled instances remaining active longer than necessary, driving up costs and complicating resource management.
By focusing on CPU utilization for auto-scaling, you can achieve a more responsive and cost-effective scaling behavior, better aligning with the performance needs of your applications. However, memory-based auto-scaling can still be effective for certain applications. For more information on configuring memory-based auto-scaling, please refer to the Liferay Cloud Auto-Scaling Documentation.
Configuration Steps
1. Update the LCP.json File
To configure auto-scaling based on CPU, you need to update the LCP.json file in your Liferay Cloud setup. Here is an example configuration:
{
"autoscale": {
"cpu": 60,
"memory": 95
}
}
In this setup, the auto-scaler will add more instances when CPU utilization reaches 60%. While memory is still a factor, it plays a secondary role to CPU utilization. For more information, please refer to Liferay Cloud Auto-Scaling Documentation.
2. Monitor and Adjust CPU Thresholds
Regularly monitor the CPU performance of your Liferay Cloud instances. Based on your application's load and performance profile, you might need to adjust the CPU threshold to achieve optimal scaling.
Benefits of Upgrading to the Latest Liferay Version
Upgrading to the latest version of Liferay offers numerous performance improvements and enhanced features. Some of the key benefits include:
- Improved Memory Management: Newer versions of Liferay come with optimized memory management, which can help reduce the inefficiencies caused by JVM memory allocation.
- Enhanced Performance: Each new release includes performance enhancements that can help your applications run more smoothly and efficiently.
- Advanced Features: Take advantage of the latest features and security updates that come with newer versions of Liferay.
Future Improvements in Auto-Scaling and Telemetry
We understand the limitations of current auto-scaling configurations and are actively working to enhance these capabilities. Here are some of the upcoming improvements:
- Custom Metrics for Auto-Scaling: Starting in late 2024, customers will be able to select custom metrics for auto-scaling. This will allow more granular control over scaling decisions, enabling users to tailor auto-scaling triggers based on specific application performance indicators.
- Enhanced Telemetry: We are integrating improved telemetry features to provide better insights and real-time visualizations for critical performance metrics, enabling better resource management and operational insights.
- Manual Horizontal Scaling: The new manual scaling feature will allow customers to actively and responsively scale their Liferay services during periods of anticipated increased traffic. This will help in managing sudden spikes in traffic more effectively.
These new features are expected to be released between Q3 and Q4 of 2024.
Conclusion
Configuring auto-scaling based on CPU utilization is an efficient approach for many Liferay Cloud environments. While memory-based scaling can be effective for certain applications, focusing on CPU thresholds ensures a more responsive and cost-effective scaling behavior for a broader range of scenarios. Upgrading to the latest Liferay version further enhances performance and takes advantage of the newest features. Stay tuned for upcoming improvements in auto-scaling configurations and telemetry, which will provide even greater control and insight into your application's performance.
For further assistance or questions, please reach out to our support team.
Configuring Remote Staging in Liferay PaaS
Introduction
Remote staging in Liferay Cloud allows you to manage and preview content in a staging environment before publishing it to a live environment. This setup ensures content accuracy and security, particularly useful for organizations with complex content management needs.
Before enabling Remote Live staging, you must configure the Liferay servers you want to use for your staging and live environments. You must also create a new blank site or asset library on your remote server and use its ID during staging configuration.
Prerequisites
Before configuring remote staging, ensure the following:
- Both the staging and live environments must have an admin user with identical credentials.
- All servers must be updated to the same update and patching level to ensure remote staging works correctly.
Cluster Outbound IP
You can retrieve your Liferay PaaS outbound IP by accessing the Liferay Cloud console, going into the Liferay service's shell and running the following command:
curl https://ifconfig.me
Note: The outbound IP address will depend on the location of your Liferay PaaS environment.
Live Environment Ingress IP
You can retrieve your Liferay Live Environment Ingress IP by accessing the Liferay Cloud console on your network endpoints page:
https://console.liferay.cloud/projects/YOUR_PROJECT_ID/network/endpoints
Configuration Steps
1. Configure portal-ext.properties
Add the following properties to the portal-ext.properties file and deploy them in both the staging and live environments:
tunneling.servlet.shared.secret=[abcdefghijklmnop] tunnel.servlet.hosts.allowed=127.0.0.1,SERVER_IP,[CLUSTER_OUTBOUND_IP]
Notes: Replace [abcdefghijklmnop] with your preferred secret value. Using environment variables and secrets is recommended for better security. Also replace [CLUSTER_OUTBOUND_IP] with the value you retrieved in previous steps.
2. System Settings Configuration
In both environments:
- Navigate to System Settings → Security → API Authentication → Tunnel Authentication.
- Click on
/api/liferay/do. - Under Hosts Allowed, add your Cluster Outboud IP in the end of the curent configuration:
127.0.0.1,SERVER_IP,[CLUSTER_OUTBOUND_IP] - Click Save.
3. Enable Remote Staging
In the staging environment:
- Go to the site you want to enable remote staging for.
- Navigate to Publishing → Staging.
- Select Remote Live.
- Enter the Live Environment Ingress IP of your live instance:
- If you face
javax.net.ssl.SSLHandshakeException: No subject alternative names matching IP address exception, use your live instance domain name instead, eg:webserver-[MY_INSTANCE].lfr.cloud
- If you face
- Set Remote Port to
443. - Retrieve the Remote Site ID from the live environment:
- Go to Configuration → Site Settings → Site Configuration to find the Site ID.
- Alternatively, look for the
groupIdin theGroup_table.
- Ensure the Use a Secure Network Connection checkbox is checked.
- Select the content to be staged and click Save.
Licensing and Environments
Licensing
- In a self-hosted environment, there is an added cost for additional production licenses to be used for remote staging environments. The same principle applies to Liferay Cloud.
- This means that Liferay Cloud customers must purchase an additional production environment in order to use remote staging.
Environments
- UAT environments can be used for staging, but DEV environments cannot.
- If a customer uses DEV as a remote staging environment, Support will not be able to assist with issues relating to this setup.
Additional Considerations
Large LAR Files
- The import/export process uses LAR files. Ensure the web server can handle the file size to prevent connection issues.
- Test with smaller files to avoid potential timeouts and errors.
Secret Management
- For Liferay PaaS customers, consider making the secret configurable through the Instance Settings.
- Use
tunneling.servlet.shared.secret.hex=truefor added security.
Troubleshooting and Common Issues
Lock Wait Timeout
This issue may occur during publishing, especially with large files. Investigate the underlying infrastructure to ensure it can handle the load.
DuplicateFriendlyURLEntryException
Address any specific errors that may arise during staging.
Summary
Remote staging in Liferay Cloud involves configuring both staging and live environments with appropriate properties, system settings, and ensuring secure connections. Address infrastructure limitations and potential errors to ensure a smooth staging process.
Conclusion
By following these steps, you can successfully configure remote staging in Liferay Cloud. This setup allows for secure and efficient content management, ensuring that your live site reflects the latest approved content changes from the staging environment.
Reference
Custom Images and Services
While Liferay Subscription Services provides support for Liferay Cloud in its docker images for the different services and other features which make up the Liferay Experience Cloud stack, it does not extend this support for any custom docker images or services.
Issues that are encountered while leveraging the Liferay Cloud “Custom Images and Services addon” are the responsibility of the customer. This extends towards the setup and configurations of any such custom images and services.
In general, Subscription Services will support all official Liferay Cloud-provided Liferay images, services, and features that run on the Liferay Cloud platform. This also includes any product defects and issues involving the docker or infrastructure layers of Liferay Cloud.
Do you support Bitbucket/GitLab integration?
Our Jenkins integration supports Git repositories hosted on GitHub, GitLab, and Bitbucket.
Read the documentation for more information:
- Configuring Your GitHub Repository
- Configuring Your GitLab Repository
- Configuring Your Bitbucket Repository
How is Auto Scaling charged?
By default, the Auto Scaling Feature comes disabled in every Liferay PaaS account. The customer can make use of this functionality by enabling it via the console, within the menu of the "Liferay" service in a production environment.
Once Auto Scaling is enabled, the platform will begin to keep track of the new instances deployed on an hourly basis. There will be an hourly charge for any extra instances deployed due to Auto Scaling. This activation is independent of the Liferay PaaS subscription procurement process.
Liferay will issue an invoice to the customer for the use of Auto Scaling after each quarter that the customer deploys, uses, or executes Auto Scaling instances, and the customer will pay such invoice(s) in accordance with the agreement.
Pricing
Pricing for each Instance of Liferay PaaS Subscription utilized through Auto-Scaling is based on the number of clock hours during which the customer utilizes each such Instance. For pricing purposes, total usage during a calendar quarter will be rounded up to the nearest full clock hour.
| Environment Type | Price per Instance per Hour |
| High Availability | $12.00 USD |
| Standard | $23.00 USD |
For clarity, the prices specified above are Liferay’s standard prices for auto-scaling of Liferay PaaS Instances. Such pricing is applicable to such auto-scaling usage unless a customer has entered into a separate written agreement with Liferay as to pricing for such usage.
For further information regarding the Auto Scaling feature, please read our documentation.
Liferay PaaS Go-Live Checklist
Introduction
The Liferay Cloud Team is committed to your project launching smoothly and has developed this Go Live Checklist to ensure performance is optimized and potential issues are caught in advance. This checklist was created from the experience of successfully deploying dozens of customer projects globally.
Priority Items to review (the following services are critical to a successful Go-Live):
- Plan Quotas
- Downtime
- Backup
- Domains
- Stress Test
- Auto Scaling.
Reviewing Your Architecture
Environments
Confirm that the production environment matches the subscription. On the Settings Page of your production environments, there should be a type "production" for the production environment (Environment type is a classification that denotes an environment's configuration). Check here for more information: Understanding Liferay Cloud Environments
Service Versions
Make sure all of your services are using the latest image versions. Check here for the latest versions: Services Changelog
Clustering
In case you purchased a High Availability environment, review to see if clustering is working properly. Check here for more information: Setting Up Clustering in Liferay PaaS
Development Lifecycle
Review if the Software Development Life Cycle (SLDC) is being used properly. Builds should be generated via Jenkins and Deployments should be made via Console UI. Check here for more information: Overview of the Liferay PaaS Deployment Workflow | Deploying Changes via the Liferay PaaS Console | Deploying Changes via the CLI Tool
Reviewing Your Metrics & Numbers
Alerts
Check existing alerts to see if there's anything that should be addressed before launch. Also, make sure that the main project contributors have changed their preferences to receive alerts via email. Check here for more information: Real-Time Alerts
Dynatrace
If High Availability or Dynatrace Add-Ons were purchased, check your subscription to see which environments should have a Dynatrace setup to detect problems. The main contributors should have access to the Dynatrace dashboard to facilitate the diagnosis process. To learn more about configuring Dynatrace, check here: Integrating Dynatrace with Production Environments
Plan Quotas
Be sure to deploy to all environments to confirm the quota. If you have changed your quota allocation, revert your changes for the production environment prior to going live. Check here for more information: Quotas
Reviewing Your Continuity Plan
Auto Scaling
We recommend having auto scaling turned on and tested before going to production. Check here for more information: Auto scaling
Disaster Recovery
If a Disaster Recovery environment was purchased, you should run a disaster recovery simulation to see how fast you can recover in case there is a downtime in an entire region. Check here for more information: Disaster Recovery Overview
Backup
Check to see if the backup feature is enabled, check the frequency to make sure it accommodates the project needs, and run a backup and restore to check if everything is working as expected. Check here for more information: Platform Services: Backup Service
Zero Downtime Deployments
Check to see if deployments are working without downtimes. If not, consider adjusting your liveness and readiness probes. Check here for more information: Troubleshooting Self-Healing
Reviewing your Project’s Benchmarks
Performance Comparison
Review to see if the performance of the new application is equivalent to the current installation. Check here for more information: Application Metrics
Stress Test
Run a stress test on the UAT environment and check the results. Please inform Support by opening a ticket on Liferay Help Center.
Reviewing the Final Go Live Details
Custom Domains
Review the DNS entries that are pointing to Liferay Cloud and analyze how the domains are being referenced. Note that Changes or additions to custom domains can take up to 24 hours to propagate. Please plan go-live timelines accordingly. Check here for more information: Custom Domains
VPN
Check if all VPN connections are working as expected. Check here for more information: VPN Integration Overview
Team Members
Review to see if the team members are added with the correct permissions on each environment. Check here for more information: Environment Teams and Roles
Final Thoughts
This Go Live Checklist was prepared with the typical Liferay PaaS configuration in mind. Additional precautions may need to be taken according to any unique customizations or integrations that your project uses. On behalf of the Liferay Cloud Team, we would like to thank you for choosing Liferay PaaS and look forward to partnering with you for years to come!
Liferay PaaS Performance and Penetration Test - Advanced Notice
Should we provide advanced notice to the Liferay Cloud team before initiating penetration testing or performance testing against one of our Liferay PaaS environments?
If so, how should we inform the team?
Resolution
When performance and/or penetration testing is performed, it can appear to Liferay that an attack is being executed against a customer environment. In order to avoid intervention by Liferay to protect the environment and/or connected infrastructure, we request that you provide notice of the testing window at least 15 days in advance.
Notice can be provided by opening a support ticket on Help Center.
Additional Information
Liferay PaaS Security Checklist
Introduction
This security checklist was created by the Liferay Team to offer another measure of protection for customer projects. The checklist covers best practices for Liferay PaaS. For Liferay PaaS security considerations and best practices, please refer to the Liferay Help Center.
Disclaimer: The items in this checklist are suggested best practices and it will be the end-user’s responsibility to implement.
General Items
| Item | Description |
| Repository | Migrate the default GitHub repository to a private GitHub/GitLab/Bitbucket repository owned by your organization. The default GitHub repository is provided as a starter template available for 10 days and for privacy regulations it should never be used to commit code owned by your organization. |
| Security Patches | Apply DXP and Liferay PaaS security-related fixes as soon as they are released. DXP docker images are published here. Liferay PaaS Service Change Logs are published here. |
| Commits to Repository | Care should be taken that any licenses, credentials, and secrets are not accidentally committed to the repository. Remember Liferay PaaS environments do not require you to supply a license. The enterprise Liferay DXP license is included as part of the deployment process. |
| Code Scans | Liferay PaaS provides a CI pipeline for builds. Automate and enforce cleaner and safer code practices by customizing the pipeline to run code scans on every build. |
| Elasticsearch | Enable Elasticsearch security features by setting the xpack.security.audit.enable variable to true. Set the ENABLE_XPACK_SECURITY environment variable to true. For more information visit the Elasticsearch security documentation here. |
Account Management
| Item | Description |
| Single Sign-On | Liferay PaaS can integrate with any SAML 2.0 compliant Single Sign-On Identity Provider to authenticate users to the Liferay PaaS platform. You may set up Multi-factor authentication for development and IT team members through any Identity Provider that supports MFA. |
| Default Portal Account | If you deploy the out-of-box build of the Liferay portal to your production environment, you should be aware that the default user test@liferay.com is available for sign-in with a weak password ‘test’ and must be changed as soon as possible. Also, disable the creation of new accounts. The dev environment has an extra layer of authentication at the webserver layer. |
| User Activities | Perform a periodic audit, at least quarterly, of user activities, in each Liferay PaaS environment as well as DXP portal. |
| Team Members | Audit Team Member access periodically, at least quarterly, making sure to go through each environment and delete inactive team members. The same applies to DXP roles and assignments. |
Network Controls
| Item | Description |
| Egress IP | If Liferay DXP accesses your private network, the Liferay Cloud cluster egress IP is available to be whitelisted. |
| Blacklisting or Whitelisting IPs | You can blacklist IP addresses from certain regions by configuring a Deny List in the Nginx web server configuration. For greater control and if the IP addresses of your users are known, you can set up an Allow list instead. |
| Public Endpoints | Although possible, and available for extreme backdoor scenarios, it is not a recommended practice to expose database endpoints or other service endpoints to the Internet as this bypasses the DDoS protection from the HTTPS load balancer. |
| Rate Limiting | Nginx can be configured to throttle requests from reaching the Liferay service. It is recommended that customers monitor their traffic patterns and acceptable rates of access to configure these settings. |
| DNS | Ensure that your DNS provider implements best practices related to DNS security. |
Backups
| Item | Description |
| Backup download | Backups in the Liferay PaaS are always encrypted at rest and in transit. However, if you download backups to a local machine you should ensure that you have mapped out your data flow so you can be in compliance with any regulations that you are required to adhere to. |
| PII Sanitizing | Using production data in non-production environments is helpful for debugging but does pose risks. When restoring backups into non-prod environments - implement scripts for PII data masking. |
HTTP Layer
| Item | Description |
| Ciphers | Depending on your compliance requirements you may request an increase in the restrictions on the cipher policy for SSL to reduce the set of SSL features allowed. By default, the policy is to allow a broad set of clients, including clients that support only out-of-date SSL features, to negotiate SSL. |
| CORS | Cross-origin resource sharing (CORS) can allow requests from an outside domain. It is recommended that you configure your Liferay DXP instance to allow only required domains to interact with your web application. |
| Content Security Policy | Content Security Policy (CSP) prevents malicious resources from being loaded by a web browser. The Content-Security-Policy header can be configured in the nginx configuration file. |
| URL Redirects | Ensure that HTTP to HTTPS redirects first redirect to a secure version of the same site to prevent man-in-the-middle redirects to malicious sites. Ensure that redirects never forward to HTTP. URL redirects are configurable via the nginx configuration file. |
| HSTS | HTTP Strict Transport Security (HSTS) header ensures that, after a user's initial visit to the website, they will immediately connect to the HTTPS website. The Strict-Transport-Security header can be inserted via the nginx configuration file. |
| Web Browsers | Nginx can be configured to verify the user agent header and block access to the site from outdated web browsers. |
Secrets
| Item | Description |
| Storage and Rotation | Save secrets in a safe storage and rotate them regularly. |
| Disaster Recovery Master Token | The master token used in DR configuration should be created as a secret. |
| Repository Access | The Private Access Token for your git repository (GitHub/GitLab/BitBucket) should be created as a secret. |
| Dynatrace | In case your Liferay PaaS subscription includes Dynatrace, the Dynatrace Tenant and Token should be created as a secret. |
| SSL Certificates | If you’re installing custom SSL certificates, create the key and certificate properties as secrets. |
| Dev Environment Access | The dev environment portal access is protected by default credentials which are shared in the provisioning email. You should customize the dev environment Nginx configuration and set your own credentials. To avoid committing to the repository implement the credentials as a Secret. |
Liferay PaaS Shared Activities
Below is a summary of various activities that are shared between your team and the Liferay Cloud team. If you need assistance in understanding or executing these tasks, submit a ticket and Liferay Support will be happy to assist.
| Activity | Liferay will... | As a Customer, I should... |
| Provide and maintain the Liferay Cloud infrastructure | Implement bug fixes, new features, and improvements for the Liferay Cloud Infrastructure and provide status updates for the Liferay Cloud Infrastructure at status.liferay.cloud | |
| Deploy the Liferay Cloud Service Stack | Deploy the default Liferay DXP, Enterprise Search, Database, CI Server, Web Server, Backup Services | Iterate, configure, and deploy Services |
| Develop and implement customizations | Provide features and tools to allow for development and deployment of customizations | Develop and deploy custom solutions |
| Upgrade software | Update the Liferay Cloud Infrastructure, publish all the Service versions, and make them available | Update Service Stack to fully supported versions |
| Monitor infrastructure | Monitor the Liferay Cloud Infrastructure and provide monitoring tools for customer environments | Monitor environment and take corrective action based on self-defined thresholds |
| Autoscaling | Provide Autoscaling functionality | Activate and deactivate Autoscaling functionality to maintain desired uptime |
| Backup and restore | Provide backup and restore functionality | Execute backup, restore, delete, and download functions to adhere to desired data storage, deletion, and archival policies |
| Security | Report Sev 1 Security Vulnerabilities within the Liferay Cloud Service Stack and implement security and authentication best practices for infrastructure | Take Liferay recommended action upon receiving report of a vulnerability and implement security best practices for custom solutions |
Liferay Premium Security for PaaS
The Premium Security add-on for PaaS, was introduced in early 2025 to provide PaaS customers with advanced capabilities that have already been available for our SaaS customers. It consists of two pillars:
- Advanced DDoS protection
- Vulnerability Management
To improve DDoS protection, the Liferay Security Team will conduct a Premium Security onboarding. During this live meeting, the Liferay Security Team analyzes the specifics of the customer's project, based upon which we will create individualized firewall rulesets for DDoS attack mitigation. Additionally, this package includes autoscaling coverage that allows for up to 5 extra Liferay instances to be automatically launched for a total of up to 24 hours every three months, at no additional cost. The 24-hour limit is tracked on a per-minute basis. The autoscaling coverage makes it easier to maintain application uptime during DDoS attacks.
Vulnerability Management consists of both a proactive and a reactive component. On the proactive side, Liferay performs monthly scans of the production environment and proactively notifies Premium Security for PaaS customers if any vulnerabilities are detected.
On the reactive side, customers can submit support tickets with up to four self-generated reports per year, regardless of the report type. Our Security team will review the reports and provide fixes for all confirmed critical and selected major issues.
Where are your data center locations?
Below is the list of regions on Liferay PaaS that can be used to host your environments and data:
- Oregon, USA:
us-west1 - Iowa, USA:
us-central1 - Montreal, Canada:
northamerica-northeast1 - São Paulo, Brazil:
southamerica-east1 - London, England:
europe-west2 - Frankfurt, Germany:
europe-west3 - Hamina, Finland:
europe-north1 - Doha, Qatar:
me-central1 - Dammam, Saudi Arabia:
me-central2 - *Mumbai, India:
asia-south1 - Jurong West, Singapore:
asia-southeast1 - Osaka, Japan:
asia-northeast2 - Tokyo, Japan:
asia-northeast1 - *Sydney, Australia:
australia-southeast1
* These regions require special approval for new projects. Please contact your account manager to request access. Choosing one of these regions could delay project creation for up to 5 business days.