SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
Building applications in a
Micro-frontends way
Prasanna N Venkatesan@pvenk
Lead Developer with
ThoughtWorks for 9
Years
pvenk
prasann
#java #ruby #javascript #clojure
prasann@thoughtworks.com
AGENDA
Team and Tech-
stack
Introducing Micro-
frontends
Things to take care
in Micro-frontends
When to choose
Micro-frontends
TEAM AND TECH-STACK
Migrate a legacy application
for selling cars by 2020
5teams with 30developers
distributed over 2countries
AGENDA
Team and Tech-
stack
Introducing Micro-
frontends
Things to take care
in Micro-frontends
When to choose
Micro-frontends
INTRODUCING MICRO-FRONTENDS
Monoliths aren’t a
bad design choice
Monolith
web
application
INTRODUCING MICRO-FRONTENDS
Then came Microservices
Monolith
web
application
● Strong module boundaries
● Independent deployment
● Technology diversity
But...
INTRODUCING MICRO-FRONTENDS
Microservices were like these
Monolith
web
application Independent deployments
!== Independent releases
Frontend Monolith
INTRODUCING MICRO-FRONTENDS
All of Microservices’
promises
+
Independent releases
Frontend Monolith
Monolith
web
application
Micro-frontends
AGENDA
Team and Tech-
stack
Introducing Micro-
frontends
Things to take care
in Micro-frontends
When to choose
Micro-frontends
THINGS TO LOOK OUT IN MICRO-FRONTENDS
● Composing multiple frontends
● Sharing data between multiple
frontends.
● Consistent UX across multiple frontends
● Testing strategy
INTRODUCING SERVICES
Configure
Search
Order
Frame
A business-logic agonistic
orchestrator service that knows
how to download the rest of the
services’ frontend
1
3
Composing Multiple
Frontends
COMPOSING MULTIPLE FRONTENDS
Build time
Composition
Run-time
Composition
vs
BUILD TIME FRONTEND COMPOSITION
Search
Configure
Order
Package
Registry
Frame
deploys to
deploys to
deploys to
builds the
app
deploys
App
Server
BUILD TIME FRONTEND COMPOSITION
Good dependency
management resulting in
smaller bundles
Independent cross team
development
A monolith built by
different teams
Non atomic deployments
RUN TIME FRONTEND COMPOSITION
Frame
downloaded initially
Search
Configure
Order
downloaded later
dow
nloaded
later
downloadedlater
Integration happens in
browser
RUN TIME FRONTEND COMPOSITION - TOOLKIT
Client Side
● JSPM
● SystemJS
● FrintJS
● Single-Spa
Server Side
● SSI (Server side
includes)
● Tailor (from Zalando)
RUN TIME FRONTEND COMPOSITION
Independent teams with
independent deployments.
Atomic deployments, so no
versioning issues.
Too many network calls
from client, with increased
bundle size.
Sharing data
between multiple
frontends
SHARING DATA - COMPONENT INITIALIZATION
SHARING DATA - BROWSER STORE
State
Management
Tools
MobX
SHARING DATA - THROUGH DOM EVENTS
SHARING DATA - REDUX ACTIONS
● Reducers will receive all
actions within a store.
● Dynamically possible to
combine reducers after
store initialization.
Design consistency
DESIGN CONSISTENCY
Design
Issues
UX
Consistency
CSS
Ambiguity
CSS AMBIGUITY
CSS AMBIGUITY
UX CONSISTENCY
UX CONSISTENCY
Design
Guild
UX CONSISTENCY
Design Guild
# 0 0 7 8 b f
0 ,1 2 0 ,1 9 1
# 0 0 b c c d
0 ,1 8 8 ,2 0 5
# 7 d c e d 5
1 2 5 ,2 0 6 ,2 1 3
# 0 0 a a 5 b
0 ,1 7 0 ,9 1
# 8 5 b 8 8 0
1 3 3 ,1 8 4 ,1 2 8
# b d b d 3 2
1 8 9 ,1 8 9 ,5 0
# f f f 3 5 0
2 5 5 ,2 4 3 ,8 0
# f b e 0 c e
2 5 1 ,2 2 4 ,2 0 6
# f 2 b a 9 7
2 4 2 ,1 8 6 ,1 5 1
# a 1 7 8 6 1
1 6 1 ,1 2 0 ,9 7
# 8 0 8 1 8 4
1 2 8 ,1 2 9 ,1 3 2
# e e e e e e
2 3 8 ,2 3 8 ,2 3 8
# e e 5 b a 0
2 3 8 ,9 1 ,1 6 0
# 7 0 2 2 6 9
1 1 2 ,3 4 ,1 0 5
# b 5 1 b 5 8
1 8 1 ,2 7 ,8 8
# e d 3 1 2 f
2 3 ` 7 ,4 9 ,4 7
# f 5 8 a 3 3
2 4 5 ,1 3 8 ,5 1
# 5 f 3 c 2 5
9 5 ,6 0 ,3 7
Styleguide
Testing strategy
TESTING STRATEGY
3
3
Integration Tests
● Consumer driven
Contracts (CDC)
● Api journey tests
TESTING STRATEGY - CDC
3
4
● Frame services is the consumer of
all services
● Frame issues a contract that runs
in all pipelines
TESTING STRATEGY - CDC
3
5
Sample of
Frame’s
contract
TESTING STRATEGY
3
6
Functional Tests
TESTING STRATEGY
3
7
Service level testing
Application Smoke
Test
AGENDA
Team and Tech-
stack
Introducing Micro-
frontends
Things to take care
in Micro-frontends
When to choose
Micro-frontends
WHEN MICRO-FRONTENDS
● Distributed self-contained teams, with a need for
independent releases.
● Collaborate with different frameworks in the frontend.
● Teams have experience building Microservices application,
and willing to take it to next step.
It’s not a sprint, it’s a
marathon.
Questions?
Prasanna N Venkatesan@pvenk

Contenu connexe

Tendances

Service integration made easy with Open Source Kuma
Service integration made easy with Open Source KumaService integration made easy with Open Source Kuma
Service integration made easy with Open Source Kuma
Sven Bernhardt
 
BibinKT_resume
BibinKT_resumeBibinKT_resume
BibinKT_resume
Bibin KT
 

Tendances (20)

From Microservices to Service Mesh - devcafe event - July 2018
From Microservices to Service Mesh - devcafe event - July 2018From Microservices to Service Mesh - devcafe event - July 2018
From Microservices to Service Mesh - devcafe event - July 2018
 
Service Mesh for Microservices - Vietnam Mobile Day - June 2018
Service Mesh for Microservices - Vietnam Mobile Day - June 2018Service Mesh for Microservices - Vietnam Mobile Day - June 2018
Service Mesh for Microservices - Vietnam Mobile Day - June 2018
 
Atwix - Ярослав Рогоза
Atwix - Ярослав РогозаAtwix - Ярослав Рогоза
Atwix - Ярослав Рогоза
 
MuleSoft London Community September 2020 - Project Vita
MuleSoft London Community September 2020 - Project VitaMuleSoft London Community September 2020 - Project Vita
MuleSoft London Community September 2020 - Project Vita
 
Senior C# .Net Developer job in London, see @bilal_abrs
Senior C#  .Net Developer job in London, see @bilal_abrsSenior C#  .Net Developer job in London, see @bilal_abrs
Senior C# .Net Developer job in London, see @bilal_abrs
 
Service integration made easy with Open Source Kuma
Service integration made easy with Open Source KumaService integration made easy with Open Source Kuma
Service integration made easy with Open Source Kuma
 
Kubernetes: Increasing velocity without sacrificing quality
Kubernetes: Increasing velocity without sacrificing qualityKubernetes: Increasing velocity without sacrificing quality
Kubernetes: Increasing velocity without sacrificing quality
 
Nitrodroid 2013 | Building your first Android App on PhoneGap
Nitrodroid 2013 | Building your first Android App on PhoneGapNitrodroid 2013 | Building your first Android App on PhoneGap
Nitrodroid 2013 | Building your first Android App on PhoneGap
 
Senior C# .Net Developer job in London from abrs
Senior C#  .Net Developer job in London from abrsSenior C#  .Net Developer job in London from abrs
Senior C# .Net Developer job in London from abrs
 
Of Microservices and Microservices - Robert Munteanu
Of Microservices and Microservices -  Robert MunteanuOf Microservices and Microservices -  Robert Munteanu
Of Microservices and Microservices - Robert Munteanu
 
Stop Configuring Varnish and Start Coding (NAMER)
Stop Configuring Varnish and Start Coding (NAMER)Stop Configuring Varnish and Start Coding (NAMER)
Stop Configuring Varnish and Start Coding (NAMER)
 
SOA, OTD, and Web 2.0 = Collaboration
SOA, OTD, and Web 2.0 = CollaborationSOA, OTD, and Web 2.0 = Collaboration
SOA, OTD, and Web 2.0 = Collaboration
 
Develop, deploy, and operate services at reddit scale oscon 2018
Develop, deploy, and operate services at reddit scale   oscon 2018Develop, deploy, and operate services at reddit scale   oscon 2018
Develop, deploy, and operate services at reddit scale oscon 2018
 
BibinKT_resume
BibinKT_resumeBibinKT_resume
BibinKT_resume
 
Kubernetes at Reddit: An Origin Story - KubeCon NA 2018
Kubernetes at Reddit: An Origin Story - KubeCon NA 2018Kubernetes at Reddit: An Origin Story - KubeCon NA 2018
Kubernetes at Reddit: An Origin Story - KubeCon NA 2018
 
10th Manila MuleSoft Meetup Aug 2021
10th Manila MuleSoft Meetup Aug 202110th Manila MuleSoft Meetup Aug 2021
10th Manila MuleSoft Meetup Aug 2021
 
MVP with GWT and GWTP
MVP with GWT and GWTPMVP with GWT and GWTP
MVP with GWT and GWTP
 
Continuous delivery journey at LesFurets.com
Continuous delivery journey at LesFurets.comContinuous delivery journey at LesFurets.com
Continuous delivery journey at LesFurets.com
 
Lightning barcelona 2-6_synchronizing-activiti-user-tasks
Lightning barcelona 2-6_synchronizing-activiti-user-tasksLightning barcelona 2-6_synchronizing-activiti-user-tasks
Lightning barcelona 2-6_synchronizing-activiti-user-tasks
 
Applanga - Going full circle - Automated Screenshots - In-Context Translation...
Applanga - Going full circle - Automated Screenshots - In-Context Translation...Applanga - Going full circle - Automated Screenshots - In-Context Translation...
Applanga - Going full circle - Automated Screenshots - In-Context Translation...
 

Similaire à Building application in a "Microfrontends" way - Prasanna N Venkatesen *XConf Munich&Barcelona

Rajendra Kumar Sahu_243535(Maximo 7 5 Certified )
Rajendra Kumar Sahu_243535(Maximo 7 5 Certified )Rajendra Kumar Sahu_243535(Maximo 7 5 Certified )
Rajendra Kumar Sahu_243535(Maximo 7 5 Certified )
Rajendra Kumar Sahu
 
SH 1 - SES 4 - Microservices - Andrew Morgan TLV.pptx
SH 1 - SES 4 - Microservices - Andrew Morgan TLV.pptxSH 1 - SES 4 - Microservices - Andrew Morgan TLV.pptx
SH 1 - SES 4 - Microservices - Andrew Morgan TLV.pptx
MongoDB
 

Similaire à Building application in a "Microfrontends" way - Prasanna N Venkatesen *XConf Munich&Barcelona (20)

Building application in a "Microfrontends" way - Matthias Lauf *XConf Manchester
Building application in a "Microfrontends" way - Matthias Lauf *XConf ManchesterBuilding application in a "Microfrontends" way - Matthias Lauf *XConf Manchester
Building application in a "Microfrontends" way - Matthias Lauf *XConf Manchester
 
Building applications in a Micro-frontends way
Building applications in a Micro-frontends wayBuilding applications in a Micro-frontends way
Building applications in a Micro-frontends way
 
Commit to the Cause, Push for Change: Contributing to Call for Code Open Sour...
Commit to the Cause, Push for Change: Contributing to Call for Code Open Sour...Commit to the Cause, Push for Change: Contributing to Call for Code Open Sour...
Commit to the Cause, Push for Change: Contributing to Call for Code Open Sour...
 
Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - Plansoft
 
Oracle Code One San Francisco - Monolith to microservices
Oracle Code One San Francisco - Monolith to microservicesOracle Code One San Francisco - Monolith to microservices
Oracle Code One San Francisco - Monolith to microservices
 
Oracle Code Javaday Sao Paulo Monolith_to Microservices
Oracle Code Javaday Sao Paulo Monolith_to MicroservicesOracle Code Javaday Sao Paulo Monolith_to Microservices
Oracle Code Javaday Sao Paulo Monolith_to Microservices
 
Rajendra Kumar Sahu_243535(Maximo 7 5 Certified )
Rajendra Kumar Sahu_243535(Maximo 7 5 Certified )Rajendra Kumar Sahu_243535(Maximo 7 5 Certified )
Rajendra Kumar Sahu_243535(Maximo 7 5 Certified )
 
Microservices the Good Bad and the Ugly
Microservices the Good Bad and the UglyMicroservices the Good Bad and the Ugly
Microservices the Good Bad and the Ugly
 
Architecture Evolution as Company Scales - VoxxedDays Athens 2022
Architecture Evolution as Company Scales - VoxxedDays Athens 2022Architecture Evolution as Company Scales - VoxxedDays Athens 2022
Architecture Evolution as Company Scales - VoxxedDays Athens 2022
 
Getting Started With ThousandEyes Proof of Concepts: End User Digital Experience
Getting Started With ThousandEyes Proof of Concepts: End User Digital ExperienceGetting Started With ThousandEyes Proof of Concepts: End User Digital Experience
Getting Started With ThousandEyes Proof of Concepts: End User Digital Experience
 
Oracle code bogota-Handle the Complexity of Migrate to Microservices from Mon...
Oracle code bogota-Handle the Complexity of Migrate to Microservices from Mon...Oracle code bogota-Handle the Complexity of Migrate to Microservices from Mon...
Oracle code bogota-Handle the Complexity of Migrate to Microservices from Mon...
 
#JavadayEcuador Monolith to Microservices
#JavadayEcuador Monolith to Microservices#JavadayEcuador Monolith to Microservices
#JavadayEcuador Monolith to Microservices
 
Microxchg Microservices
Microxchg MicroservicesMicroxchg Microservices
Microxchg Microservices
 
Automating Screenshot Testing Component Library
Automating Screenshot Testing Component LibraryAutomating Screenshot Testing Component Library
Automating Screenshot Testing Component Library
 
[Tutorial] building machine learning models for predictive maintenance applic...
[Tutorial] building machine learning models for predictive maintenance applic...[Tutorial] building machine learning models for predictive maintenance applic...
[Tutorial] building machine learning models for predictive maintenance applic...
 
Micro frontends with react and redux dev day
Micro frontends with react and redux   dev dayMicro frontends with react and redux   dev day
Micro frontends with react and redux dev day
 
Getting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of ConceptsGetting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of Concepts
 
Profreekey.pptx
Profreekey.pptxProfreekey.pptx
Profreekey.pptx
 
SH 1 - SES 4 - Microservices - Andrew Morgan TLV.pptx
SH 1 - SES 4 - Microservices - Andrew Morgan TLV.pptxSH 1 - SES 4 - Microservices - Andrew Morgan TLV.pptx
SH 1 - SES 4 - Microservices - Andrew Morgan TLV.pptx
 
Getting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of ConceptsGetting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of Concepts
 

Plus de Thoughtworks

Plus de Thoughtworks (20)

Design System as a Product
Design System as a ProductDesign System as a Product
Design System as a Product
 
Designers, Developers & Dogs
Designers, Developers & DogsDesigners, Developers & Dogs
Designers, Developers & Dogs
 
Cloud-first for fast innovation
Cloud-first for fast innovationCloud-first for fast innovation
Cloud-first for fast innovation
 
More impact with flexible teams
More impact with flexible teamsMore impact with flexible teams
More impact with flexible teams
 
Culture of Innovation
Culture of InnovationCulture of Innovation
Culture of Innovation
 
Dual-Track Agile
Dual-Track AgileDual-Track Agile
Dual-Track Agile
 
Developer Experience
Developer ExperienceDeveloper Experience
Developer Experience
 
When we design together
When we design togetherWhen we design together
When we design together
 
Hardware is hard(er)
Hardware is hard(er)Hardware is hard(er)
Hardware is hard(er)
 
Customer-centric innovation enabled by cloud
 Customer-centric innovation enabled by cloud Customer-centric innovation enabled by cloud
Customer-centric innovation enabled by cloud
 
Amazon's Culture of Innovation
Amazon's Culture of InnovationAmazon's Culture of Innovation
Amazon's Culture of Innovation
 
When in doubt, go live
When in doubt, go liveWhen in doubt, go live
When in doubt, go live
 
Don't cross the Rubicon
Don't cross the RubiconDon't cross the Rubicon
Don't cross the Rubicon
 
Error handling
Error handlingError handling
Error handling
 
Your test coverage is a lie!
Your test coverage is a lie!Your test coverage is a lie!
Your test coverage is a lie!
 
Docker container security
Docker container securityDocker container security
Docker container security
 
Redefining the unit
Redefining the unitRedefining the unit
Redefining the unit
 
Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22Technology Radar Webinar UK - Vol. 22
Technology Radar Webinar UK - Vol. 22
 
A Tribute to Turing
A Tribute to TuringA Tribute to Turing
A Tribute to Turing
 
Rsa maths worked out
Rsa maths worked outRsa maths worked out
Rsa maths worked out
 

Dernier

Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Lisi Hocke
 

Dernier (20)

Weeding your micro service landscape.pdf
Weeding your micro service landscape.pdfWeeding your micro service landscape.pdf
Weeding your micro service landscape.pdf
 
Your Ultimate Web Studio for Streaming Anywhere | Evmux
Your Ultimate Web Studio for Streaming Anywhere | EvmuxYour Ultimate Web Studio for Streaming Anywhere | Evmux
Your Ultimate Web Studio for Streaming Anywhere | Evmux
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AI
 
Test Automation Design Patterns_ A Comprehensive Guide.pdf
Test Automation Design Patterns_ A Comprehensive Guide.pdfTest Automation Design Patterns_ A Comprehensive Guide.pdf
Test Automation Design Patterns_ A Comprehensive Guide.pdf
 
Effective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeConEffective Strategies for Wix's Scaling challenges - GeeCon
Effective Strategies for Wix's Scaling challenges - GeeCon
 
Abortion Clinic In Stanger ](+27832195400*)[ 🏥 Safe Abortion Pills In Stanger...
Abortion Clinic In Stanger ](+27832195400*)[ 🏥 Safe Abortion Pills In Stanger...Abortion Clinic In Stanger ](+27832195400*)[ 🏥 Safe Abortion Pills In Stanger...
Abortion Clinic In Stanger ](+27832195400*)[ 🏥 Safe Abortion Pills In Stanger...
 
A Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdfA Deep Dive into Secure Product Development Frameworks.pdf
A Deep Dive into Secure Product Development Frameworks.pdf
 
GraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4jGraphSummit Milan - Visione e roadmap del prodotto Neo4j
GraphSummit Milan - Visione e roadmap del prodotto Neo4j
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
[GRCPP] Introduction to concepts (C++20)
[GRCPP] Introduction to concepts (C++20)[GRCPP] Introduction to concepts (C++20)
[GRCPP] Introduction to concepts (C++20)
 
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
Team Transformation Tactics for Holistic Testing and Quality (NewCrafts Paris...
 
Novo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMsNovo Nordisk: When Knowledge Graphs meet LLMs
Novo Nordisk: When Knowledge Graphs meet LLMs
 
Community is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea GouletCommunity is Just as Important as Code by Andrea Goulet
Community is Just as Important as Code by Andrea Goulet
 
Encryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key ConceptsEncryption Recap: A Refresher on Key Concepts
Encryption Recap: A Refresher on Key Concepts
 
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
Abortion Clinic In Pongola ](+27832195400*)[ 🏥 Safe Abortion Pills In Pongola...
 
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-CloudAlluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
Alluxio Monthly Webinar | Simplify Data Access for AI in Multi-Cloud
 
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
Anypoint Code Builder - Munich MuleSoft Meetup - 16th May 2024
 
Abortion Pill Prices Aliwal North ](+27832195400*)[ 🏥 Women's Abortion Clinic...
Abortion Pill Prices Aliwal North ](+27832195400*)[ 🏥 Women's Abortion Clinic...Abortion Pill Prices Aliwal North ](+27832195400*)[ 🏥 Women's Abortion Clinic...
Abortion Pill Prices Aliwal North ](+27832195400*)[ 🏥 Women's Abortion Clinic...
 
Abortion Pill Prices Polokwane ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
Abortion Pill Prices Polokwane ](+27832195400*)[ 🏥 Women's Abortion Clinic in...Abortion Pill Prices Polokwane ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
Abortion Pill Prices Polokwane ](+27832195400*)[ 🏥 Women's Abortion Clinic in...
 
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
Abortion Pill Prices Jane Furse ](+27832195400*)[ 🏥 Women's Abortion Clinic i...
 

Building application in a "Microfrontends" way - Prasanna N Venkatesen *XConf Munich&Barcelona