SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
Message
Architectures
in Distributed
Systems

Eric Lubow
@elubow
elubow@simplereach.com
#ddtx14
Overview
•

SimpleReach

•

Why is messaging important

•

Goals

•

Explanations

•

Questions

Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Personal Vanity
•

CTO of SimpleReach

•

Co-author of Practical Cassandra

•

Skydiver, Mixed Martial Artist,
Motorcyclist, Dog dad, NY Giants fan

•

IronMatt Foundation for Pediatric Brian
Tumors (ironmatt.org)
Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
SimpleReach
•

Millions of URLs per day

•

Over 3.25 billion page views per month

•

1.4b events per day (~16k events/second)

•

Auto-scale 125-160 machines depending on traffic

•

Built a predictive measurement algorithm for the social web

Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Why is Messaging Important?
•

Most large scale systems discussions only talk about storage

•

Direct high volumes of data around your infrastructure

•

Control flow of data through your infrastructure

•

Decouple important systems

•

Scalability, Elasticity, Deliverability, and Redundancy

•

Buffering and Asynchronous communication

Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Data Flow
incoming request

❶

❸ send response
App

❹
async queue message

sync persist data

❷

Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Goals
•

Consistent interfaces between systems

•

Allow access to many toolsets

•

Minimize downtime/Minimize cost of downtime

•

High availability

•

Clients should have minimal architecture knowledge

•

Horizontal Scaling

•

Controlled Data Flow Patterns

•

Enrichment/In-stream Modification Schemes

•

Monitoring and Instrumentation
Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Messaging Systems
•
•
•
•

RabbitMQ
ZeroMQ
Kafka
Amazon SQS

•
•
•
•

NSQ
ActiveMQ
Resque
Custom

Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
What Did SimpleReach Choose?

Message Architectures in Distributed Systems
Message Architectures in Distributed Systems

EricEric Lubow@elubow #ddtx14
Lubow
@elubow #ddtx14
NSQ
•

Distributed and de-centralized topology

•

At least once delivery guaranteed

•

Multicast style message routing

•

Simple to configure and deploy

•

Allow for maintenance windows with no downtime

•

Ephemeral channels for testing

•

Channel sampling

github.com/bitly/nsq

Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Topics and Channels
• a topic is a distinct stream of messages

(a single nsqd instance can have multiple
topics)

nsqd

separate hosts

Topics

• a channel is an independent queue for a

topic (a topic can have multiple
channels)
• consumers discover producers by

querying nsqlookupd (a discovery
service for topics)
• topics and channels are created at

Consumers

“event”

A
B

Channels
“metrics”
“enrichment”
“writer”

runtime (just start publishing/
subscribing)
Message Architectures in Distributed Systems
Message Architectures in Distributed Systems

Eric Lubow @elubow #ddtx14
Eric Lubow @elubow #ddtx14
Everyone Speaks The Same Language

http:// + {“content-type”: “application/json”}

Message Architectures in Distributed Systems
Message Architectures in Distributed Systems

EricEric Lubow@elubow #ddtx14
Lubow
@elubow #ddtx14
Goals
•

Consistent interfaces between systems

Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
NSQ Tools
• nsqadmin provides a web interface to

administrate and introspect an NSQ cluster at
runtime (and empty, pause, or delete topics/
channels)
• nsq_to_http - utility that helps transport an

aggregate stream over HTTP
• nsq_to_file - utility that safely persists an

aggregated stream to disk

• nsq_stat - iostat like utility for a topic/channel
• nsq_tail - tail like utility for a topic/channel

Message Architectures in Distributed Systems
Message Architectures in Distributed Systems

Eric Lubow @elubow #ddtx14
Eric Lubow @elubow #ddtx14
Right Tool For The Job

Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Goals
•

Consistent interfaces between systems

•

Allow access to many toolsets

Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
How Does It Work?
API

API

API

NSQD
NSQ

NSQD
NSQ

NSQD
NSQ

PUBLISH

REGISTER
nsqlookupd

nsqlookupd
SUBSCRIBE
DISCOVER
consumer

consumer

