SlideShare ist ein Scribd-Unternehmen logo
1 von 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!

Weitere ähnliche Inhalte

Was ist angesagt?

System Resource Utilization Monitor を知ろう
System Resource Utilization Monitor を知ろうSystem Resource Utilization Monitor を知ろう
System Resource Utilization Monitor を知ろう彰 村地
 
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQS
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQSAWS Black Belt Techシリーズ Amazon SNS / Amazon SQS
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQSAmazon Web Services Japan
 
AWS Blackbelt 2015シリーズ Elastic Load Balancing
AWS Blackbelt 2015シリーズ Elastic Load BalancingAWS Blackbelt 2015シリーズ Elastic Load Balancing
AWS Blackbelt 2015シリーズ Elastic Load BalancingAmazon Web Services Japan
 
AWSのインフラはプログラミングコードで構築!AWS Cloud Development Kit 入門
AWSのインフラはプログラミングコードで構築!AWS Cloud Development Kit 入門AWSのインフラはプログラミングコードで構築!AWS Cloud Development Kit 入門
AWSのインフラはプログラミングコードで構築!AWS Cloud Development Kit 入門Amazon Web Services Japan
 
既存RailsアプリをSSO化して、本番環境で活用した話【WESEEK Tech Conf #12】
既存RailsアプリをSSO化して、本番環境で活用した話【WESEEK Tech Conf #12】既存RailsアプリをSSO化して、本番環境で活用した話【WESEEK Tech Conf #12】
既存RailsアプリをSSO化して、本番環境で活用した話【WESEEK Tech Conf #12】WESEEKWESEEK
 
Strutsから移行する人のためのjsf基礎
Strutsから移行する人のためのjsf基礎Strutsから移行する人のためのjsf基礎
Strutsから移行する人のためのjsf基礎Satoshi Kubo
 
Openshift Container Platform
Openshift Container PlatformOpenshift Container Platform
Openshift Container PlatformDLT Solutions
 
AWS WAF のマネージドルールって結局どれを選べばいいの?
AWS WAF のマネージドルールって結局どれを選べばいいの?AWS WAF のマネージドルールって結局どれを選べばいいの?
AWS WAF のマネージドルールって結局どれを選べばいいの?YOJI WATANABE
 
Cortadora láser co2
Cortadora láser co2Cortadora láser co2
Cortadora láser co2Fer Yanez
 
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...Amazon Web Services Japan
 
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続Amazon Web Services Japan
 
Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会Etsuji Nakai
 
20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBS20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBSAmazon Web Services Japan
 
Sap Solman Instguide Dba Cockpit Setup
Sap Solman Instguide Dba Cockpit SetupSap Solman Instguide Dba Cockpit Setup
Sap Solman Instguide Dba Cockpit Setupwlacaze
 
PHPとシグナル、その裏側
PHPとシグナル、その裏側PHPとシグナル、その裏側
PHPとシグナル、その裏側do_aki
 
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデートAmazon Web Services Japan
 
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)NTT DATA Technology & Innovation
 
20分でわかるgVisor入門
20分でわかるgVisor入門20分でわかるgVisor入門
20分でわかるgVisor入門Shuji Yamada
 

Was ist angesagt? (20)

System Resource Utilization Monitor を知ろう
System Resource Utilization Monitor を知ろうSystem Resource Utilization Monitor を知ろう
System Resource Utilization Monitor を知ろう
 
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQS
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQSAWS Black Belt Techシリーズ Amazon SNS / Amazon SQS
AWS Black Belt Techシリーズ Amazon SNS / Amazon SQS
 
AWS Blackbelt 2015シリーズ Elastic Load Balancing
AWS Blackbelt 2015シリーズ Elastic Load BalancingAWS Blackbelt 2015シリーズ Elastic Load Balancing
AWS Blackbelt 2015シリーズ Elastic Load Balancing
 
AWSのインフラはプログラミングコードで構築!AWS Cloud Development Kit 入門
AWSのインフラはプログラミングコードで構築!AWS Cloud Development Kit 入門AWSのインフラはプログラミングコードで構築!AWS Cloud Development Kit 入門
AWSのインフラはプログラミングコードで構築!AWS Cloud Development Kit 入門
 
既存RailsアプリをSSO化して、本番環境で活用した話【WESEEK Tech Conf #12】
既存RailsアプリをSSO化して、本番環境で活用した話【WESEEK Tech Conf #12】既存RailsアプリをSSO化して、本番環境で活用した話【WESEEK Tech Conf #12】
既存RailsアプリをSSO化して、本番環境で活用した話【WESEEK Tech Conf #12】
 
Strutsから移行する人のためのjsf基礎
Strutsから移行する人のためのjsf基礎Strutsから移行する人のためのjsf基礎
Strutsから移行する人のためのjsf基礎
 
