SlideShare una empresa de Scribd logo
1 de 28
Client Extensions 101:
Future proofing your DXP Apps
Iliyan Peychev
Director,
Cloud Innovations
Learn about Liferay's new universal extension mechanism
Greg Amerson
Staff Software Engineer,
Cloud Innovations
Client Extensions 101
#Client Extensions
Greg Amerson & Iliyan Peychev
What problem are we trying to
solve?
Client Extensions 101
#Client Extensions
Greg Amerson & Iliyan Peychev
Your greatest strength begets your
greatest weakness.
William Shakespeare
Liferay DXP as a platform
#Client Extensions
Greg Amerson & Iliyan Peychev
Liferay DXP
Allows you to build anything on
top of it
Provides rich
set of APIs
Enriching DXP with Widgets and Services
#Client Extensions
Greg Amerson & Iliyan Peychev
Widgets
Widgets
Liferay DXP
Services Services
Enriching DXP with Widgets and Services
#Client Extensions
Greg Amerson & Iliyan Peychev
Widgets and Services are
executing in the same JVM
as DXP, making scaling
challenging
DXP exposes many
extension points (APIs),
making upgrades
challenging
Enriching DXP with Widgets and Services
#Client Extensions
Greg Amerson & Iliyan Peychev
How do you improve this part
of DXP without affecting the
user applications?
When one is upgraded, all
have to be upgraded
#Client Extensions
Greg Amerson & Iliyan Peychev
What is the solution?
Client Extensions 101
Client Extensions
#Client Extensions
Greg Amerson & Iliyan Peychev
Provide a headless API for
Client Extensions to
communicate with DXP
Make them Cloud ready!
Provide a generic mechanism
for extending the
functionality of DXP without
modifying the platform itself
Separate user
modifications from the
platform
Evolving and upgrading the Portal
#Client Extensions
Greg Amerson & Iliyan Peychev
New version of DXP
was released
Client Extensions
continue to work
client-extension.yaml file
is the source of truth
Client Extensions work on
both Liferay Experience
Cloud and DXP Self-
Hosted
Packaged in a single
artifact - Liferay Universal
File format archive - the
LUFFA file
#Client Extensions
Greg Amerson & Iliyan Peychev
Orchestration of Client
Extensions is done
automatically on Liferay
Experience Cloud
On DXP self-hosting,
you can still use all
previous customizations
(OSGi configs and
modules)
Operating outside DXP.
Not deployed in the same
JVM
Communicating with DXP
only using the headless
API, and in a secure way
Written in an arbitrary
language (where
applicable)
Client Extensions in a nutshell
Client Extensions 101
#Client Extensions
Greg Amerson & Iliyan Peychev
Secure communication
Secure communication
#Client Extensions
Greg Amerson & Iliyan Peychev
Based on OAuth2
Front-End Client Extensions can use OOTB `Liferay.authToken` to
communicate directly with DXP’s headless API
Microservice Client Extensions can register an OAuth2 Application in
DXP (User Agent or Headless Server profiles)
All communication among Client Extensions and DXP is secure by
default!
One Microservice Client Extension can securely call another
Microservice Client Extension
Front-End Client Extensions can securely call a Microservice Client
Extension
Client Extensions 101
#Client Extensions
Greg Amerson & Iliyan Peychev
Classification of Client Extensions
Configuration
Transfers runtime configuration
which changes DXP behavior
Examples:
● OAuth2 Application User
Agent
● OAuth2 Application Headless
Server
● Instance Settings
● …
Classification of Client Extensions
#Client Extensions
Greg Amerson & Iliyan Peychev
Front-End
Provides front-end resources (JS,
CSS, images) that are used on the
client (browser) side
Examples:
● Custom Element
● Global CSS
● Global JS
● Theme JS
● Theme Favicon
● Theme SpriteMap
● Static Content
● …
Microservice
Executable business logic or
workload (such as Resource
servers, Jobs or CronJobs)
Examples:
● NotificationType
● Object Action
● Workflow Action
● …
#Client Extensions
Greg Amerson & Iliyan Peychev
Batch
Declarative import of DXP
resources
Examples:
● Batch Engine
● Site Initializer
● Configurations-as-code
● …
Classification of Client Extensions
Client Extensions 101
#Client Extensions
Greg Amerson & Iliyan Peychev
Deployment of Client Extensions
Liferay Experience Cloud
● LCP API service sends Client
Extensions Config to Virtual
Instance of DXP
● The workload is orchestrated
automatically
● The configuration is injected
automatically
Self-hosted
● Client Extensions Config is read by
DXP
● Client Extension is registered
● Some workloads can be hosted by
DXP, other require orchestration
● Some require special configuration
variables
#Client Extensions
Greg Amerson & Iliyan Peychev
What happens when you deploy a Liferay Universal File format archive (LUFFA)?
Deployment of Client Extensions
Deploying Client Extensions to the Cloud
#Client Extensions
Greg Amerson & Iliyan Peychev
Classification Docker image Liferay Experience Cloud managed
Front-End liferay/caddy:latest Deployment
Batch liferay/batch:latest Job
Configuration liferay/noop:latest Job
Microservice Userdefined Deployment, Job, CronJob
Available Liferay Experience Cloud workloads based on Client
Extension classification
Client Extensions 101
#Client Extensions
Greg Amerson & Iliyan Peychev
Creating applications out of Client
Extensions
Leveraging the full power of Liferay Experience Cloud or your own
infrastructure
By combining Client Extensions
and deploying them on your own
infrastructure or on Liferay
Experience Cloud
Focus on business requirements
By extending DXP with your code,
your own tech-stack, without worrying about
upgrades or DXP internals
#Client Extensions
Greg Amerson & Iliyan Peychev
Creating applications out of Client Extensions
Seamless upgrades on Liferay
Experience Cloud
Upgrading DXP on Liferay Experience Cloud is done
by Liferay’s Site Reliability Engineers
Zero-downtime upgrade of your
applications on Liferay Experience Cloud
Deploying a new version of your Client Extensions on
LXC will be done with zero-downtime
#Client Extensions
Greg Amerson & Iliyan Peychev
Creating applications out of Client Extensions
Client Extensions 101
#Client Extensions
Greg Amerson & Iliyan Peychev
Where do I start?
Read the official documentation!
#Client Extensions
Greg Amerson & Iliyan Peychev
Contains reference documentation, how-to,
assembling and packaging, and much more!
learn.liferay.com is your
knowledge portal
Client Extensions
Documentation
Check the Liferay Sample Workspace!
#Client Extensions
Greg Amerson & Iliyan Peychev
This is all that fits in an image, but don’t worry,
there
are many more examples!
It contains multiple
examples of Client
Extensions
Liferay Sample Workspace
for Client Extensions
Dogfooding
#Client Extensions
Greg Amerson & Iliyan Peychev
Liferay is already using
Client Extensions for its own
products!
https://learn.liferay.com workspace
Feedback!
#Client Extensions
Greg Amerson & Iliyan Peychev
Please provide your
feedback!
Client Extensions are brand
new and still evolving
Thank you!