Message Architectures in Distributed Systems
Message Architectures in Distributed Systems

Eric Lubow @elubow #ddtx14
Eric Lubow @elubow #ddtx14
The Schrute of the Problem

Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Goals
•

Consistent interfaces between systems

•

Allow access to many toolsets

•

Minimize downtime/Minimize cost of downtime

•

High availability

Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Simple Deployment & Automation
•

Chef cookbook - github.com/simplereach/chef-nsq

•

Written in Go

•

Easily distributable binaries

•

Deploy lookup nodes

•

Nsqd’s installed locally

Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Goals
•

Consistent interfaces between systems

•

Allow access to many toolsets

•

Minimize downtime/Minimize cost of downtime

•

High availability

•

Clients should have minimal architecture knowledge

Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Runtime Discovery
nsqlookupd

nsqlookupd

HTTP requests

consumer

➊ regularly poll for topic producers
➋ connect to all producers

Message Architectures in Distributed Systems
Message Architectures in Distributed Systems

Eric Lubow @elubow #ddtx14
Eric Lubow @elubow #ddtx14
Goals
•

Consistent interfaces between systems

•

Allow access to many toolsets

•

Minimize downtime/Minimize cost of downtime

•

High availability

•

Clients should have minimal architecture knowledge

•

Horizontal Scaling

Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Path of a Packet
Fire
Hose

API
SC

Internal API

Internet

Queue

EC

Consumers

Solr
C*
Mongo
Redis
Vertica
Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Controlled Data Flow
NSQ

Broadcast

NSQ

Batch & Write
Processed Data
Social Event
Collector

Social Data

Batch & Write
Raw Data

Calculate Score

Message Architectures in Distributed Systems

Eric Lubow

Write

@elubow #ddtx14
Broadcast Importance for Polyglottany
NSQ

Broadcast

Mongo Writer
Redis Writer
Writer

Aggregator

Cassandra Writer
Solr Writer
Vertica Writer

Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Controlled Data Flow
NSQ

Broadcast

NSQ

Batch & Write
Processed Data
Social Event
Collector

Social Data

Batch & Write
Raw Data

Calculate Score

Message Architectures in Distributed Systems

Eric Lubow

Write
@elubow #ddtx14
Goals
•

Consistent interfaces between systems

•

Allow access to many toolsets

•

Minimize downtime/Minimize cost of downtime

•

High availability

•

Clients should have minimal architecture knowledge

•

Horizontal Scaling

•

Controlled Data Flow

Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
What Is Enrichment?
A mechanism to add
value to a message to
enhance processing in
your system
Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
How Do We Enrich
NSQ

Broadcast

Consumer A

Raw Event

Enriched
Event

Consumer B

Consumer C
Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Goals
•

Consistent interfaces between systems

•

Allow access to many toolsets

•

Minimize downtime/Minimize cost of downtime

•

High availability

•

Clients should have minimal architecture knowledge

•

Horizontal Scaling

•

Controlled Data Flow

•

Enrichment

Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Monitoring / Instrumentation
•

Comes with statsd support built-in

•

Statsd talks to both Graphite and nsqadmin

•

Nsqadmin comes with graphs for message processing stats

•

Nagios plugins available for monitoring topic/channel depth

•

Average end to end latency calculations are done on a per-channel basis

Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Goals
•

Consistent interfaces between systems

•

Allow access to many toolsets

•

Minimize downtime/Minimize cost of downtime

•

High availability

•

Clients should have minimal architecture knowledge

•

Horizontal Scaling

•

Controlled Data Flow

•

Enrichment

•

Monitoring and Instrumentation
Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Summary
•

Large Systems are more than just storage

•

Abstraction

•

Highly Available

•

Controlled Data Flow Patterns

•

Monitoring & Automation

Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
We’re
Hiring
Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14
Questions are guaranteed in life.
Answers aren’t.
Eric Lubow
@elubow
elubow@simplereach.com
#ddtx14

Thank you.
Message Architectures in Distributed Systems

Eric Lubow

@elubow #ddtx14

Weitere ähnliche Inhalte

Was ist angesagt?

