SlideShare a Scribd company logo
1 of 55
Download to read offline
Full-stack Microservices
William Bartlett
 w.bartlett@treeptik.fr  @bartlettstarman
 punkstarman  punkstarman
Treeptik
15 November, 2018
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 1 / 45
whoami?
William Bartlett, Level 23
programmer
Agile Coach, Java dev,
Container enthusiast
Web Component nut (Polymer)
Former doctoral student
“Use the right tool for the
job”
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 2 / 45
Introduction
Section 1
Introduction
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 3 / 45
Introduction
Microservices
Advantages
separation (”divide and conquer”)
autonomy
automation
modularity
scaling
tech stack transitions
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 4 / 45
Introduction
Microservices
Price to pay
complex integration
consistency or availability
hard boundaries
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 5 / 45
Introduction
Microservices
Microservices are cool

William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 6 / 45
Introduction
Microservices
Server-side Client-side
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 7 / 45
Introduction
Microservices
Micro Frontends: https://micro-frontends.org/
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 8 / 45
Introduction
Issue
Issue
How to build a large product with entirely autonomous multi-disciplinary teams?
Bring microservices to the front-end
Tech solution: distributed web components
Org solution: Atomic Design
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 9 / 45
Introduction
Outline
It’s All Relative
Web Components
Atomic Design
Full-stack Microservices
Case Study
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 10 / 45
It’s All Relative
Section 2
It’s All Relative
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 11 / 45
It’s All Relative
Micro Frontends
Micro Frontends : https://micro-frontends.org/
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 12 / 45
It’s All Relative
Project Mosaic, Zalando
Skipper (router), InnKeeper (router config API)
Tailor (layout), Quilt (layout storage)
Shaker (components)
Tessellate (SSR)
https://www.mosaic9.org/
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 13 / 45
It’s All Relative
OpenComponents, OpenTable
API for UI components
SSR or not
https://opencomponents.github.io/
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 14 / 45
It’s All Relative
Metaframework, CanopyTax
Single SPA
Runtime stitching of micro-frontends.
https://github.com/CanopyTax/single-spa
Example : https://single-spa.surge.sh/
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 15 / 45
It’s All Relative
Microservice Websites, Gustaf Nilsson Kotte
Microservice Websites
Scalable development of an evolvable system with great mobile performance.
performance
autonomy ⇒ heterogeneity and scalability
Manifesto
Article
Tools:
Edge-Side Includes
Client-Side Includes
Caching (Varnish)
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 16 / 45
It’s All Relative
Other options
JSP/ASP.Net Fragments
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 17 / 45
It’s All Relative
Other options
JSP/ASP.Net Fragments
JSP Tag Library
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 17 / 45
It’s All Relative
Other options
JSP/ASP.Net Fragments
JSP Tag Library
Struts Tiles
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 17 / 45
It’s All Relative
Other options
JSP/ASP.Net Fragments
JSP Tag Library
Struts Tiles
Portlets (Liferay)
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 17 / 45
It’s All Relative
Other options
JSP/ASP.Net Fragments
JSP Tag Library
Struts Tiles
Portlets (Liferay)
<iframe>
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 17 / 45
Web Components
Section 3
Web Components
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 18 / 45
Web Components
Web Components
Web Components
Reusable, modular components for the web.
4 W3C specifications
started in 2011
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 19 / 45
Web Components
Demo
Find this demo on CodePen
https://codepen.io/punkstarman/project/editor/AEKqQg
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 20 / 45
Web Components
Custom Elements
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 21 / 45
Web Components
It’s an HTML element
attributes
properties
events
styling
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 22 / 45
Web Components
Frameworks
Frameworks:
Polymer, SkateJS, Slim.js, x-tag, Bosonic, Stencil, …
React, Angular, Vue, …
https://custom-elements-everywhere.com/
Added bonuses:
two-way data-binding
boilerplate reduction
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 23 / 45
Web Components
Component libraries
https://www.webcomponents.org/
Polymer (iron, paper, app, gold)
Vaadin
Google (Maps, YouTube)
Predix UI
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 24 / 45
Web Components
Web Components in the Wild
Google (Polymer)
Chrome
YouTube, Drive, Contacts
Example app: Shop (https://shop.polymer-project.org/)
Electronic Arts
GitHub
Simpla
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 25 / 45
Atomic Design
Section 4
Atomic Design
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 26 / 45
Atomic Design
Atomic Design
Atomic Design
Methodology for creating and maintaining a graphic design system
Brad Frost, 2016
http://atomicdesign.bradfrost.com/
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 27 / 45
Atomic Design
Atomic Design
atoms molecules organisms templates screens
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 28 / 45
Atomic Design
Atom
indivisible
graphical identity
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 29 / 45
Atomic Design
Molecule
connected atoms
purpose
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 30 / 45
Atomic Design
Organism
composed atoms, molecules or
other organisms
complexity
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 31 / 45
Atomic Design
Template
layout of organisms
generic page
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 32 / 45
Atomic Design
Page
template + data
proof of concept
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 33 / 45
Full-stack Microservices
Section 5
Full-stack Microservices
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 34 / 45
Full-stack Microservices
Microservices + Web Components
integration over HTTP
lazy loading
fault tolerance
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 35 / 45
Full-stack Microservices
Web Components + Atomic Design
Atomic Design is the methodology needed to develop a system of components efficiently.
Web Components are a solution that can enable Atomic Design.
DNF: integration components (AJAX, state)
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 36 / 45
Full-stack Microservices
Full-stack Microservices
User
router
F
auth
FB
catalog
FB
order
FB
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 37 / 45
Full-stack Microservices
Full-stack Microservices
User
auth
FB
catalog
FB
order
FB
shared components
F
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 38 / 45
Full-stack Microservices
Full-stack Microservices
User
router
F
auth
FB
catalog
FB
order
FB
shared components
F
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 39 / 45
Full-stack Microservices
Full-stack Microservices
User
router
pages
service
templates, organisms, molecules
shared components
molecules, atoms
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 40 / 45
Case Study
Section 6
Case Study
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 41 / 45
O gods of Demo,
we beseach thee
Conclusion
Section 7
Conclusion
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 43 / 45
Conclusion
Conclusion
+ Autonomous teams
+ expose API and components
+ RAD
+ choice of framework
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 44 / 45
Conclusion
Conclusion
+ Autonomous teams
+ expose API and components
+ RAD
+ choice of framework
− strong coupling between API and UI
− library design > application design
− difficult to isolate dependencies
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 44 / 45
Conclusion
Future Work
Dependency and Configuration Injection
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 45 / 45
Conclusion
Future Work
Dependency and Configuration Injection
Encapsulation of third party services:
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 45 / 45
Conclusion
Future Work
Dependency and Configuration Injection
Encapsulation of third party services:
Auth0, Keycloak, Okta, …
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 45 / 45
Conclusion
Future Work
Dependency and Configuration Injection
Encapsulation of third party services:
Auth0, Keycloak, Okta, …
Paypal
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 45 / 45
Conclusion
Future Work
Dependency and Configuration Injection
Encapsulation of third party services:
Auth0, Keycloak, Okta, …
Paypal
OAuth2 via Web Components: trust?
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 45 / 45
Conclusion
Future Work
Dependency and Configuration Injection
Encapsulation of third party services:
Auth0, Keycloak, Okta, …
Paypal
OAuth2 via Web Components: trust?
Logs, monitoring, instrumentation …
William Bartlett (Treeptik) Full-stack Microservices 15 November, 2018 45 / 45

More Related Content

Similar to Fullstack Microservices

Flink for Everyone: Self Service Data Analytics with StreamPipes - Philipp Ze...
Flink for Everyone: Self Service Data Analytics with StreamPipes - Philipp Ze...Flink for Everyone: Self Service Data Analytics with StreamPipes - Philipp Ze...
Flink for Everyone: Self Service Data Analytics with StreamPipes - Philipp Ze...
Flink Forward
 

Similar to Fullstack Microservices (20)

Web analytics with R
Web analytics with RWeb analytics with R
Web analytics with R
 
O'Reilly SACON NY 2018 "Continuous Delivery Patterns for Contemporary Archite...
O'Reilly SACON NY 2018 "Continuous Delivery Patterns for Contemporary Archite...O'Reilly SACON NY 2018 "Continuous Delivery Patterns for Contemporary Archite...
O'Reilly SACON NY 2018 "Continuous Delivery Patterns for Contemporary Archite...
 
First_seminar_talk
First_seminar_talkFirst_seminar_talk
First_seminar_talk
 
On Contracts and Sandboxes for JavaScript
On Contracts and Sandboxes for JavaScriptOn Contracts and Sandboxes for JavaScript
On Contracts and Sandboxes for JavaScript
 
Designing Scalable and Secure Microservices by Embracing DevOps-as-a-Service ...
Designing Scalable and Secure Microservices by Embracing DevOps-as-a-Service ...Designing Scalable and Secure Microservices by Embracing DevOps-as-a-Service ...
Designing Scalable and Secure Microservices by Embracing DevOps-as-a-Service ...
 
Domain Specific Language generation based on a XML Schema.
Domain Specific Language generation based on a XML Schema.Domain Specific Language generation based on a XML Schema.
Domain Specific Language generation based on a XML Schema.
 
How to build an ETL pipeline with Apache Beam on Google Cloud Dataflow
How to build an ETL pipeline with Apache Beam on Google Cloud DataflowHow to build an ETL pipeline with Apache Beam on Google Cloud Dataflow
How to build an ETL pipeline with Apache Beam on Google Cloud Dataflow
 
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
 
Efficient Dynamic Access Analysis Using JavaScript Proxies
Efficient Dynamic Access Analysis Using JavaScript ProxiesEfficient Dynamic Access Analysis Using JavaScript Proxies
Efficient Dynamic Access Analysis Using JavaScript Proxies
 
Tabnet presentation
Tabnet presentationTabnet presentation
Tabnet presentation
 
Adding Realtime to your Projects
Adding Realtime to your ProjectsAdding Realtime to your Projects
Adding Realtime to your Projects
 
Catia product enhancement_overview_v5r20
Catia product enhancement_overview_v5r20Catia product enhancement_overview_v5r20
Catia product enhancement_overview_v5r20
 
Ogi conf delft_v1_evangelos_kalampokis
Ogi conf delft_v1_evangelos_kalampokisOgi conf delft_v1_evangelos_kalampokis
Ogi conf delft_v1_evangelos_kalampokis
 
35C3: EventFahrplan - Lightning Talk - Day 2
35C3: EventFahrplan - Lightning Talk - Day 235C3: EventFahrplan - Lightning Talk - Day 2
35C3: EventFahrplan - Lightning Talk - Day 2
 
Data Integration in a Big Data Context
Data Integration in a Big Data ContextData Integration in a Big Data Context
Data Integration in a Big Data Context
 
LINEデリマでのElasticsearchの運用と監視の話
LINEデリマでのElasticsearchの運用と監視の話LINEデリマでのElasticsearchの運用と監視の話
LINEデリマでのElasticsearchの運用と監視の話
 
GraphQL Without a Database | Frontend Developer Love
GraphQL Without a Database | Frontend Developer LoveGraphQL Without a Database | Frontend Developer Love
GraphQL Without a Database | Frontend Developer Love
 
Flink for Everyone: Self Service Data Analytics with StreamPipes - Philipp Ze...
Flink for Everyone: Self Service Data Analytics with StreamPipes - Philipp Ze...Flink for Everyone: Self Service Data Analytics with StreamPipes - Philipp Ze...
Flink for Everyone: Self Service Data Analytics with StreamPipes - Philipp Ze...
 
5th Qatar BIM User Day, Live modeling techniques on a single project
5th Qatar BIM User Day, Live modeling techniques on a single project5th Qatar BIM User Day, Live modeling techniques on a single project
5th Qatar BIM User Day, Live modeling techniques on a single project
 
Documenting serverless architectures could we do it better - o'reily sa con...
Documenting serverless architectures  could we do it better  - o'reily sa con...Documenting serverless architectures  could we do it better  - o'reily sa con...
Documenting serverless architectures could we do it better - o'reily sa con...
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 

Fullstack Microservices