nservicebus at scale

32
NServiceBus at Scale

Upload: particular-software

Post on 24-Jun-2015

146 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Nservicebus at scale

NServiceBus at Scale

Page 2: Nservicebus at scale

About MeCharlie Barker

Twitter: @porkstone Blog: http://dualbotic.com

Page 3: Nservicebus at scale

What will this talk cover?

Why we adopted NServiceBusMonitoring / TuningIntegration Example with a PSPLessons Learned

Page 4: Nservicebus at scale

How our platform used to communicate

Website Back OfficeDecision Engine

XML/HTTPXML/HTTP

Third party services

Page 5: Nservicebus at scale

House of cards

Page 6: Nservicebus at scale

Why NServiceBus?

● Udi says● Robust● Distributed● Opinionated● Training● Community

Page 7: Nservicebus at scale

● Added more granular events● Used WMI to send data● Aggregated data every minute● Exceptions by Message Type● Allowed us to find bottlenecks quickly● Allowed us to predict SLA failure

Monitoring / Tuning

Page 8: Nservicebus at scale

Predict Failure Point

1 7 14 21 28

% Busy Time

Day of the month

SLA Breach

Page 9: Nservicebus at scale

Monitoring - TIFA

Page 10: Nservicebus at scale

Messaging Overview

Page 11: Nservicebus at scale

Detailed View - Message Type Breakdown

Page 12: Nservicebus at scale

Detailed View - Single Message

Page 13: Nservicebus at scale

Metrics available for endpoint as a whole

● %Busy Time● %Idle Time● Critical Time(s)

Page 14: Nservicebus at scale

Metrics for endpoints + individual messages

● Count● Percentage of time● Average Duration

Page 15: Nservicebus at scale

Count Metrics

● Message Count● Errors Count● Retries Count● Handler Failures Count

Page 16: Nservicebus at scale

Percentage of time metrics

● Message deserialisation time● Message handler time● Message commit time● Message processing time● Failed message processing time

Page 17: Nservicebus at scale

Average Duration metrics

● Avg message deserialize (ms)● Avg message handler (ms)● Avg message commit (ms)● Avg message processing (ms)● Avg failed message processing (ms)

Page 18: Nservicebus at scale

Ivica

Page 19: Nservicebus at scale

Integration Example

Page 20: Nservicebus at scale

Endpoints

Engine Bot

Payment ServiceProvider

HTTP

NSB v3.3.5RavenDB 2.0

Page 21: Nservicebus at scale

Bot configuration

Page 22: Nservicebus at scale

[Unique] Attribute

Page 23: Nservicebus at scale

RavenDB

Page 24: Nservicebus at scale

UniqueSagaIdentity Document

Page 25: Nservicebus at scale

Creating the missing docs

Page 26: Nservicebus at scale

Payment Collection Saga

Page 27: Nservicebus at scale

Payment Collection Saga - Start/Stop

Page 28: Nservicebus at scale

Payment Collection Saga - Timeout

Page 29: Nservicebus at scale

Lessons Learned

● Code dependencies● Testing Async● Testing Long Running Processes● Deploying the DTC● Rewrite from scratch?

Page 30: Nservicebus at scale

What would I like to see in the future?

Page 31: Nservicebus at scale

Questions?

Page 32: Nservicebus at scale

fin