Micro frontends

Srikanth Jallapuram
Srikanth JallapuramFounder/Director & CEO at Technovature Software Solutions Pvt. Ltd. um Alpha Labs Innovations
Micro Frontends
Why do we need Micro Frontends?
www.technovature.com
UX Development
We Love it.
www.technovature.com
Fast Evolving
Full Stack Environments
SOA/Modular -> Microservices
Agile Integrations
Cloud Development
HTML5/Bootstrap
Angular/JS based frameworks
Frontend Modular
Development ?
Reusable Components
HTTP/Load Balancer
www.technovature.com
Key Questions.
• Does your services represents different business
cases/domains..?

• Does the services needs to be deployed and managed
independently..?

• Does different parts of the application has different
scaling/Technology needs..?

• Has your existing system grown so large in size and
complexity that Innovation and freedom of
development is stifled?
www.technovature.com
–Melvin Edward Conway.
“Organizations which design systems are
constrained to produce designs which are copies of
the communication structures of these
organizations.”
www.technovature.com
–Martin Fowler
“ Don’t even consider microservices unless you
have a system that’s too complex to manage as a
monolith. The majority of software systems should
be built as a single monolithic application. Do pay
attention to good modularity within that monolith,
but don’t try to separate it into separate services.
However….a bit controversial statement from Martin below…
www.technovature.com
–Adrian Cockroft
“A loosely coupled service oriented architecture
with bounded contexts to make sure you break
your problem into the right chunks”
“An approach to developing a single application as
a suite of small services, each running in its own
process and communicating with lightweight
mechanisms”
–Martin Fowler
What are Microservices?
www.technovature.com
Microservices Approach
www.technovature.com
Key Benefits
Separate components – The Primary benefit of the microservice architecture is its
loosely coupled components. These components can easily be developed, replaced and
scaled individually.
Increased availability and resilience – Microservices improve fault isolation. As complex
applications are broken into separate service components and deployed on multiple
servers, failing of one of the services or modules will not impact the entire application. A
single service fault can easily be replaced with another service (simple to build resilience
around the small set of services) increasing the application’s availability.
Easy to change technology stack – With microservices, software development teams
can try a new stack on specific service to avail larger benefits at the application level.
There is no long-term commitment to one particular stack as there are no dependency
concerns.
Easy to understand even in distributed environment – In a distributed development
project when some of the team members are geographically dispersed, microservice
architecture make it easier for dev teams to understand the entire functionality of a
service as it is not built into one single package.
www.technovature.com
Key Benefits
Organized around business capabilities – Microservices are not organized around
technical capabilities of a particular product, but rather business capabilities.
Re-usability of services – As microservices are organized around business
capabilities and not a specific project or product requirement, they are project
agnostic. This enables technology teams to reuse services and reduce costs.
 Decentralized data management – Large scale and complex enterprise
applications are normally three-tier. Martin Fowler, in his microservices article,
describes that microservices let each service manage its own database, either
different instances of the same database technology or entirely different database
systems.  As he mentioned, this approach is called Polyglot Persistence.  
Easy to Deploy – While technology teams have to deploy an entire application
again because of small change in the code, with microservices this deployment
becomes easy. The scope of deployment is smaller and only the service that has a
problem needs to be deployed again.
Web Frontend ?
• So what about the Frontend/
UI? 

• Do we have something similar
to Microservices for
managing Web UI/Frontend?
www.technovature.com
Frontend Challenges
Developing modern frontend isn’t easy. Following aspects are involved:

• Classical SOA-style data integration, often done by a dedicated service, called Backend
for Frontends or Edge Service.

• Managing frontend dependencies (JS, CSS, etc.) required by various HTML fragments.

• Allowing interactions between HTML fragments served by different services.

• Consistent way of measuring users’ activities (traffic analytics).

• Content customization.

• Providing tools for A/B testing.

• Handling errors and slow responses from backend services. (APIs)

• There are many front-end devices: web browser, mobile… Smart TV and PlayStation®
are waiting in the queue.

• Offering excellent UX to all users (omnichannel).

