Il viaggio di un'architettura: dal monolite ad un ecosistema di API ed eventi

Post on 21-Jan-2018

244 views 3 download

Transcript of Il viaggio di un'architettura: dal monolite ad un ecosistema di API ed eventi

#SENDSummit17

Il viaggio di un’architettura:

dal monolite ad un ecosistema di API ed eventi

Ernesto Colombo, Head of Engineering – Contactlab

Luca Cipriani, CIO - Arduino

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17 2

API, event driven and near real time ingestion platform

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

Team a raccolta

3

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17 4

2017 – Architettura

Riuscite a leggere lo schema?Allora avete superpoteri

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17 5

L’evoluzione 2015 – 2017[8]

Applicazione per la distribuzione

di messaggi digitali

Piattaforma per la raccolta,

raffinazione e utilizzo dei dati

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

Cosa intendiamo per dati

6

Miss Piggy

Il contattoMiss Piggy

piggy@muppet.com

Ha comprato la borsetta #123

Ha visitato la pagina http://muppet.com

Ha cliccato il link #345 nella mail #234

Ha aperto la mail #234

Le è stata inviata la mail #234

Socio-demo

Eventi

Tempo

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17 7

2001 – 2015: c’era una volta l’email service provider

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17 8

Send Web UI

Handler/Datalab

API Legacy

Engine

DB Legacy

C’era una volta

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17 9

Kermit

l’utente

della

piattaforma

Miss Piggy

Il contattoMiss Piggy

piggy@muppet.com

Cliccato link

Mail aperta

Mail inviata

Dr. Stranasetola

Data scientist

Tempo

C’era una volta

9

Send Web UI

Handler/Datalab

API Legacy

Engine

DB Legacy

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17 10

The thinker

Quali sono limiti i

architetturali e funzionali?

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

Quali sono limiti i

architetturali e funzionali?

11

Integrazione su DB

– Interazioni nascoste

– Unico pattern persistenza

– Difficilmente estendibile

Eventi persi

Non totalmente aperta

Poco intelligente

Poco automatizzabile

DB Legacy

Send Web UI

Handler/Datalab

API Legacy

Engine

Kermit

l’utente

Miss Piggy

Il contatto

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

The thinker

12

The Doer

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17 13

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

14

2017[8]: la nuova archittetura

Data River

• Enrich

• Analyze

• Visualize

• Segment

• Plan

OAuth

Public

REST

API

• Gather

• Aggregate

• Send• Deliver• Automation

• Activate

• Automate

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

1. Miss Piggy e l’ecommerce

15

Data River / Data Lake

Miss Piggy

piggy@muppet.com

Profilo Miss Piggy

Tempo

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

2. Miss Piggy fa shopping

16

Data River / Data Lake

• Send

Miss Piggy

piggy@muppet.com

Transazione #1

Transazione #2

Transazioni #1 e #2

Tempo

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

3. Data in azione

17

Data River / Data Lake

Miss Piggy

piggy@muppet.com

Transazione #1

Transazione #2

High Spender

Enrichment: Miss Piggy è un High Spender

Tempo

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

4. Flow in azione

18

Data River / Data Lake

Miss Piggy

piggy@muppet.com

Transazione #1

Transazione #2

High Spender

Mail #1 inviata

One Page

App UI’s

Mail #1 inviata

Tempo

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

Mail #2 inviata

5. Plan in soccorso

19

Data River / Data Lake

Miss Piggy

piggy@muppet.com

Transazione #1

Transazione #2

High Spender

Mail #2 inviata

Mail #1 inviata

One Page

App UI’s

Tempo

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

Transazione #3 Mail #2 aperta

20

Data River / Data Lake

Miss Piggy

piggy@muppet.com

Transazione #1

Transazione #2

High Spender

Transazione #3

Mail #2 inviata

Mail #1 inviata

One Page

App UI’s

Mail #2 aperta

6. Finalmente Miss Piggy torna a comprare

Tempo

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

Integrazione su DB

– Interazioni nascoste

– Unico pattern persistenza

– Difficilmente estendibile

Interazioni invisibili

Non totalmente aperta

Poco smart

Poco automatizzabile✓ Programmabile

DB Legacy

Send Web UI

Handler/Datalab

API Legacy

Engine

Kermit

l’utente

Miss Piggy

Il contatto

Limiti superati?

21

Data River / Data Lake

✓ Event-driven

✓ Interfacce esplicite

✓ Poliglotta nella persistenza

✓ Modulare

✓ Raccoglie tutti gli eventi

✓ Aperta e API-first

✓ Comincia a ragionare :)

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

Il panorama è bello qua su

22

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17 23

C’è molto di più…

Organizzazione

– Architettura e organizzazione

– Adozione agile

Architetture

– Automazioni infrastruttura

– Servizi fat vs micro

– Logging, monitoring

API REST

– Documentazione

– Design

Sviluppo

– Continuous delivery

– Test driven development

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17 24

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17 25

ARDUINO Single Sign On

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

Il problema

Più di 15 siti in produzione

Ciascun sito con il proprio header/footer

Database utenti non uniforme

I siti di Arduino collezionano più di 120M di utenti unici l’anno.

Arduino.cc è uno dei top 3000 websites al mondo.

26

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

Gli utenti dovevano loggarsi più

volte sui vari siti (seppur con le

stesse credenziali)

La UI dei siti era leggermente

diversa

I designer pixel perfect

diventavano paranoici

UI/UX needs

27

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

Se devi farlo più di due volte,

automatizzalo

Ogni modifica all’header o al

footer richiedeva la modifica su

tutti i siti

Stima per aggiungere una menu

entry 16h di sviluppo

Lazy Developers

28

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

Unire le esigenze dei designer,

degli utenti e degli sviluppatori

Avere una singola sorgente

dell’html

Semplificare la manutenzione

Consentire rapide modifiche ai

siti

Avere una pagina profilo utente

unificata

SSO + UI Unificate

29

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

Compatibilità Oauth2

Supporto per app client side only (Angular.js)

Sicurezza

REST API server to server

Un solo DB per tutte le info utente (store, sito, blog, forum)

NoSQL DB

Login flow standard

Pianificazione

30

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

Leggere tutte le specifiche Oauth2 (ad esempio Jasig non implementa

l’implicit flow)

rfc6749

REST API jwt, temporary token

Captcha, recaptcha, nocaptcha

Accessi dalla Cina

Studio

31

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

Libreria JS async

HTML injection

Responsive design

Supporto multilingua

Mostra/Nascondi elementi

Carrello su tutti i siti

REST API per carrello,

avatar, auth flow

Implementazione

32

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

CDN

Auto deploy ad ogni github

release

AWS Lambda per cache

invalidation

CORS config

Cache

Deploy

33

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

Modifica dati da parte degli utenti stessi

Validazione campi (frontend e backend)

Stop ai Bot

Visualizzazione di alcuni dati da parte di altri utenti

Possibilità di aggregare i dati con Contacthub

User view

34

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

Una sola sorgente dati

Un solo db a documenti

REST API per qualunque azione

Webhooks per realtime sync

Bulk upload

Perché scegliere Contacthub?

35

SEND17

è un evento

organizzato da

GRAZIE

è un evento organizzato da

© Copyright 2017 Contactlab This document may not be modified, organized or reutilized in any way without the express written permission of the rightful owner.

#SENDSummit17

Piattaforma di engagement, una

data pipe:

Modulare

Aperta a tutti gli eventi

API-first

Intelligente

Programmabile

TAKE AWAY

37