Surviving in a microservices environment
Surviving in a microservices environmentSurviving in a microservices environment
Surviving in a microservices environmentSteve Pember
 
KubeCon 2019 Recap (Parts 1-3)
KubeCon 2019 Recap (Parts 1-3)KubeCon 2019 Recap (Parts 1-3)
KubeCon 2019 Recap (Parts 1-3)Ford Prior
 
Joyent circa 2006 (Scale with Rails)
Joyent circa 2006 (Scale with Rails)Joyent circa 2006 (Scale with Rails)
Joyent circa 2006 (Scale with Rails)bcantrill
 
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...Frank van der Linden
 
Greach 2018: Surviving Microservices
Greach 2018: Surviving MicroservicesGreach 2018: Surviving Microservices
Greach 2018: Surviving MicroservicesSteve Pember
 
Reactive All the Way Down the Stack
Reactive All the Way Down the StackReactive All the Way Down the Stack
Reactive All the Way Down the StackSteve Pember
 
How Clarifai uses NATS and Kubernetes for Machine Learning
How Clarifai uses NATS and Kubernetes for Machine LearningHow Clarifai uses NATS and Kubernetes for Machine Learning
How Clarifai uses NATS and Kubernetes for Machine LearningApcera
 
Handling 1 Billion Requests/hr with Minimal Latency Using Docker
Handling 1 Billion Requests/hr with Minimal Latency Using DockerHandling 1 Billion Requests/hr with Minimal Latency Using Docker
Handling 1 Billion Requests/hr with Minimal Latency Using DockerMatomy
 
Community day 2013 applied architectures
Community day 2013   applied architecturesCommunity day 2013   applied architectures
Community day 2013 applied architecturesPanagiotis Kefalidis
 
My Little Webap - DevOpsSec is Magic
My Little Webap - DevOpsSec is MagicMy Little Webap - DevOpsSec is Magic
My Little Webap - DevOpsSec is MagicApollo Clark
 
FunctionalConf '16 Robert Virding Erlang Ecosystem
FunctionalConf '16 Robert Virding Erlang EcosystemFunctionalConf '16 Robert Virding Erlang Ecosystem
FunctionalConf '16 Robert Virding Erlang EcosystemRobert Virding
 
Big Data! Great! Now What? #SymfonyCon 2014
Big Data! Great! Now What? #SymfonyCon 2014Big Data! Great! Now What? #SymfonyCon 2014
Big Data! Great! Now What? #SymfonyCon 2014Ricard Clau
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...Heiko Voigt
 
O365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
O365Con19 - Sharing Code Efficiently in your Organisation - Elio StruyfO365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
O365Con19 - Sharing Code Efficiently in your Organisation - Elio StruyfNCCOMMS
 
Simple Solutions for Complex Problems
Simple Solutions for Complex Problems Simple Solutions for Complex Problems
Simple Solutions for Complex Problems Apcera
 
Cloud Native Apps ... from a user point of view
Cloud Native Apps ... from a user point of viewCloud Native Apps ... from a user point of view
Cloud Native Apps ... from a user point of viewWeaveworks
 
Modern software architectures - PHP UK Conference 2015
Modern software architectures - PHP UK Conference 2015Modern software architectures - PHP UK Conference 2015
Modern software architectures - PHP UK Conference 2015Ricard Clau
 
Game Server by Teguh
Game Server by TeguhGame Server by Teguh
Game Server by TeguhAgate Studio
 
Rich, Real-time Mobile User Experiences @Devoxx UK
Rich, Real-time Mobile User Experiences @Devoxx UKRich, Real-time Mobile User Experiences @Devoxx UK
Rich, Real-time Mobile User Experiences @Devoxx UKAndy Piper
 

Was ist angesagt? (19)

Surviving in a microservices environment
Surviving in a microservices environmentSurviving in a microservices environment
Surviving in a microservices environment
 
KubeCon 2019 Recap (Parts 1-3)
KubeCon 2019 Recap (Parts 1-3)KubeCon 2019 Recap (Parts 1-3)
KubeCon 2019 Recap (Parts 1-3)
 
