Progettare una UI per Microservices

Slides:



Advertisements
Presentazioni simili
WPF per il client Desktop
Advertisements

Consistente? De-normalizzazione, consistenza eventuale e assenza di transazioni, perché sono un vantaggio e non un problema.
FSUG Padova – Serate a tema 2010 Serate a tema 2010 Introduzione alle serate del primo ciclo 2010: Software Libero per le PMI Free Software User Group.
Linux Day 2006 – Giornata nazionale dedicata al Software Libero e GNU/ Linux – Trusted Computing: Ecco il tuo Futuro Antonio Angelotti.
+ Common actions Nicolò Sordoni. + Azioni comuni Esistono una serie di azioni di uso comune, che vengono messe a disposizione dalla piattaforma tramite.
La Business Intelligence per comprendere e governare la complessità Bari, 26 novembre 2008 a cura di: Vito Manzari Antonio Lisi.
UNIVERSITÀ DEGLI STUDI DI MODENA E REGGIO EMILIA Dipartimento di Scienze Fisiche, Informatiche e Matematiche Corso di Laurea in Informatica Relatore: Riccardo.
MILANO FASHION GLOBAL SUMMIT 2012 La sfida delle risorse umane in Cina Milano, 8 Settembre.
Basi di dati - Fondamenti
Corso di Web Marketing 8 Maggio – 8 Giugno 2017.
Dott.ssa Elisa Papa – albo n° 5343 del 3/3/2008 –
Lato Server - OMNIS Web Web Services.
FORMAZIONE INTERNAZIONALE
DNS Domain Name Server.
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
SICURI IN RETE MODULO C.
FATTO!.
Il prezzo.
Università degli studi di Roma Tor Vergata
Orienta DropOut Gli atteggiamenti verso la dispersione scolastica di insegnanti e studenti del nostro liceo (2015)
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
LABORATORIO DI APPRENDIMENTO ORGANIZZATIVO
H2020 – gruppo ‘data’.
Gabriele Grea Innovazioni tecnologiche, organizzative e di business: governare la mobilità del futuro Gabriele Grea
Studente/i Relatore Correlatore Committente Christian Ortega
Laboratorio di produzione editoriale
Commissione Calcolo e Reti
LE ARCHITETTURE NON VON NEUMANN
OPEN SOURCE MANAGEMENT
ITHESIA: PROSPERARE IN GRUPPO
Il Binding Nicolò Sordoni.
© UNIPLAN SOFTWARE s.r.l Tutti i diritti sono riservati
Statistica Aziendale Tutti i fenomeni aziendali che si prestano ad analisi statistica dovrebbero rientrare, anche se in modo non esclusivo, nell’ambito.
INDICO Parte 1 01/07/2018 Francesco Serafini.
Condivisione Documentazione Tecnica
I vincoli di integrità Alcuni aspetti della realtà NON possono essere modellati solamente con entità, attributi e relazioni, per esempio i vincoli di integrità.
JAPS: una soluzione “Agile”
Statistiche 27/05/2008.
Concorrenza perfetta e concorrenza monopolistica
FAQ.
Reciprocal TUTORING.
Una vita, una nuvola Fabio Ginestri.
Corso di Economia aziendale
RES PowerFuse® e RES WISDOM®
Per supporto contatta il Motorola Service Desk
Ecco tutte le informazioni Microsoft Notizie di SharePoint
Gli schemi concettuali
A cura dell’Ing. Buttolo Marco.
Caratteristiche e funzioni della scheda Arduino
Basi di dati - Fondamenti
Introduzione alla materia sistemi
Programmazione e Laboratorio di Programmazione
Marketing dell’Editoria
Progettazione concettuale
Programmazione e Laboratorio di Programmazione
© 2007 SEI-Società Editrice Internazionale, Apogeo
IL QUESTIONARIO SULLA PERCEZIONE DELLA CORRUZIONE
Concetti base 1.1.
Applicazioni ambito PA
OPEN SOURCE MANAGEMENT
Gli archivi e le basi di dati
Automazione per camere eee
Prof. Andrea Rea A.A. 2018/2019.
Università degli studi di Modena e Reggio Emilia
Strategie di progetto Si possono utilizzare le strategie tipiche dello sviluppo di un processo di ingegnerizzazione (es. ingegneria del software). Strategie.
Prof. Andrea Rea A.A. 2018/2019.
COSA VEDI SUL DISEGNO SEGUENTE ?
Programmazione e Laboratorio di Programmazione
Comunicazione d’impresa e Responsabilità Sociale d’Impresa
Transcript della presentazione:

Progettare una UI per Microservices Mauro Servienti

C’era una volta DDD

Data de-composition e owership Uno dei concetti fondanti di DDD quando si parla di Bounded Context; Un tipo di aggregato, in quanto «data & behavior», può esistere solo ed esclusivamente in un BC Un BC è Owner di un determinato dato e dei suoi comportamenti Il mondo reale funziona in maniera molto simile

Un «prodotto»

Un «prodotto»: davvero? Possiamo definire un «aggregato/classe» Prodotto? Chi è responsabile (Owner) per le modifiche a Prodotto?

Disponibilità limitata «Un» prodotto? Marketing Zucca di Halloween Fantastica Zucca di Halloween intagliata, rappresentante una faccia sorridente, completa di led a batteria bianco. Prezzo: 15 Euro Trasporto: incluso Peso: 4Kg Disponibilità limitata Sales Shipping Warehouse Publishing

Un prodotto Un insieme di informazioni detenute dai rispettivi Owner, accumunate da una chiave

La UI si aspetta coerenza Decomposto abbiamo decomposto…e adesso?

de-normalizziamo!

Marketing Sales Shipping Warehouse Publishing De-normalized API «Un» Prodotto Client

de-normalizzazione La de-normalizzazione crea forte accoppiamento (Questa è grossa) Ho un’informazione duplicata da gestire Ho minore libertà di evoluzione trasformazioni per garantire la compatibilità Ho un single point of failure Ci obbliga a digerire la consistenza eventuale La de-normalizzazione pura e semplice è una cache Ci obbliga ad aggiungere infrastruttura I «messaggi» e le «code» che non sono la scelta giusta per: Data distribution Invalidazione di una cache

Un prodotto Un insieme di informazioni detenute dai rispettivi Owner, accumunate da una chiave

Marketing Sales Shipping Warehouse Publishing PK PK PK PK PK Client

UI Composition Meno infrastruttura Nessun single point of failure Se la UI è fatta bene, ma adesso la possiamo fare bene Non dobbiamo digerire consistenza eventuale Che è un interessante problema perché non sappiamo quanto è eventuale

Ha senso? Architetturalmente ne ha tantissimo Obiettivo di DDD e SOA è modellare la realtà Ogni altra scelta è un compromesso Quando ha senso? Amazon-like: il che vuol dire tante cose… Non è tutto sotto il nostro controllo

Non è tutto sotto il nostro controllo Quando il business cresce è normale che vengano introdotti servizi di terze parti SAP etc. Altri sistemi interni sotto il controllo di altri team L’evoluzione di sistemi monolitici verso qualcosa di migliore

In soldoni?

Customers IT/OPs Actor UI request IO/Ops Service Customers IT/OPs Actor Request to Customers endpoint Sales IT/OPs Actor Request to Sales endpoint Finance IT/OPs Actor Request to Finance endpoint Composed ViewModel ViewModel Composition

Demo

Recap

UI Composition Abbiamo sempre un entry point in base allo scenario La lista degli ordini? SalesService I clienti? CustomersService Gli ordini dato un cliente? SalesService + Customer-ID La home page con le promozioni? MarketingService L’entry point ci permette di sopravvivere al potenziale SELECT N+1 Lo scopo è ridurre all’osso il numero di richieste verso i server

UI Composition: composizione La UI decide cosa caricare o i dati decidono come deve essere la UI? Auto-templating engine: affascinante e complesso Region management: fortemente legata alla tecnologia Template predefiniti + Composition team: semplice ed efficace Si riduce tutto ad una questione di Deploy

UI Composition: request/response Il vostro scopo è abbattere le chiamate fatte ai servizi (microservizi?) Se dovete visualizzare una lista Di 10 elementi «composta» da 5 servizi Non volete 51 chiamate ma solo 6 Approcci IT/Ops client side: con una SPA è l’unica soluzione IT/Ops server side: sposto la logica di aggregazione nel «primo» entry point Ci sono sistemi hardware che fanno questa cosa, tutto deve essere renderizzato server-side Client Batching + Server Batching: fantastico ma molto complesso

Grazie Mauro Servienti Solution Architect @ Particular Software | @mauroservienti | //blogs.ugidotnet.org/topics/ Demo: //github.com/mauroservienti/Services-UI-Composition