Openshift Container Platform
Openshift Container PlatformOpenshift Container Platform
Openshift Container Platform
 
AWS Blackbelt 2015シリーズ AWS Lambda
AWS Blackbelt 2015シリーズ AWS LambdaAWS Blackbelt 2015シリーズ AWS Lambda
AWS Blackbelt 2015シリーズ AWS Lambda
 
AWS WAF のマネージドルールって結局どれを選べばいいの?
AWS WAF のマネージドルールって結局どれを選べばいいの?AWS WAF のマネージドルールって結局どれを選べばいいの?
AWS WAF のマネージドルールって結局どれを選べばいいの?
 
Cortadora láser co2
Cortadora láser co2Cortadora láser co2
Cortadora láser co2
 
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
 
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
20200219 AWS Black Belt Online Seminar オンプレミスとAWS間の冗長化接続
 
Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会Docker with RHEL7 技術勉強会
Docker with RHEL7 技術勉強会
 
20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBS20190320 AWS Black Belt Online Seminar Amazon EBS
20190320 AWS Black Belt Online Seminar Amazon EBS
 
Sap Solman Instguide Dba Cockpit Setup
Sap Solman Instguide Dba Cockpit SetupSap Solman Instguide Dba Cockpit Setup
Sap Solman Instguide Dba Cockpit Setup
 
PHPとシグナル、その裏側
PHPとシグナル、その裏側PHPとシグナル、その裏側
PHPとシグナル、その裏側
 
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
20191218 AWS Black Belt Online Seminar AWSのマネジメント&ガバナンス サービスアップデート
 
Amazon ElastiCacheのはじめ方
Amazon ElastiCacheのはじめ方Amazon ElastiCacheのはじめ方
Amazon ElastiCacheのはじめ方
 
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
IAM Roles Anywhereのない世界とある世界(2022年のAWSアップデートを振り返ろう ~Season 4~ 発表資料)
 
20分でわかるgVisor入門
20分でわかるgVisor入門20分でわかるgVisor入門
20分でわかるgVisor入門
 

Ähnlich wie Client Extensions 101 - DEVCON 2023

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...Amazon Web Services
 
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 ProcessesAmazon Web Services
 
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 Crossplanesparkfabrik
 
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 AzureJessica Deen
 
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 ApplicationMark Rendell
 
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 OperationsAmazon Web Services
 
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...sparkfabrik
 
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 Meetupcornelia davis
 
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 2017Amazon Web Services
 
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 DelightVasanth Asokan
 
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...Amazon Web Services
 
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 StackQAware GmbH
 
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. #DevoxxPLMario-Leander Reimer
 
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 FasterAmazon Web Services
 
Slide DevSecOps Microservices
Slide DevSecOps Microservices Slide DevSecOps Microservices
Slide DevSecOps Microservices Hendri Karisma
 
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 OpportunityAndreas Grabner
 
Netflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open SourceNetflix Cloud Architecture and Open Source
Netflix Cloud Architecture and Open Sourceaspyker
 
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.pdfJavier Turégano Molina
 

Ähnlich wie 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
 

Mehr von peychevi

Extending Kubernetes with Operators
Extending Kubernetes with OperatorsExtending Kubernetes with Operators
Extending Kubernetes with Operatorspeychevi
 
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 applicationspeychevi
 
Modern Web Developement
Modern Web DevelopementModern Web Developement
Modern Web Developementpeychevi
 
Creating a WYSIWYG Editor with React
Creating a WYSIWYG Editor with ReactCreating a WYSIWYG Editor with React
Creating a WYSIWYG Editor with Reactpeychevi
 
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 erapeychevi
 
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 Editorpeychevi
 
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 Mobilepeychevi
 

Mehr von 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
 

Kürzlich hochgeladen

School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdfKamal Acharya
 
kiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal loadkiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal loadhamedmustafa094
 
Wadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptxWadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptxNadaHaitham1
 
PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiessarkmank1
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdfKamal Acharya
 
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLEGEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLEselvakumar948
 
Computer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to ComputersComputer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to ComputersMairaAshraf6
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdfKamal Acharya
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapRishantSharmaFr
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxSCMS School of Architecture
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...Amil baba
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesMayuraD1
 
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...drmkjayanthikannan
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationBhangaleSonal
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityMorshed Ahmed Rahath
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Call Girls Mumbai
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Servicemeghakumariji156
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsvanyagupta248
 

Kürzlich hochgeladen (20)

School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
kiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal loadkiln thermal load.pptx kiln tgermal load
kiln thermal load.pptx kiln tgermal load
 
Wadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptxWadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptx
 
PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and properties
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLEGEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
GEAR TRAIN- BASIC CONCEPTS AND WORKING PRINCIPLE
 
Computer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to ComputersComputer Lecture 01.pptxIntroduction to Computers
Computer Lecture 01.pptxIntroduction to Computers
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
 
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 

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