SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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
 

Tendances (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
 

Similaire à 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
 

Similaire à 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
 

Dernier

Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
[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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 

Dernier (20)

Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 

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