Joyent circa 2006 (Scale with Rails)
Joyent circa 2006 (Scale with Rails)Joyent circa 2006 (Scale with Rails)
Joyent circa 2006 (Scale with Rails)
 
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...Engage 2019: The good, the bad and the ugly: a not so objective view on front...
Engage 2019: The good, the bad and the ugly: a not so objective view on front...
 
Greach 2018: Surviving Microservices
Greach 2018: Surviving MicroservicesGreach 2018: Surviving Microservices
Greach 2018: Surviving Microservices
 
Reactive All the Way Down the Stack
Reactive All the Way Down the StackReactive All the Way Down the Stack
Reactive All the Way Down the Stack
 
How Clarifai uses NATS and Kubernetes for Machine Learning
How Clarifai uses NATS and Kubernetes for Machine LearningHow Clarifai uses NATS and Kubernetes for Machine Learning
How Clarifai uses NATS and Kubernetes for Machine Learning
 
Handling 1 Billion Requests/hr with Minimal Latency Using Docker
Handling 1 Billion Requests/hr with Minimal Latency Using DockerHandling 1 Billion Requests/hr with Minimal Latency Using Docker
Handling 1 Billion Requests/hr with Minimal Latency Using Docker
 
Community day 2013 applied architectures
Community day 2013   applied architecturesCommunity day 2013   applied architectures
Community day 2013 applied architectures
 
My Little Webap - DevOpsSec is Magic
My Little Webap - DevOpsSec is MagicMy Little Webap - DevOpsSec is Magic
My Little Webap - DevOpsSec is Magic
 
FunctionalConf '16 Robert Virding Erlang Ecosystem
FunctionalConf '16 Robert Virding Erlang EcosystemFunctionalConf '16 Robert Virding Erlang Ecosystem
FunctionalConf '16 Robert Virding Erlang Ecosystem
 
Big Data! Great! Now What? #SymfonyCon 2014
Big Data! Great! Now What? #SymfonyCon 2014Big Data! Great! Now What? #SymfonyCon 2014
Big Data! Great! Now What? #SymfonyCon 2014
 
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
What is cool with Domino V10, Proton and Node.JS, and why would I use it in ...
 
O365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
O365Con19 - Sharing Code Efficiently in your Organisation - Elio StruyfO365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
O365Con19 - Sharing Code Efficiently in your Organisation - Elio Struyf
 
Simple Solutions for Complex Problems
Simple Solutions for Complex Problems Simple Solutions for Complex Problems
Simple Solutions for Complex Problems
 
Cloud Native Apps ... from a user point of view
Cloud Native Apps ... from a user point of viewCloud Native Apps ... from a user point of view
Cloud Native Apps ... from a user point of view
 
Modern software architectures - PHP UK Conference 2015
Modern software architectures - PHP UK Conference 2015Modern software architectures - PHP UK Conference 2015
Modern software architectures - PHP UK Conference 2015
 
Game Server by Teguh
Game Server by TeguhGame Server by Teguh
Game Server by Teguh
 
Rich, Real-time Mobile User Experiences @Devoxx UK
Rich, Real-time Mobile User Experiences @Devoxx UKRich, Real-time Mobile User Experiences @Devoxx UK
Rich, Real-time Mobile User Experiences @Devoxx UK
 

Ähnlich wie Message Architectures in Distributed Systems - Data Day Texas 2013-01-11

Cassandra Day NY 2014: Message Architectures in Distributed Systems at Simple...
Cassandra Day NY 2014: Message Architectures in Distributed Systems at Simple...Cassandra Day NY 2014: Message Architectures in Distributed Systems at Simple...
Cassandra Day NY 2014: Message Architectures in Distributed Systems at Simple...DataStax Academy
 
Microservices in Go with Go kit
Microservices in Go with Go kitMicroservices in Go with Go kit
Microservices in Go with Go kitShiju Varghese
 
Domain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsDomain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsMark Windholtz
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes Abdul Basit Munda
 
Exploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscapeExploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscapeAlex Thissen
 
Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)Ahmed Misbah
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Ken Owens
 