Más contenido relacionado

La actualidad más candente

Zensar Retail Presentation
Zensar Retail PresentationZensar Retail Presentation
Zensar Retail Presentation
Niraj Singh
 
OPEN TEXT ADMINISTRATION
OPEN TEXT ADMINISTRATIONOPEN TEXT ADMINISTRATION
OPEN TEXT ADMINISTRATION
SUMIT KUMAR
 
[D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki
[D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki[D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki
[D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki
Insight Technology, Inc.
 
Shushant CV_Presales_Bid Management
Shushant CV_Presales_Bid ManagementShushant CV_Presales_Bid Management
Shushant CV_Presales_Bid Management
Shushant Singh
 

La actualidad más candente (20)

Migrating to the SAP Cloud
Migrating to the SAP Cloud Migrating to the SAP Cloud
Migrating to the SAP Cloud
 
Zensar Retail Presentation
Zensar Retail PresentationZensar Retail Presentation
Zensar Retail Presentation
 
VMware Virtual SAN Presentation
VMware Virtual SAN PresentationVMware Virtual SAN Presentation
VMware Virtual SAN Presentation
 
RISE PCE CAA Migration Options_wave4.pdf
RISE PCE CAA Migration Options_wave4.pdfRISE PCE CAA Migration Options_wave4.pdf
RISE PCE CAA Migration Options_wave4.pdf
 
OPEN TEXT ADMINISTRATION
OPEN TEXT ADMINISTRATIONOPEN TEXT ADMINISTRATION
OPEN TEXT ADMINISTRATION
 
Salesforce and SAP Integration with Informatica Cloud
Salesforce and SAP Integration with Informatica CloudSalesforce and SAP Integration with Informatica Cloud
Salesforce and SAP Integration with Informatica Cloud
 
AWS Summit Seoul 2023 |투자를 모두에게, 토스증권의 MTS 구축 사례
AWS Summit Seoul 2023 |투자를 모두에게, 토스증권의 MTS 구축 사례AWS Summit Seoul 2023 |투자를 모두에게, 토스증권의 MTS 구축 사례
AWS Summit Seoul 2023 |투자를 모두에게, 토스증권의 MTS 구축 사례
 
Mastering SAP Monitoring - SAP SLT & RFC Connection Monitoring
Mastering SAP Monitoring - SAP SLT & RFC Connection MonitoringMastering SAP Monitoring - SAP SLT & RFC Connection Monitoring
Mastering SAP Monitoring - SAP SLT & RFC Connection Monitoring
 
nZDM.ppt
nZDM.pptnZDM.ppt
nZDM.ppt
 
[D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki
[D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki[D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki
[D14] 【詳解】インメモリーデータベース SAP HANA:実際の仕組みと動きを理解しよう!by Toshiro Morisaki
 
Virtual SAN 6.2, hyper-converged infrastructure software
Virtual SAN 6.2, hyper-converged infrastructure softwareVirtual SAN 6.2, hyper-converged infrastructure software
Virtual SAN 6.2, hyper-converged infrastructure software
 
SAP Cloud Platform Integration Services – L1 Deck
SAP Cloud Platform Integration Services – L1 DeckSAP Cloud Platform Integration Services – L1 Deck
SAP Cloud Platform Integration Services – L1 Deck
 
Shushant CV_Presales_Bid Management
Shushant CV_Presales_Bid ManagementShushant CV_Presales_Bid Management
Shushant CV_Presales_Bid Management
 
SaaS Reference Architectures: Review of Real-World Patterns & Strategies (GPS...
SaaS Reference Architectures: Review of Real-World Patterns & Strategies (GPS...SaaS Reference Architectures: Review of Real-World Patterns & Strategies (GPS...
SaaS Reference Architectures: Review of Real-World Patterns & Strategies (GPS...
 
IMPLEMENTATION BEST PRACTICES Sep 22.pdf
IMPLEMENTATION BEST PRACTICES Sep 22.pdfIMPLEMENTATION BEST PRACTICES Sep 22.pdf
IMPLEMENTATION BEST PRACTICES Sep 22.pdf
 
How to Split Your System into Microservices
How to Split Your System into MicroservicesHow to Split Your System into Microservices
How to Split Your System into Microservices
 
VMware Tanzu Introduction
VMware Tanzu IntroductionVMware Tanzu Introduction
VMware Tanzu Introduction
 
Corporate Brochure Accenture Management Consulting
Corporate Brochure Accenture Management ConsultingCorporate Brochure Accenture Management Consulting
Corporate Brochure Accenture Management Consulting
 
Rise with sap s 4 hana cloud, private edition service description guide
Rise with sap s 4 hana cloud, private edition service description guideRise with sap s 4 hana cloud, private edition service description guide
Rise with sap s 4 hana cloud, private edition service description guide
 
Docker on Power Systems
Docker on Power SystemsDocker on Power Systems
Docker on Power Systems
 

Similar a Client Extensions 101 - DEVCON 2023

Similar a Client Extensions 101 - DEVCON 2023 (20)

AWS Summit Singapore Webinar Edition | More Containers, Less Operations & Mig...
AWS Summit Singapore Webinar Edition | More Containers, Less Operations & Mig...AWS Summit Singapore Webinar Edition | More Containers, Less Operations & Mig...
AWS Summit Singapore Webinar Edition | More Containers, Less Operations & Mig...
 
DevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesDevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and Processes
 
KCD Italy 2022 - Application driven infrastructure with Crossplane
KCD Italy 2022 - Application driven infrastructure with CrossplaneKCD Italy 2022 - Application driven infrastructure with Crossplane
KCD Italy 2022 - Application driven infrastructure with Crossplane
 
Microsoft Ignite 2018 BRK3192 Container DevOps on Azure
Microsoft Ignite 2018 BRK3192 Container DevOps on AzureMicrosoft Ignite 2018 BRK3192 Container DevOps on Azure
Microsoft Ignite 2018 BRK3192 Container DevOps on Azure
 
Breaking the 2 Pizza Paradox with your Platform as an Application
Breaking the 2 Pizza Paradox with your Platform as an ApplicationBreaking the 2 Pizza Paradox with your Platform as an Application
Breaking the 2 Pizza Paradox with your Platform as an Application
 
AWS Summit Singapore - More Containers, Less Operations
AWS Summit Singapore - More Containers, Less OperationsAWS Summit Singapore - More Containers, Less Operations
AWS Summit Singapore - More Containers, Less Operations
 
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
 
Pivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry MeetupPivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry Meetup
 
Innovate Faster with Salesforce Heroku and AWS - CMP303 - re:Invent 2017
Innovate Faster with Salesforce Heroku and AWS - CMP303 - re:Invent 2017Innovate Faster with Salesforce Heroku and AWS - CMP303 - re:Invent 2017
Innovate Faster with Salesforce Heroku and AWS - CMP303 - re:Invent 2017
 
Translating Developer Productivity to Netflix Customer Delight
Translating Developer Productivity to Netflix Customer DelightTranslating Developer Productivity to Netflix Customer Delight
Translating Developer Productivity to Netflix Customer Delight
 
DevOps at Amazon: A Look at Our Tools and Processes by Matthew Trescot, Manag...
DevOps at Amazon: A Look at Our Tools and Processes by Matthew Trescot, Manag...DevOps at Amazon: A Look at Our Tools and Processes by Matthew Trescot, Manag...
DevOps at Amazon: A Look at Our Tools and Processes by Matthew Trescot, Manag...
 
DevOps Case Studies
DevOps Case StudiesDevOps Case Studies
DevOps Case Studies
 
A Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native StackA Hitchhiker's Guide to the Cloud Native Stack
A Hitchhiker's Guide to the Cloud Native Stack
 
A Hitchhiker’s Guide to the Cloud Native Stack. #DevoxxPL
A Hitchhiker’s Guide to the Cloud Native Stack. #DevoxxPLA Hitchhiker’s Guide to the Cloud Native Stack. #DevoxxPL
A Hitchhiker’s Guide to the Cloud Native Stack. #DevoxxPL
 
DevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver FasterDevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver Faster
 
Slide DevSecOps Microservices
Slide DevSecOps Microservices Slide DevSecOps Microservices
Slide DevSecOps Microservices
 
KCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
KCD Munich - Cloud Native Platform Dilemma - Turning it into an OpportunityKCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
KCD Munich - Cloud Native Platform Dilemma - Turning it into an Opportunity
 
Netflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open SourceNetflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open Source
 
Building Slack's internal developer platform as a product.pdf
Building Slack's internal developer platform as a product.pdfBuilding Slack's internal developer platform as a product.pdf
Building Slack's internal developer platform as a product.pdf
 
DevOps in Amazon.com
DevOps in Amazon.com DevOps in Amazon.com
DevOps in Amazon.com
 

Más de peychevi

Implementing AutoComplete for Freemarker and Velocity languages in ACE Editor
Implementing AutoComplete for Freemarker and Velocity languages in ACE EditorImplementing AutoComplete for Freemarker and Velocity languages in ACE Editor
Implementing AutoComplete for Freemarker and Velocity languages in ACE Editor
peychevi
 
Dynamic User Interfaces for Desktop and Mobile
Dynamic User Interfaces for Desktop and MobileDynamic User Interfaces for Desktop and Mobile
Dynamic User Interfaces for Desktop and Mobile
peychevi
 

Más de peychevi (7)

Extending Kubernetes with Operators
Extending Kubernetes with OperatorsExtending Kubernetes with Operators
Extending Kubernetes with Operators
 
Best practices for creating modular Web applications
Best practices for creating modular Web applicationsBest practices for creating modular Web applications
Best practices for creating modular Web applications
 
Modern Web Developement
Modern Web DevelopementModern Web Developement
Modern Web Developement
 
Creating a WYSIWYG Editor with React
Creating a WYSIWYG Editor with ReactCreating a WYSIWYG Editor with React
Creating a WYSIWYG Editor with React
 
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 eraHTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
HTTP/2 and QUICK protocols. Optimizing the Web stack for HTTP/2 era
 
Implementing AutoComplete for Freemarker and Velocity languages in ACE Editor
Implementing AutoComplete for Freemarker and Velocity languages in ACE EditorImplementing AutoComplete for Freemarker and Velocity languages in ACE Editor
Implementing AutoComplete for Freemarker and Velocity languages in ACE Editor
 
Dynamic User Interfaces for Desktop and Mobile
Dynamic User Interfaces for Desktop and MobileDynamic User Interfaces for Desktop and Mobile
Dynamic User Interfaces for Desktop and Mobile
 

Último

FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
 
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 

Último (20)

Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdf
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
Work-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptxWork-Permit-Receiver-in-Saudi-Aramco.pptx
Work-Permit-Receiver-in-Saudi-Aramco.pptx
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 

Client Extensions 101 - DEVCON 2023

  • 1. Client Extensions 101: Future proofing your DXP Apps Iliyan Peychev Director, Cloud Innovations Learn about Liferay's new universal extension mechanism Greg Amerson Staff Software Engineer, Cloud Innovations
  • 2. Client Extensions 101 #Client Extensions Greg Amerson & Iliyan Peychev What problem are we trying to solve?
  • 3. Client Extensions 101 #Client Extensions Greg Amerson & Iliyan Peychev Your greatest strength begets your greatest weakness. William Shakespeare
  • 4. Liferay DXP as a platform #Client Extensions Greg Amerson & Iliyan Peychev Liferay DXP Allows you to build anything on top of it Provides rich set of APIs
  • 5. Enriching DXP with Widgets and Services #Client Extensions Greg Amerson & Iliyan Peychev Widgets Widgets Liferay DXP Services Services
  • 6. Enriching DXP with Widgets and Services #Client Extensions Greg Amerson & Iliyan Peychev Widgets and Services are executing in the same JVM as DXP, making scaling challenging DXP exposes many extension points (APIs), making upgrades challenging
  • 7. Enriching DXP with Widgets and Services #Client Extensions Greg Amerson & Iliyan Peychev How do you improve this part of DXP without affecting the user applications? When one is upgraded, all have to be upgraded
  • 8. #Client Extensions Greg Amerson & Iliyan Peychev What is the solution? Client Extensions 101
  • 9. Client Extensions #Client Extensions Greg Amerson & Iliyan Peychev Provide a headless API for Client Extensions to communicate with DXP Make them Cloud ready! Provide a generic mechanism for extending the functionality of DXP without modifying the platform itself Separate user modifications from the platform
  • 10. Evolving and upgrading the Portal #Client Extensions Greg Amerson & Iliyan Peychev New version of DXP was released Client Extensions continue to work
  • 11. client-extension.yaml file is the source of truth Client Extensions work on both Liferay Experience Cloud and DXP Self- Hosted Packaged in a single artifact - Liferay Universal File format archive - the LUFFA file #Client Extensions Greg Amerson & Iliyan Peychev Orchestration of Client Extensions is done automatically on Liferay Experience Cloud On DXP self-hosting, you can still use all previous customizations (OSGi configs and modules) Operating outside DXP. Not deployed in the same JVM Communicating with DXP only using the headless API, and in a secure way Written in an arbitrary language (where applicable) Client Extensions in a nutshell
  • 12. Client Extensions 101 #Client Extensions Greg Amerson & Iliyan Peychev Secure communication
  • 13. Secure communication #Client Extensions Greg Amerson & Iliyan Peychev Based on OAuth2 Front-End Client Extensions can use OOTB `Liferay.authToken` to communicate directly with DXP’s headless API Microservice Client Extensions can register an OAuth2 Application in DXP (User Agent or Headless Server profiles) All communication among Client Extensions and DXP is secure by default! One Microservice Client Extension can securely call another Microservice Client Extension Front-End Client Extensions can securely call a Microservice Client Extension
  • 14. Client Extensions 101 #Client Extensions Greg Amerson & Iliyan Peychev Classification of Client Extensions
  • 15. Configuration Transfers runtime configuration which changes DXP behavior Examples: ● OAuth2 Application User Agent ● OAuth2 Application Headless Server ● Instance Settings ● … Classification of Client Extensions #Client Extensions Greg Amerson & Iliyan Peychev Front-End Provides front-end resources (JS, CSS, images) that are used on the client (browser) side Examples: ● Custom Element ● Global CSS ● Global JS ● Theme JS ● Theme Favicon ● Theme SpriteMap ● Static Content ● …
  • 16. Microservice Executable business logic or workload (such as Resource servers, Jobs or CronJobs) Examples: ● NotificationType ● Object Action ● Workflow Action ● … #Client Extensions Greg Amerson & Iliyan Peychev Batch Declarative import of DXP resources Examples: ● Batch Engine ● Site Initializer ● Configurations-as-code ● … Classification of Client Extensions
  • 17. Client Extensions 101 #Client Extensions Greg Amerson & Iliyan Peychev Deployment of Client Extensions
  • 18. Liferay Experience Cloud ● LCP API service sends Client Extensions Config to Virtual Instance of DXP ● The workload is orchestrated automatically ● The configuration is injected automatically Self-hosted ● Client Extensions Config is read by DXP ● Client Extension is registered ● Some workloads can be hosted by DXP, other require orchestration ● Some require special configuration variables #Client Extensions Greg Amerson & Iliyan Peychev What happens when you deploy a Liferay Universal File format archive (LUFFA)? Deployment of Client Extensions
  • 19. Deploying Client Extensions to the Cloud #Client Extensions Greg Amerson & Iliyan Peychev Classification Docker image Liferay Experience Cloud managed Front-End liferay/caddy:latest Deployment Batch liferay/batch:latest Job Configuration liferay/noop:latest Job Microservice Userdefined Deployment, Job, CronJob Available Liferay Experience Cloud workloads based on Client Extension classification
  • 20. Client Extensions 101 #Client Extensions Greg Amerson & Iliyan Peychev Creating applications out of Client Extensions
  • 21. Leveraging the full power of Liferay Experience Cloud or your own infrastructure By combining Client Extensions and deploying them on your own infrastructure or on Liferay Experience Cloud Focus on business requirements By extending DXP with your code, your own tech-stack, without worrying about upgrades or DXP internals #Client Extensions Greg Amerson & Iliyan Peychev Creating applications out of Client Extensions
  • 22. Seamless upgrades on Liferay Experience Cloud Upgrading DXP on Liferay Experience Cloud is done by Liferay’s Site Reliability Engineers Zero-downtime upgrade of your applications on Liferay Experience Cloud Deploying a new version of your Client Extensions on LXC will be done with zero-downtime #Client Extensions Greg Amerson & Iliyan Peychev Creating applications out of Client Extensions
  • 23. Client Extensions 101 #Client Extensions Greg Amerson & Iliyan Peychev Where do I start?
  • 24. Read the official documentation! #Client Extensions Greg Amerson & Iliyan Peychev Contains reference documentation, how-to, assembling and packaging, and much more! learn.liferay.com is your knowledge portal Client Extensions Documentation
  • 25. Check the Liferay Sample Workspace! #Client Extensions Greg Amerson & Iliyan Peychev This is all that fits in an image, but don’t worry, there are many more examples! It contains multiple examples of Client Extensions Liferay Sample Workspace for Client Extensions
  • 26. Dogfooding #Client Extensions Greg Amerson & Iliyan Peychev Liferay is already using Client Extensions for its own products! https://learn.liferay.com workspace
  • 27. Feedback! #Client Extensions Greg Amerson & Iliyan Peychev Please provide your feedback! Client Extensions are brand new and still evolving