Architecture for Modular Frontend Applications std::cout << - - PowerPoint PPT Presentation

architecture for
SMART_READER_LITE
LIVE PREVIEW

Architecture for Modular Frontend Applications std::cout << - - PowerPoint PPT Presentation

16:50-17:35, 6 Nov / Hall A2 Architecture for Modular Frontend Applications std::cout << "Hello Berlin!"; Lothar Schttner Florian Rappl CEO and founder of smapiot Solution Architect at smapiot Worked for Accenture


slide-1
SLIDE 1

Architecture for

Modular Frontend Applications

16:50-17:35, 6 Nov / Hall A2

slide-2
SLIDE 2

std::cout << "Hello Berlin!";

Lothar Schöttner Florian Rappl

  • CEO and founder of smapiot
  • Worked for Accenture and Microsoft
  • IoT and Security Architecture
  • Solution Architect at smapiot
  • Previously at ZEISS and innogy
  • Digital Transformation Architecture
slide-3
SLIDE 3

System Architecture Example

Service A

Microservices

Scoped around business capabilities Developed by autonomous teams Own development & deployment lifecycle Loosely coupled Technology independent Single Frontend Solution

Frontend

Monolithic architecture Integrated and consistent user experience Developed by one central team Larger deployment releases Service B Service C Service X Service Y

slide-4
SLIDE 4

Examples

Distributed Web Applications

slide-5
SLIDE 5
slide-6
SLIDE 6
slide-7
SLIDE 7

Microfrontend Architecture

slide-8
SLIDE 8

Microfrontend Architecture

Service A

Distributed Web Application

Service B Service C

Frontend A Frontend B Frontend C

Service D

Frontend

Microfrontend

Backend

Microservice

slide-9
SLIDE 9

Desired Solution

Best of both worlds for a modular distributed web application

Microservices Aspects Aspects of a Monolith Approach

Business capabilities as modules Development by independent teams Shared architecture foundation Loose coupling with dynamic loading Consistent UI & UX

slide-10
SLIDE 10

Shared Libraries

NO YES

Application Shell

NO YES

Framework shared libs only Empty No basis

„MODULITH“ Architecture Foundation, Design & Shared Libraries

Layout Design only

slide-11
SLIDE 11

Distributed Web Application

Frontend A Frontend B Frontend C

Proposed Frontend Architecture

Service A Service B Service C

Modular Distributed Web Application

Module A Shared Libraries Pattern Library Module B Module C Core and Common Capabilities

Service D

Frontend

App Shell Component Business Capability Module

Backend

Microservice

slide-12
SLIDE 12

Principles and Challenges

First class development experience

“setup of local dev environment in minutes”

Comprehensive development tooling

e.g. scaffolding modules based on templates

Supporting Backend Services

e.g. feed for dynamic loading of modules

Support for multiple frameworks

e.g. React, Angular, Vue

Distributed development of modules

</>

</> </> </>

Modular Frontend Solution

slide-13
SLIDE 13

Realized Architecture

slide-14
SLIDE 14

High Level Architecture

Frontend App

Application Shell Modules Modules Modules Users

Feed Service

Services Tooling Module Developer

</>

Module Storage

Module Assests

slide-15
SLIDE 15

piral.io

A framework for modular Microfrontends

https://piral.io https://docs.piral.io

slide-16
SLIDE 16

CDN

High Level Architecture with Piral

Frontend App

Piral Instance Modules Modules Pilets Users

Feed Service

Module Feed Features Rules Module Assests Piral-CLI Module Developer API Key Management

</>

slide-17
SLIDE 17

Components of a Piral Frontend

React & Other Libraries

Library

Piral Core

Library

Piral Ext

Library

Piral Instance

Application Shell

Piral

Framework Useful Extensions like translations, connectivity The core functionality for a Piral based microfrontend Foundation for Piral Provides standard patterns and backend integration

Layout

Pattern Library

Pilet

Feature

Pilet

Feature

Pilet

Feature Layout Patterns shared across pilets & app shell Implementation of the Piral

Instance Pilets as modular feature components

slide-18
SLIDE 18

Demo

Piral Samples

https://docs.piral.io/samples

slide-19
SLIDE 19

Development Approach

Service A Service B Service C

Single Frontend Solution (Monolith)

Service D

Frontend Development Team Backend Service Development Teams Frontend Backend

slide-20
SLIDE 20

Development Approach

Service A Service B Service C

Module A Module B Module C Application Shell

Service D

Module D Frontend Development Team Fullstack Development Teams Frontend Backend

slide-21
SLIDE 21

Development Lifecycles

V1 Dev V1

App Shell Development

</>

Module Development

</> </> </>

V1 V1 Version 2 V2 V3 V2 V3 V2 V3 V2 V3 Prod V1 Module A Module B Module C

slide-22
SLIDE 22

Conclusion

Modular Frontend Architecture Architecture for modular Web Applications Framework for modular Web Apps

slide-23
SLIDE 23

Rate today’s session

Session page on conference website O’Reilly Events App

slide-24
SLIDE 24

Thank You!

Lothar Schöttner

lothar.schoettner@smapiot.com

Florian Rappl

florian.rappl@smapiot.com

More information about Piral:

https://piral.io https://docs.piral.io @smapiot github.com/smapiot smapiot.com