The last two things are most important and most challenging. This means that your front-
end applications should be consistent, well integrated and smooth. Even if they shouldn’t
necessarily be monolithic they should look like a monolith. This lays down the case for a
Micro Frontend.
www.technovature.com
Web App
Team A Team B
CUSTOMER
APIS ARE USED BY A FRONTEND MONOLITH
Source: Zalando
• Classical SOA-style data integration,
often done by a dedicated service,
called Backend for Frontends or
Edge Service.
www.technovature.com
WEBAPP GETS CONTRIBUTIONS FROM MULTIPLE TEAMS
WEBAPP
Team A Team B
• Managing frontend dependencies
(JS, CSS, etc.) required by various
HTML fragments.
• Allowing interactions
between HTML
fragments served by
different services.
www.technovature.com
Micro Frontend Approach
www.technovature.com
–UI Guru
“The term Micro Frontends is a derivative of the
micro services approach. It represents the
architectural approach for the composition of
multiple self contained and loosely coupled UI
components (services), where each component is
responsible for a specific UI element and / or
functionality.”
www.technovature.com
TEAM A TEAM B
Source: Zalando
TEAMS OWN FRAGMENTS
www.technovature.com
TYPICAL MICRO-SERVICES LAYER
Team A Team B
FRAGMENTS USE THE BACKEND API
Source: Zalando
www.technovature.com
TEAM A TEAM B
LAYOUT
SERVICE T E M P L AT E S
ROUTER
R O U T E S
C U S TO M E R
A P I C A L L S
TYPICAL MICRO-SERVICES LAYER
ASSEMBLED CONTENT IS STREAMED TO THE CLIENT
Source: Zalando
www.technovature.com
TEAM A TEAM B
TA ILOR
T E M P L AT E S ( Q U I LT )
S K I P P ER
R O U T E S ( I N N K E E P E R )
C U S TO M E R
A P I C A L L S
TYPICAL MICRO-SERVICES LAYER
MOSAIC COMPONENTS
Source: Zalando
www.technovature.com
C U S TO M E R
Path = /api/cart
01101
001110
10100
101110
101110
11
Path = /*
Path = /products/*.html
J I M M YSKIPPER
	
TA ILOR
ROUTING
Source: Zalando
www.technovature.com
c a t a l o g : P a t h ( " / * c a t e g o r y " ) - > " h 4 p s : / / c a t a l o g . e x a m p l e . o r g " ;
p r o d u c t P a g e :
u s e r A c c o u n t :
/ / 4 0 4
P a t h ( " / p r o d u c t s / : i d " ) - > " h 4 p s : / / p r o d u c t s . e x a m p l e . o r g " ;
P a t h ( " / u s e r / : i d / * u s e r p a g e " ) - > " h 4 p s : / / u s e r s . e x a m p l e . o r g " ;
n o t f o u n d : * - >
m o d P a t h ( / . + / ,
< s h u n t >
" / n o t f o u n d . h t m l " ) - > s t a t i c ( " / " , " / v a r / w w w " ) - >
A domain-specific language (DSL) for describing Skipper route expressions, route definitions
and complete routing tables.
Route = n Predicates + m Filters + 1 backend
ESKIP ROUTING DEFINITION LANGUAGE
www.technovature.com
One or more conditions. An incoming request must fulfil each of them to match.
Many built in predicates for pretty much everything around HTTP requests.
P a t h R e g e x p ( / r e g u l a r - e x p r e s s i o n / )
M e t h o d ( " H E A D " )
H e a d e r ( " A c c e p t " , “ a p p l i c a t i o n / j s o n " )
A n y ( )
Skipper is easily extendable with custom predicates
P a t h ( " / a p i / * r e s o u r c e " ) && H e a d e r ( " A c c e p t " , " a p p l i c a t i o n / j s o n " )
PREDICATES
Source: Zalando
www.technovature.com
Filters are used to augment the incoming requests and the outgoing responses, or do other
useful or fun stuff.
A lot of built in filters give a lot of powerful features
s t a t i c ( " / i m a g e s " , " / v a r / w w w / i m a g e s " )
s t a t u s ( 4 1 8 )
r e d i r e c t T o ( 3 0 2 , “ h = p s : / / u i . e x a m p l e . o r g " )
d r o p R e q u e s t H e a d e r ( “ h e a d e r - n a m e " )
fl o w I d ( " r e u s e " , 6 4 )
Skipper is easily extendable with custom filters
s e t R e s p o n s e H e a d e r ( " m a x - a g e " , " 8 6 4 0 0 " ) - > s t a t i c ( " / " , " / v a r / w w w / p u b l i c " )
FILTERS
www.technovature.com
• API Gateway
• Split mobile and desktop traffic
Split traffic based on version header•
• OAuth authentication reverse proxy
•
In front of a third-party service that doesn’t support OAuth
Redirect unauthenticated requests to other endpoint•
• Weighted traffic control
•
Use the same route with different endpoints
Stickiness via cookies•
• HTTP file server
HTTP compression proxy
Custom predicates + custom filters = you name it
•
•
FLEXIBLE AND OPEN FOR INDIVIDUAL CREATIVITY
Source: Zalando
www.technovature.com
• Fragments are regular HTTP endpoints
• Fragments respond with HTML fragments (no <head>/
<body>) Communication based in HTTP Headers
• No custom/complex protocol
FRAGMENTS
Source: Zalando
www.technovature.com
TAILOR
• Tailor is a layout service that uses
streams to compose a web page from
fragment services.
• Loads content of all fragments
from the template in parallel
• Initialises fragments client-side code
• Offers nice error handling and
fallback features with circuit
breakers
• Written in Node, Tailor is a library that
provides a middleware which you can
integrate into any Node.js server.
www.technovature.com
Project Mosaic
Microservices for the frontend
• Mosaic is a set of services, libraries together with a
specification that defines how its components
interact with each other, to support a microservice
style architecture for large scale websites. 

• While decomposing the backend into microservices
is a widely adopted approach to achieve flexibility in
development and operation, most frontend solutions
are still running as a monolithic application.

• Mosaic addresses this issue by using Fragments that
are served by separate services and are composed
together at runtime according to template definitions
www.technovature.com
Skipper
Shaker
Tailor is a layout service that brings microservices to
the frontend by composing a website out of various
Fragments (such as Header, Product, and Footer).
Quilt is the template storage used by Tailor.
It integrates with Zalando's team structure
and provides a REST API that allows
multiple development teams to manage
their templates.
Innkeeper is a RESTful API that stores routes,
so that they can be fetched by Skipper.
Innkeeper can export the routes in the eskip
format. As routes are divided by paths, it allows
multiple teams to manage their individual
paths. It is developed in Scala.
Tessellate is a server-side React renderer
that creates static HTML and a
complementary component tree from
abstract JSON definitions. It comprises
several micro services built on top of the
Mosaic architecture.
Shaker is a library and living showcase
for UI components. It is used inside
Zalando to provide a consistent user
experience while developing Fragments
in distributed and autonomous teams.
Skipper is an extendable HTTP
router for service composition. It's
built on top a reverse proxy with the
ability to select routes based on
predicates, and to modify requests
and responses with filters.
www.technovature.com
-  runtime injection of new features
-  faster feedback loops
-  tech agnostic
-  end-to-end responsibility
-  full control
-  lean, agile processes
-  independent development
-  continuous delivery
GROWTH
-  faster onboarding
-  magnetic
-  easy to spin-off new teams
PRODUCTIVITY
INNOVATION
RESULT
Source: Zalando
www.technovature.com
Degree of
Independence
Code
Organization
Full Stack
Selection
Team
Organization
• Each Service is
independent with its own
component(s) now.
• You can choose to share
some components
• Expanded choice in Front-
End Design with your
choice of Tools for each
Micro Frontend
• You no longer bother to
connect a complex
monolith web frontend
with a multitude of
backend APIs.
• You connect a specific
Micro Frontend Fragment
with a designate backend
API.
• A shared codebase in pure
JavaScript e.g. managing
routing and user sessions.
Also some shared CSS.
Both should be as thin as
possible.
• A collection of separate
modules, “mini-apps”,
built in various
frameworks. Stored in
different code
repositories.
• A deployment system
that bundles all the
modules together from
different repositories and
deploys to a server,
whenever a module is
updated.
• A decision to chose a full-
stack has to be made for
every microservice.
• Choose wisely as too
much of choice can create
problems related to rigid
talent needs.
• Managing expanded
knowledge base of
polyglot frameworks
becomes difficult. How do
we solve that?
• Team members
specializing in one stack
cannot move to another
one with ease. How do we
create cross-skills teams?
• An independent, self-
contained team should
work on each
microservice.
• Please note most of the
skills you require here are
front-end specific.
• Designers followed by
Web Frontend specialists
can follow the Full-Stack
choices made already
here.
• Adapt your Agile Planning,
Management and Tracking
accordingly
• Identify Your DevOps
Teams
What’s Next?
Continuous Delivery Organization
www.technovature.com
Microservices -
Backend and
Frontend
Consultancy. We
design a Custom
Roadmap with a
matching set
solution for a proper
migration to a Multi-
Stack Microservices
Multi-Tiered
Architecture.
Microservices
design and
development using
the most optimal
multi-stack, polyglot
programming
environment that
draws from the best
in the Industry.
Microservices
Migration planning
and a project
execution taking into
consideration your
current custom
application
architecture and
migrating you to a
best in class
microservices
architecture.
Microservices
containerization,
deployment model
using the best Agile
DevOps models that
exist today and
deploys to various
cloud platform
models with ease
and the highest
speed to production.
At Technovature, we take pride in offering the below Microservices related services & consultancy.
www.technovature.com
CONTACT:
sales@technovature.com
YOUR PREFERRED MICROSERVICES
FRONTEND DEVELOPMENT PARTNER
www.technovature.com
Thank You
E-mail: sales@technovature.com
www.technovature.com
1 von 34

Recomendados

Micro frontends von
Micro frontendsMicro frontends
Micro frontendsAssaf Gannon
4K views34 Folien
ChatGPT and the Future of Work - Clark Boyd von
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
23.4K views69 Folien
Getting into the tech field. what next von
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
5.6K views22 Folien
Google's Just Not That Into You: Understanding Core Updates & Search Intent von
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
6.3K views99 Folien
How to have difficult conversations von
How to have difficult conversations How to have difficult conversations
How to have difficult conversations Rajiv Jayarajah, MAppComm, ACC
4.9K views19 Folien
Introduction to Data Science von
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data ScienceChristy Abraham Joy
82.2K views51 Folien

Más contenido relacionado

Último

Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI... von
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...Marc Müller
37 views83 Folien
DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft... von
DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft...DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft...
DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft...Deltares
7 views18 Folien
The Era of Large Language Models.pptx von
The Era of Large Language Models.pptxThe Era of Large Language Models.pptx
The Era of Large Language Models.pptxAbdulVahedShaik
5 views9 Folien
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx von
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptxanimuscrm
14 views19 Folien
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t... von
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...Deltares
9 views26 Folien
HarshithAkkapelli_Presentation.pdf von
HarshithAkkapelli_Presentation.pdfHarshithAkkapelli_Presentation.pdf
HarshithAkkapelli_Presentation.pdfharshithakkapelli
11 views16 Folien

Último(20)

Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI... von Marc Müller
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Dev-Cloud Conference 2023 - Continuous Deployment Showdown: Traditionelles CI...
Marc Müller37 views
DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft... von Deltares
DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft...DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft...
DSD-INT 2023 Process-based modelling of salt marsh development coupling Delft...
Deltares7 views
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx von animuscrm
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
2023-November-Schneider Electric-Meetup-BCN Admin Group.pptx
animuscrm14 views
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t... von Deltares
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...
DSD-INT 2023 Thermobaricity in 3D DCSM-FM - taking pressure into account in t...
Deltares9 views
Airline Booking Software von SharmiMehta
Airline Booking SoftwareAirline Booking Software
Airline Booking Software
SharmiMehta6 views
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J... von Deltares
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...
DSD-INT 2023 3D hydrodynamic modelling of microplastic transport in lakes - J...
Deltares9 views
360 graden fabriek von info33492
360 graden fabriek360 graden fabriek
360 graden fabriek
info3349238 views
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ... von Donato Onofri
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Unmasking the Dark Art of Vectored Exception Handling: Bypassing XDR and EDR ...
Donato Onofri825 views
Headless JS UG Presentation.pptx von Jack Spektor
Headless JS UG Presentation.pptxHeadless JS UG Presentation.pptx
Headless JS UG Presentation.pptx
Jack Spektor7 views
AI and Ml presentation .pptx von FayazAli87
AI and Ml presentation .pptxAI and Ml presentation .pptx
AI and Ml presentation .pptx
FayazAli8711 views
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium... von Lisi Hocke
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Lisi Hocke30 views
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ... von Deltares
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...
DSD-INT 2023 Wave-Current Interaction at Montrose Tidal Inlet System and Its ...
Deltares11 views
Fleet Management Software in India von Fleetable
Fleet Management Software in India Fleet Management Software in India
Fleet Management Software in India
Fleetable11 views
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the... von Deltares
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...
DSD-INT 2023 Leveraging the results of a 3D hydrodynamic model to improve the...
Deltares6 views
Myths and Facts About Hospice Care: Busting Common Misconceptions von Care Coordinations
Myths and Facts About Hospice Care: Busting Common MisconceptionsMyths and Facts About Hospice Care: Busting Common Misconceptions
Myths and Facts About Hospice Care: Busting Common Misconceptions
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action von Márton Kodok
Gen Apps on Google Cloud PaLM2 and Codey APIs in ActionGen Apps on Google Cloud PaLM2 and Codey APIs in Action
Gen Apps on Google Cloud PaLM2 and Codey APIs in Action
Márton Kodok5 views

Destacado

Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright... von
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
12.6K views21 Folien
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present... von
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
55.5K views138 Folien
12 Ways to Increase Your Influence at Work von
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
401.7K views64 Folien
ChatGPT webinar slides von
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slidesAlireza Esmikhani
30.3K views36 Folien
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G... von
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
3.6K views12 Folien

Destacado(20)

Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright... von RachelPearson36
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson3612.6K views
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present... von Applitools
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Applitools55.5K views
12 Ways to Increase Your Influence at Work von GetSmarter
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
GetSmarter401.7K views
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G... von DevGAMM Conference
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
DevGAMM Conference3.6K views
Barbie - Brand Strategy Presentation von Erica Santiago
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
Erica Santiago25.1K views
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well von Saba Software
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Saba Software25.2K views
Introduction to C Programming Language von Simplilearn
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming Language
Simplilearn8.4K views
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr... von Palo Alto Software
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...
Palo Alto Software88.4K views
9 Tips for a Work-free Vacation von Weekdone.com
9 Tips for a Work-free Vacation9 Tips for a Work-free Vacation
9 Tips for a Work-free Vacation
Weekdone.com7.2K views
How to Map Your Future von SlideShop.com
How to Map Your FutureHow to Map Your Future
How to Map Your Future
SlideShop.com275.1K views
Beyond Pride: Making Digital Marketing & SEO Authentically LGBTQ+ Inclusive -... von AccuraCast
Beyond Pride: Making Digital Marketing & SEO Authentically LGBTQ+ Inclusive -...Beyond Pride: Making Digital Marketing & SEO Authentically LGBTQ+ Inclusive -...
Beyond Pride: Making Digital Marketing & SEO Authentically LGBTQ+ Inclusive -...
AccuraCast3.4K views
Exploring ChatGPT for Effective Teaching and Learning.pptx von Stan Skrabut, Ed.D.
Exploring ChatGPT for Effective Teaching and Learning.pptxExploring ChatGPT for Effective Teaching and Learning.pptx
Exploring ChatGPT for Effective Teaching and Learning.pptx
Stan Skrabut, Ed.D.57.7K views
How to train your robot (with Deep Reinforcement Learning) von Lucas García, PhD
How to train your robot (with Deep Reinforcement Learning)How to train your robot (with Deep Reinforcement Learning)
How to train your robot (with Deep Reinforcement Learning)
Lucas García, PhD42.5K views
4 Strategies to Renew Your Career Passion von Daniel Goleman
4 Strategies to Renew Your Career Passion4 Strategies to Renew Your Career Passion
4 Strategies to Renew Your Career Passion
Daniel Goleman122K views
The Student's Guide to LinkedIn von LinkedIn
The Student's Guide to LinkedInThe Student's Guide to LinkedIn
The Student's Guide to LinkedIn
LinkedIn87.9K views
Different Roles in Machine Learning Career von Intellipaat
Different Roles in Machine Learning CareerDifferent Roles in Machine Learning Career
Different Roles in Machine Learning Career
Intellipaat12.4K views

Micro frontends

  • 1. Micro Frontends Why do we need Micro Frontends?
  • 3. www.technovature.com Fast Evolving Full Stack Environments SOA/Modular -> Microservices Agile Integrations Cloud Development HTML5/Bootstrap Angular/JS based frameworks Frontend Modular Development ? Reusable Components HTTP/Load Balancer
  • 4. www.technovature.com Key Questions. • Does your services represents different business cases/domains..? • Does the services needs to be deployed and managed independently..? • Does different parts of the application has different scaling/Technology needs..?
 • Has your existing system grown so large in size and complexity that Innovation and freedom of development is stifled?
  • 5. www.technovature.com –Melvin Edward Conway. “Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.”
  • 6. www.technovature.com –Martin Fowler “ Don’t even consider microservices unless you have a system that’s too complex to manage as a monolith. The majority of software systems should be built as a single monolithic application. Do pay attention to good modularity within that monolith, but don’t try to separate it into separate services. However….a bit controversial statement from Martin below…
  • 7. www.technovature.com –Adrian Cockroft “A loosely coupled service oriented architecture with bounded contexts to make sure you break your problem into the right chunks” “An approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms” –Martin Fowler What are Microservices?
  • 9. www.technovature.com Key Benefits Separate components – The Primary benefit of the microservice architecture is its loosely coupled components. These components can easily be developed, replaced and scaled individually. Increased availability and resilience – Microservices improve fault isolation. As complex applications are broken into separate service components and deployed on multiple servers, failing of one of the services or modules will not impact the entire application. A single service fault can easily be replaced with another service (simple to build resilience around the small set of services) increasing the application’s availability. Easy to change technology stack – With microservices, software development teams can try a new stack on specific service to avail larger benefits at the application level. There is no long-term commitment to one particular stack as there are no dependency concerns. Easy to understand even in distributed environment – In a distributed development project when some of the team members are geographically dispersed, microservice architecture make it easier for dev teams to understand the entire functionality of a service as it is not built into one single package.
  • 10. www.technovature.com Key Benefits Organized around business capabilities – Microservices are not organized around technical capabilities of a particular product, but rather business capabilities. Re-usability of services – As microservices are organized around business capabilities and not a specific project or product requirement, they are project agnostic. This enables technology teams to reuse services and reduce costs.  Decentralized data management – Large scale and complex enterprise applications are normally three-tier. Martin Fowler, in his microservices article, describes that microservices let each service manage its own database, either different instances of the same database technology or entirely different database systems.  As he mentioned, this approach is called Polyglot Persistence.   Easy to Deploy – While technology teams have to deploy an entire application again because of small change in the code, with microservices this deployment becomes easy. The scope of deployment is smaller and only the service that has a problem needs to be deployed again.
  • 11. Web Frontend ? • So what about the Frontend/ UI? • Do we have something similar to Microservices for managing Web UI/Frontend?
  • 12. www.technovature.com Frontend Challenges Developing modern frontend isn’t easy. Following aspects are involved: • Classical SOA-style data integration, often done by a dedicated service, called Backend for Frontends or Edge Service. • Managing frontend dependencies (JS, CSS, etc.) required by various HTML fragments. • Allowing interactions between HTML fragments served by different services. • Consistent way of measuring users’ activities (traffic analytics). • Content customization. • Providing tools for A/B testing. • Handling errors and slow responses from backend services. (APIs) • There are many front-end devices: web browser, mobile… Smart TV and PlayStation® are waiting in the queue. • Offering excellent UX to all users (omnichannel). The last two things are most important and most challenging. This means that your front- end applications should be consistent, well integrated and smooth. Even if they shouldn’t necessarily be monolithic they should look like a monolith. This lays down the case for a Micro Frontend.
  • 13. www.technovature.com Web App Team A Team B CUSTOMER APIS ARE USED BY A FRONTEND MONOLITH Source: Zalando • Classical SOA-style data integration, often done by a dedicated service, called Backend for Frontends or Edge Service.
  • 14. www.technovature.com WEBAPP GETS CONTRIBUTIONS FROM MULTIPLE TEAMS WEBAPP Team A Team B • Managing frontend dependencies (JS, CSS, etc.) required by various HTML fragments. • Allowing interactions between HTML fragments served by different services.
  • 16. www.technovature.com –UI Guru “The term Micro Frontends is a derivative of the micro services approach. It represents the architectural approach for the composition of multiple self contained and loosely coupled UI components (services), where each component is responsible for a specific UI element and / or functionality.”
  • 17. www.technovature.com TEAM A TEAM B Source: Zalando TEAMS OWN FRAGMENTS
  • 18. www.technovature.com TYPICAL MICRO-SERVICES LAYER Team A Team B FRAGMENTS USE THE BACKEND API Source: Zalando
  • 19. www.technovature.com TEAM A TEAM B LAYOUT SERVICE T E M P L AT E S ROUTER R O U T E S C U S TO M E R A P I C A L L S TYPICAL MICRO-SERVICES LAYER ASSEMBLED CONTENT IS STREAMED TO THE CLIENT Source: Zalando
  • 20. www.technovature.com TEAM A TEAM B TA ILOR T E M P L AT E S ( Q U I LT ) S K I P P ER R O U T E S ( I N N K E E P E R ) C U S TO M E R A P I C A L L S TYPICAL MICRO-SERVICES LAYER MOSAIC COMPONENTS Source: Zalando
  • 21. www.technovature.com C U S TO M E R Path = /api/cart 01101 001110 10100 101110 101110 11 Path = /* Path = /products/*.html J I M M YSKIPPER TA ILOR ROUTING Source: Zalando
  • 22. www.technovature.com c a t a l o g : P a t h ( " / * c a t e g o r y " ) - > " h 4 p s : / / c a t a l o g . e x a m p l e . o r g " ; p r o d u c t P a g e : u s e r A c c o u n t : / / 4 0 4 P a t h ( " / p r o d u c t s / : i d " ) - > " h 4 p s : / / p r o d u c t s . e x a m p l e . o r g " ; P a t h ( " / u s e r / : i d / * u s e r p a g e " ) - > " h 4 p s : / / u s e r s . e x a m p l e . o r g " ; n o t f o u n d : * - > m o d P a t h ( / . + / , < s h u n t > " / n o t f o u n d . h t m l " ) - > s t a t i c ( " / " , " / v a r / w w w " ) - > A domain-specific language (DSL) for describing Skipper route expressions, route definitions and complete routing tables. Route = n Predicates + m Filters + 1 backend ESKIP ROUTING DEFINITION LANGUAGE
  • 23. www.technovature.com One or more conditions. An incoming request must fulfil each of them to match. Many built in predicates for pretty much everything around HTTP requests. P a t h R e g e x p ( / r e g u l a r - e x p r e s s i o n / ) M e t h o d ( " H E A D " ) H e a d e r ( " A c c e p t " , “ a p p l i c a t i o n / j s o n " ) A n y ( ) Skipper is easily extendable with custom predicates P a t h ( " / a p i / * r e s o u r c e " ) && H e a d e r ( " A c c e p t " , " a p p l i c a t i o n / j s o n " ) PREDICATES Source: Zalando
  • 24. www.technovature.com Filters are used to augment the incoming requests and the outgoing responses, or do other useful or fun stuff. A lot of built in filters give a lot of powerful features s t a t i c ( " / i m a g e s " , " / v a r / w w w / i m a g e s " ) s t a t u s ( 4 1 8 ) r e d i r e c t T o ( 3 0 2 , “ h = p s : / / u i . e x a m p l e . o r g " ) d r o p R e q u e s t H e a d e r ( “ h e a d e r - n a m e " ) fl o w I d ( " r e u s e " , 6 4 ) Skipper is easily extendable with custom filters s e t R e s p o n s e H e a d e r ( " m a x - a g e " , " 8 6 4 0 0 " ) - > s t a t i c ( " / " , " / v a r / w w w / p u b l i c " ) FILTERS
  • 25. www.technovature.com • API Gateway • Split mobile and desktop traffic Split traffic based on version header• • OAuth authentication reverse proxy • In front of a third-party service that doesn’t support OAuth Redirect unauthenticated requests to other endpoint• • Weighted traffic control • Use the same route with different endpoints Stickiness via cookies• • HTTP file server HTTP compression proxy Custom predicates + custom filters = you name it • • FLEXIBLE AND OPEN FOR INDIVIDUAL CREATIVITY Source: Zalando
  • 26. www.technovature.com • Fragments are regular HTTP endpoints • Fragments respond with HTML fragments (no <head>/ <body>) Communication based in HTTP Headers • No custom/complex protocol FRAGMENTS Source: Zalando
  • 27. www.technovature.com TAILOR • Tailor is a layout service that uses streams to compose a web page from fragment services. • Loads content of all fragments from the template in parallel • Initialises fragments client-side code • Offers nice error handling and fallback features with circuit breakers • Written in Node, Tailor is a library that provides a middleware which you can integrate into any Node.js server.
  • 28. www.technovature.com Project Mosaic Microservices for the frontend • Mosaic is a set of services, libraries together with a specification that defines how its components interact with each other, to support a microservice style architecture for large scale websites. • While decomposing the backend into microservices is a widely adopted approach to achieve flexibility in development and operation, most frontend solutions are still running as a monolithic application. • Mosaic addresses this issue by using Fragments that are served by separate services and are composed together at runtime according to template definitions
  • 29. www.technovature.com Skipper Shaker Tailor is a layout service that brings microservices to the frontend by composing a website out of various Fragments (such as Header, Product, and Footer). Quilt is the template storage used by Tailor. It integrates with Zalando's team structure and provides a REST API that allows multiple development teams to manage their templates. Innkeeper is a RESTful API that stores routes, so that they can be fetched by Skipper. Innkeeper can export the routes in the eskip format. As routes are divided by paths, it allows multiple teams to manage their individual paths. It is developed in Scala. Tessellate is a server-side React renderer that creates static HTML and a complementary component tree from abstract JSON definitions. It comprises several micro services built on top of the Mosaic architecture. Shaker is a library and living showcase for UI components. It is used inside Zalando to provide a consistent user experience while developing Fragments in distributed and autonomous teams. Skipper is an extendable HTTP router for service composition. It's built on top a reverse proxy with the ability to select routes based on predicates, and to modify requests and responses with filters.
  • 30. www.technovature.com -  runtime injection of new features -  faster feedback loops -  tech agnostic -  end-to-end responsibility -  full control -  lean, agile processes -  independent development -  continuous delivery GROWTH -  faster onboarding -  magnetic -  easy to spin-off new teams PRODUCTIVITY INNOVATION RESULT Source: Zalando
  • 31. www.technovature.com Degree of Independence Code Organization Full Stack Selection Team Organization • Each Service is independent with its own component(s) now. • You can choose to share some components • Expanded choice in Front- End Design with your choice of Tools for each Micro Frontend • You no longer bother to connect a complex monolith web frontend with a multitude of backend APIs. • You connect a specific Micro Frontend Fragment with a designate backend API. • A shared codebase in pure JavaScript e.g. managing routing and user sessions. Also some shared CSS. Both should be as thin as possible. • A collection of separate modules, “mini-apps”, built in various frameworks. Stored in different code repositories. • A deployment system that bundles all the modules together from different repositories and deploys to a server, whenever a module is updated. • A decision to chose a full- stack has to be made for every microservice. • Choose wisely as too much of choice can create problems related to rigid talent needs. • Managing expanded knowledge base of polyglot frameworks becomes difficult. How do we solve that? • Team members specializing in one stack cannot move to another one with ease. How do we create cross-skills teams? • An independent, self- contained team should work on each microservice. • Please note most of the skills you require here are front-end specific. • Designers followed by Web Frontend specialists can follow the Full-Stack choices made already here. • Adapt your Agile Planning, Management and Tracking accordingly • Identify Your DevOps Teams What’s Next? Continuous Delivery Organization
  • 32. www.technovature.com Microservices - Backend and Frontend Consultancy. We design a Custom Roadmap with a matching set solution for a proper migration to a Multi- Stack Microservices Multi-Tiered Architecture. Microservices design and development using the most optimal multi-stack, polyglot programming environment that draws from the best in the Industry. Microservices Migration planning and a project execution taking into consideration your current custom application architecture and migrating you to a best in class microservices architecture. Microservices containerization, deployment model using the best Agile DevOps models that exist today and deploys to various cloud platform models with ease and the highest speed to production. At Technovature, we take pride in offering the below Microservices related services & consultancy.