IBM InterConnect 2015 - IIB Effective Application Development
IBM InterConnect 2015 - IIB Effective Application DevelopmentIBM InterConnect 2015 - IIB Effective Application Development
IBM InterConnect 2015 - IIB Effective Application DevelopmentAndrew Coleman
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableComsysto Reply GmbH
 
Immutable Service Delivery Shenzhen 2016
Immutable Service Delivery   Shenzhen 2016Immutable Service Delivery   Shenzhen 2016
Immutable Service Delivery Shenzhen 2016John Willis
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0Vinod Wilson
 
A Summary about Hykes' Keynote on Dockercon 2015
A Summary about Hykes' Keynote on Dockercon 2015A Summary about Hykes' Keynote on Dockercon 2015
A Summary about Hykes' Keynote on Dockercon 2015Henry Huang
 
Docker, Microservices, and the Service Mesh
Docker, Microservices, and the Service MeshDocker, Microservices, and the Service Mesh
Docker, Microservices, and the Service MeshTony Pujals
 
LIVO Presentation by ENO
LIVO Presentation by ENOLIVO Presentation by ENO
LIVO Presentation by ENOTamer Taşdelen
 
Accelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Accelerate Delivery: Business case for Agile DevOps, CI/CD and MicroservicesAccelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Accelerate Delivery: Business case for Agile DevOps, CI/CD and MicroservicesRick Hightower
 
Linux on Azure - Session TechDays 2014 par Blaise Vignon (Microsoft), Julien ...
Linux on Azure - Session TechDays 2014 par Blaise Vignon (Microsoft), Julien ...Linux on Azure - Session TechDays 2014 par Blaise Vignon (Microsoft), Julien ...
Linux on Azure - Session TechDays 2014 par Blaise Vignon (Microsoft), Julien ...Frédéric Aatz
 
Linux: embarquement immédiat pour le cloud
Linux: embarquement immédiat pour le cloudLinux: embarquement immédiat pour le cloud
Linux: embarquement immédiat pour le cloudMicrosoft
 

Ähnlich wie Message Architectures in Distributed Systems - Data Day Texas 2013-01-11 (20)

Cassandra Day NY 2014: Message Architectures in Distributed Systems at Simple...
Cassandra Day NY 2014: Message Architectures in Distributed Systems at Simple...Cassandra Day NY 2014: Message Architectures in Distributed Systems at Simple...
Cassandra Day NY 2014: Message Architectures in Distributed Systems at Simple...
 
Microservices in Go with Go kit
Microservices in Go with Go kitMicroservices in Go with Go kit
Microservices in Go with Go kit
 
Architecting for Scale
Architecting for ScaleArchitecting for Scale
Architecting for Scale
 
Domain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic PatternsDomain Driven Design Big Picture Strategic Patterns
Domain Driven Design Big Picture Strategic Patterns
 
Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
 
QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes QCon 2015 - Microservices Track Notes
QCon 2015 - Microservices Track Notes
 
Exploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscapeExploring microservices in a Microsoft landscape
Exploring microservices in a Microsoft landscape
 
Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)Istio as an enabler for migrating to microservices (edition 2022)
Istio as an enabler for migrating to microservices (edition 2022)
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015Application Centric Microservices from Redhat Summit 2015
Application Centric Microservices from Redhat Summit 2015
 
IBM InterConnect 2015 - IIB Effective Application Development
IBM InterConnect 2015 - IIB Effective Application DevelopmentIBM InterConnect 2015 - IIB Effective Application Development
IBM InterConnect 2015 - IIB Effective Application Development
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuable
 
Immutable Service Delivery Shenzhen 2016
Immutable Service Delivery   Shenzhen 2016Immutable Service Delivery   Shenzhen 2016
Immutable Service Delivery Shenzhen 2016
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0
 
A Summary about Hykes' Keynote on Dockercon 2015
A Summary about Hykes' Keynote on Dockercon 2015A Summary about Hykes' Keynote on Dockercon 2015
A Summary about Hykes' Keynote on Dockercon 2015
 
