Introduction to the Particular Platform

19
http://particular.net Particular Platform Mauro Servienti Solution Architect @ Particular Software

Transcript of Introduction to the Particular Platform

http://particular.net

Particular Platform

Mauro Servienti

Solution Architect @ Particular Software

Agenda

• Se qualcosa va storto?• Monitoraggio asincrono di processi asincroni…• Monitorare se stessi

Learn to build better systemsfrom Udi Dahan

Advanced Distributed Systems Design2 days (out of 5) for FREE

Sign up here: http://go.particular.net/COPItaly

Access code: MPNGNC

Expiration date: 25/5/2015

Se qualcosa va storto?Design with failure in mind

Gestire errori asincroni non è semplice• Quando un sistema è guidato da messaggi non possiamo perdere

nulla:• Perdere un messaggio significa corruzione dei dati;

• Esistono due principali tipologie di fallimento:• A livello di messaggio;• A livello di endpoint;

• ServicePulse è il tool di amministrazione per Ops / DevOps;

Errori a livello di messaggio

• Ci possiamo trovare di fronte a 3 tipologie:• Bug: non ha senso riprovare finché non è fissato;• Inefficienze temporanee: riprovare può essere molto utile;• Errori di business: in teoria non ha nessun senso riprovare;

• Se un messaggio fallisce:• -> First level retries;• -> Second Level retries;• -> coda di errore;

Errori a livello di endpoint

• Ci possiamo trovare di fronte a 2 tipologie :• L’intero endpoint: il processo che ci ospita crasha o non parte proprio;• Errori in sistemi da cui dipendiamo: il processo teoricamente va ma non è in

grado di lavorare;

Demo

Recap

• ServicePulse è lo strumento di monitoraggio per l’intero sistema;• Possiamo introdurre i custom checks per verificare lo stato delle

dipendenze;

Monitoraggio asincrono…… di processi asincroni

Auditing

• In un sistema composto da tanti attori è molto facile perdere il controllo;• NServiceBus ha attivo l’auditing attraverso le code di “Audit”;• Una coda di audit è semplicemente una coda;

• ServiceInsight è lo strumento DevOps per il debug live di un sistema;

Demo

Recap

• ServiceInsight è uno strumento pensato per il mondo Dev / DevOps:• Ma anche un omino di business capisce cosa sta succedendo;

• Si può connettere a qualsiasi ambiente presidiato da ServiceControl;

EndpointEndpoint

EndpointEndpointEndpoint

Audit Q

Error Q

Control Q

Architecture Recap

Events audit.log Q error.log Q

Monitorare se stessiPuò il sistema reagire ai suoi stessi problemi?

Gli eventi di ServiceControl

• Ogni volta che lo stato di qualcosa cambia un evento viene pubblicato;• Chiunque si può sottoscrivere a:• MessageFailed• HeartbeatStopped• HeartbeatRestored• CustomCheckSucceeded• CustomCheckFailed

• Il concetto è “nessuna nuova buona nuova” :-)

Demo

Recap

• Il sistema stesso può reagire a cambiamenti e/o errori;• Dato che gli eventi di ServiceControl messaggi standard di

NServiseBus:• Il monitoraggio è affidabile;• Il monitoraggio, come qualsiasi altro endpoint, può essere scalato

orizzontalmente;

Q&AThanks