Docker, Microservices, and the Service Mesh
Docker, Microservices, and the Service MeshDocker, Microservices, and the Service Mesh
Docker, Microservices, and the Service Mesh
 
LIVO Presentation by ENO
LIVO Presentation by ENOLIVO Presentation by ENO
LIVO Presentation by ENO
 
Accelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Accelerate Delivery: Business case for Agile DevOps, CI/CD and MicroservicesAccelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
Accelerate Delivery: Business case for Agile DevOps, CI/CD and Microservices
 
Linux on Azure - Session TechDays 2014 par Blaise Vignon (Microsoft), Julien ...
Linux on Azure - Session TechDays 2014 par Blaise Vignon (Microsoft), Julien ...Linux on Azure - Session TechDays 2014 par Blaise Vignon (Microsoft), Julien ...
Linux on Azure - Session TechDays 2014 par Blaise Vignon (Microsoft), Julien ...
 
Linux: embarquement immédiat pour le cloud
Linux: embarquement immédiat pour le cloudLinux: embarquement immédiat pour le cloud
Linux: embarquement immédiat pour le cloud
 

Kürzlich hochgeladen

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
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 WorkerThousandEyes
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
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 TerraformAndrey Devyatkin
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 

Kürzlich hochgeladen (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 

Message Architectures in Distributed Systems - Data Day Texas 2013-01-11

  • 2. Overview • SimpleReach • Why is messaging important • Goals • Explanations • Questions Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 3. Personal Vanity • CTO of SimpleReach • Co-author of Practical Cassandra • Skydiver, Mixed Martial Artist, Motorcyclist, Dog dad, NY Giants fan • IronMatt Foundation for Pediatric Brian Tumors (ironmatt.org) Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 4. Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 5. Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 6. SimpleReach • Millions of URLs per day • Over 3.25 billion page views per month • 1.4b events per day (~16k events/second) • Auto-scale 125-160 machines depending on traffic • Built a predictive measurement algorithm for the social web Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 7. Why is Messaging Important? • Most large scale systems discussions only talk about storage • Direct high volumes of data around your infrastructure • Control flow of data through your infrastructure • Decouple important systems • Scalability, Elasticity, Deliverability, and Redundancy • Buffering and Asynchronous communication Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 8. Data Flow incoming request ❶ ❸ send response App ❹ async queue message sync persist data ❷ Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 9. Goals • Consistent interfaces between systems • Allow access to many toolsets • Minimize downtime/Minimize cost of downtime • High availability • Clients should have minimal architecture knowledge • Horizontal Scaling • Controlled Data Flow Patterns • Enrichment/In-stream Modification Schemes • Monitoring and Instrumentation Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 11. What Did SimpleReach Choose? Message Architectures in Distributed Systems Message Architectures in Distributed Systems EricEric Lubow@elubow #ddtx14 Lubow @elubow #ddtx14
  • 12. NSQ • Distributed and de-centralized topology • At least once delivery guaranteed • Multicast style message routing • Simple to configure and deploy • Allow for maintenance windows with no downtime • Ephemeral channels for testing • Channel sampling github.com/bitly/nsq Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 13. Topics and Channels • a topic is a distinct stream of messages (a single nsqd instance can have multiple topics) nsqd separate hosts Topics • a channel is an independent queue for a topic (a topic can have multiple channels) • consumers discover producers by querying nsqlookupd (a discovery service for topics) • topics and channels are created at Consumers “event” A B Channels “metrics” “enrichment” “writer” runtime (just start publishing/ subscribing) Message Architectures in Distributed Systems Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14 Eric Lubow @elubow #ddtx14
  • 14. Everyone Speaks The Same Language http:// + {“content-type”: “application/json”} Message Architectures in Distributed Systems Message Architectures in Distributed Systems EricEric Lubow@elubow #ddtx14 Lubow @elubow #ddtx14
  • 15. Goals • Consistent interfaces between systems Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 16. NSQ Tools • nsqadmin provides a web interface to administrate and introspect an NSQ cluster at runtime (and empty, pause, or delete topics/ channels) • nsq_to_http - utility that helps transport an aggregate stream over HTTP • nsq_to_file - utility that safely persists an aggregated stream to disk • nsq_stat - iostat like utility for a topic/channel • nsq_tail - tail like utility for a topic/channel Message Architectures in Distributed Systems Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14 Eric Lubow @elubow #ddtx14
  • 17. Right Tool For The Job Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 18. Goals • Consistent interfaces between systems • Allow access to many toolsets Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 19. How Does It Work? API API API NSQD NSQ NSQD NSQ NSQD NSQ PUBLISH REGISTER nsqlookupd nsqlookupd SUBSCRIBE DISCOVER consumer consumer Message Architectures in Distributed Systems Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14 Eric Lubow @elubow #ddtx14
  • 20. The Schrute of the Problem Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 21. Goals • Consistent interfaces between systems • Allow access to many toolsets • Minimize downtime/Minimize cost of downtime • High availability Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 22. Simple Deployment & Automation • Chef cookbook - github.com/simplereach/chef-nsq • Written in Go • Easily distributable binaries • Deploy lookup nodes • Nsqd’s installed locally Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 23. Goals • Consistent interfaces between systems • Allow access to many toolsets • Minimize downtime/Minimize cost of downtime • High availability • Clients should have minimal architecture knowledge Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 24. Runtime Discovery nsqlookupd nsqlookupd HTTP requests consumer ➊ regularly poll for topic producers ➋ connect to all producers Message Architectures in Distributed Systems Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14 Eric Lubow @elubow #ddtx14
  • 25. Goals • Consistent interfaces between systems • Allow access to many toolsets • Minimize downtime/Minimize cost of downtime • High availability • Clients should have minimal architecture knowledge • Horizontal Scaling Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 26. Path of a Packet Fire Hose API SC Internal API Internet Queue EC Consumers Solr C* Mongo Redis Vertica Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 27. Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 28. Controlled Data Flow NSQ Broadcast NSQ Batch & Write Processed Data Social Event Collector Social Data Batch & Write Raw Data Calculate Score Message Architectures in Distributed Systems Eric Lubow Write @elubow #ddtx14
  • 29. Broadcast Importance for Polyglottany NSQ Broadcast Mongo Writer Redis Writer Writer Aggregator Cassandra Writer Solr Writer Vertica Writer Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 30. Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 31. Controlled Data Flow NSQ Broadcast NSQ Batch & Write Processed Data Social Event Collector Social Data Batch & Write Raw Data Calculate Score Message Architectures in Distributed Systems Eric Lubow Write @elubow #ddtx14
  • 32. Goals • Consistent interfaces between systems • Allow access to many toolsets • Minimize downtime/Minimize cost of downtime • High availability • Clients should have minimal architecture knowledge • Horizontal Scaling • Controlled Data Flow Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 33. What Is Enrichment? A mechanism to add value to a message to enhance processing in your system Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 34. How Do We Enrich NSQ Broadcast Consumer A Raw Event Enriched Event Consumer B Consumer C Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 35. Goals • Consistent interfaces between systems • Allow access to many toolsets • Minimize downtime/Minimize cost of downtime • High availability • Clients should have minimal architecture knowledge • Horizontal Scaling • Controlled Data Flow • Enrichment Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 36. Monitoring / Instrumentation • Comes with statsd support built-in • Statsd talks to both Graphite and nsqadmin • Nsqadmin comes with graphs for message processing stats • Nagios plugins available for monitoring topic/channel depth • Average end to end latency calculations are done on a per-channel basis Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 37. Goals • Consistent interfaces between systems • Allow access to many toolsets • Minimize downtime/Minimize cost of downtime • High availability • Clients should have minimal architecture knowledge • Horizontal Scaling • Controlled Data Flow • Enrichment • Monitoring and Instrumentation Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 38. Summary • Large Systems are more than just storage • Abstraction • Highly Available • Controlled Data Flow Patterns • Monitoring & Automation Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 39. We’re Hiring Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14
  • 40. Questions are guaranteed in life. Answers aren’t. Eric Lubow @elubow elubow@simplereach.com #ddtx14 Thank you. Message Architectures in Distributed Systems Eric Lubow @elubow #ddtx14