Enviar pesquisa
Carregar
Software Architecture over ZeroMQ
•
16 gostaram
•
5,395 visualizações
P
pieterh
Seguir
Presented at Strange Loop 2012 How to build large systems that can survive 50 years.
Leia menos
Leia mais
Tecnologia
Diversão e humor
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 56
Baixar agora
Baixar para ler offline
Recomendados
Europycon2011: Implementing distributed application using ZeroMQ
Europycon2011: Implementing distributed application using ZeroMQ
fcrippa
Overview of ZeroMQ
Overview of ZeroMQ
pieterh
ZeroMQ Is The Answer
ZeroMQ Is The Answer
Ian Barber
FOSDEM 2011 - 0MQ
FOSDEM 2011 - 0MQ
pieterh
Build reliable, traceable, distributed systems with ZeroMQ
Build reliable, traceable, distributed systems with ZeroMQ
Robin Xiao
Redis & ZeroMQ: How to scale your application
Redis & ZeroMQ: How to scale your application
rjsmelo
ZeroMQ: Super Sockets - by J2 Labs
ZeroMQ: Super Sockets - by J2 Labs
James Dennis
Switch or broker
Switch or broker
pieterh
Recomendados
Europycon2011: Implementing distributed application using ZeroMQ
Europycon2011: Implementing distributed application using ZeroMQ
fcrippa
Overview of ZeroMQ
Overview of ZeroMQ
pieterh
ZeroMQ Is The Answer
ZeroMQ Is The Answer
Ian Barber
FOSDEM 2011 - 0MQ
FOSDEM 2011 - 0MQ
pieterh
Build reliable, traceable, distributed systems with ZeroMQ
Build reliable, traceable, distributed systems with ZeroMQ
Robin Xiao
Redis & ZeroMQ: How to scale your application
Redis & ZeroMQ: How to scale your application
rjsmelo
ZeroMQ: Super Sockets - by J2 Labs
ZeroMQ: Super Sockets - by J2 Labs
James Dennis
Switch or broker
Switch or broker
pieterh
Introduction to ZeroMQ - eSpace TechTalk
Introduction to ZeroMQ - eSpace TechTalk
Mahmoud Said
Zeromq anatomy & jeromq
Zeromq anatomy & jeromq
Dongmin Yu
Software Architecture using ZeroMQ - techmesh 2012
Software Architecture using ZeroMQ - techmesh 2012
pieterh
Git Without Branches - Simple, Smooth, Scalable
Git Without Branches - Simple, Smooth, Scalable
pieterh
Revolutionary Open Source
Revolutionary Open Source
pieterh
Practical Message Queueing using RabbitMQ (Nomad PHP EU Dec 2014)
Practical Message Queueing using RabbitMQ (Nomad PHP EU Dec 2014)
James Titcumb
Social architecture-101
Social architecture-101
pieterh
Fosdem 2009
Fosdem 2009
pieterh
Introducing Practical RabbitMQ (php[tek] 2016 - Tutorial)
Introducing Practical RabbitMQ (php[tek] 2016 - Tutorial)
James Titcumb
CurveZMQ, ZMTP and other Dubious Characters
CurveZMQ, ZMTP and other Dubious Characters
pieterh
Introduction to Heroku Postgres
Introduction to Heroku Postgres
Salesforce Developers
Scala and ZeroMQ: Events beyond the JVM
Scala and ZeroMQ: Events beyond the JVM
RUDDER
Roman Kuznietsov: Zeromq: sockets on steroids.Zero mq
Roman Kuznietsov: Zeromq: sockets on steroids.Zero mq
Sphere Consulting Inc
ZeroMQ
ZeroMQ
Stoyan Zhekov
zeromq
zeromq
Rajan Bhatt
ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti
ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti
Matteo Fortini
RabbitMq
RabbitMq
Ahmad Saif
RestMS Introduction
RestMS Introduction
pieterh
Introduction to ZeroMQ
Introduction to ZeroMQ
YiHung Lee
Zmq in context of openstack
Zmq in context of openstack
Yatin Kumbhare
Architecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Angeliki Cooney
Mais conteúdo relacionado
Destaque
Introduction to ZeroMQ - eSpace TechTalk
Introduction to ZeroMQ - eSpace TechTalk
Mahmoud Said
Zeromq anatomy & jeromq
Zeromq anatomy & jeromq
Dongmin Yu
Software Architecture using ZeroMQ - techmesh 2012
Software Architecture using ZeroMQ - techmesh 2012
pieterh
Git Without Branches - Simple, Smooth, Scalable
Git Without Branches - Simple, Smooth, Scalable
pieterh
Revolutionary Open Source
Revolutionary Open Source
pieterh
Practical Message Queueing using RabbitMQ (Nomad PHP EU Dec 2014)
Practical Message Queueing using RabbitMQ (Nomad PHP EU Dec 2014)
James Titcumb
Social architecture-101
Social architecture-101
pieterh
Fosdem 2009
Fosdem 2009
pieterh
Introducing Practical RabbitMQ (php[tek] 2016 - Tutorial)
Introducing Practical RabbitMQ (php[tek] 2016 - Tutorial)
James Titcumb
CurveZMQ, ZMTP and other Dubious Characters
CurveZMQ, ZMTP and other Dubious Characters
pieterh
Introduction to Heroku Postgres
Introduction to Heroku Postgres
Salesforce Developers
Scala and ZeroMQ: Events beyond the JVM
Scala and ZeroMQ: Events beyond the JVM
RUDDER
Roman Kuznietsov: Zeromq: sockets on steroids.Zero mq
Roman Kuznietsov: Zeromq: sockets on steroids.Zero mq
Sphere Consulting Inc
ZeroMQ
ZeroMQ
Stoyan Zhekov
zeromq
zeromq
Rajan Bhatt
ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti
ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti
Matteo Fortini
RabbitMq
RabbitMq
Ahmad Saif
RestMS Introduction
RestMS Introduction
pieterh
Introduction to ZeroMQ
Introduction to ZeroMQ
YiHung Lee
Zmq in context of openstack
Zmq in context of openstack
Yatin Kumbhare
Destaque
(20)
Introduction to ZeroMQ - eSpace TechTalk
Introduction to ZeroMQ - eSpace TechTalk
Zeromq anatomy & jeromq
Zeromq anatomy & jeromq
Software Architecture using ZeroMQ - techmesh 2012
Software Architecture using ZeroMQ - techmesh 2012
Git Without Branches - Simple, Smooth, Scalable
Git Without Branches - Simple, Smooth, Scalable
Revolutionary Open Source
Revolutionary Open Source
Practical Message Queueing using RabbitMQ (Nomad PHP EU Dec 2014)
Practical Message Queueing using RabbitMQ (Nomad PHP EU Dec 2014)
Social architecture-101
Social architecture-101
Fosdem 2009
Fosdem 2009
Introducing Practical RabbitMQ (php[tek] 2016 - Tutorial)
Introducing Practical RabbitMQ (php[tek] 2016 - Tutorial)
CurveZMQ, ZMTP and other Dubious Characters
CurveZMQ, ZMTP and other Dubious Characters
Introduction to Heroku Postgres
Introduction to Heroku Postgres
Scala and ZeroMQ: Events beyond the JVM
Scala and ZeroMQ: Events beyond the JVM
Roman Kuznietsov: Zeromq: sockets on steroids.Zero mq
Roman Kuznietsov: Zeromq: sockets on steroids.Zero mq
ZeroMQ
ZeroMQ
zeromq
zeromq
ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti
ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti
RabbitMq
RabbitMq
RestMS Introduction
RestMS Introduction
Introduction to ZeroMQ
Introduction to ZeroMQ
Zmq in context of openstack
Zmq in context of openstack
Último
Architecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Angeliki Cooney
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
MadyBayot
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
The Digital Insurer
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
sudhanshuwaghmare1
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
Nanddeep Nachan
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Juan lago vázquez
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
apidays
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
sammart93
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
Overkill Security
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
rafiqahmad00786416
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Product Anonymous
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
debabhi2
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Jago de Vreede
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Orbitshub
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
apidays
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
apidays
Último
(20)
Architecting Cloud Native Applications
Architecting Cloud Native Applications
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Software Architecture over ZeroMQ
1.
Software Architecture using ØMQ by Pieter Hintjens Strange
Loop 2012 Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
2.
A complex story is
best told as a series of vacuous 1- liners Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
3.
90% of software is trash. 90%
of the rest will be trash RSN Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
4.
We basically don't know how
to make code that can survive ten, let alone 50 years Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
5.
The most difficult challenge in our profession is
simple accuracy Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
6.
Future code has to
talk to code, has to be chatty, sociable, well- connected Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
7.
When we can move faster, where
we go is more critical than ever. Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
8.
Writing distributed code is like a
live jam session. It's all about other people Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
9.
How we connect to each
other matters more than who we are Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
10.
The physics of software is
the physics of people Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
11.
Ideas are cheap. Execution is the
hard part Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
12.
Making perfect software is easy, once you
learn the trick (which is kinda hard) Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
13.
Simplicity always beats functionality Photos by Pieter
Hintjens cc-by-sa © 2012 Pieter Hintjens
14.
Problems are not all equal,
and most are illusions Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
15.
When you know the real
problem you have done half the work Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
16.
Do nothing that is
not a minimal, plausible answer to a well-defined problem Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
17.
Every commit should be shippable Photos by
Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
18.
Design by removing problems, not adding features Photos
by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
19.
Five Steps to Satori: Learn, Draw, Divide, Conquer, Repeat Photos
by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
20.
1. Learn the language before you write
a poem Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
21.
2. If it looks pretty,
it's more likely to work Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
22.
3. A good contract is worth
a thousands assumptions Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
23.
4. When you take small steps,
it hurts less when you fall Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
24.
5. Solve one problem, and repeat until
you run out of time or money Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
25.
Distributed software lives or dies by
its protocols Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
26.
Protocols are contracts that describe the
rights and obligations of each party Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
27.
An unprotocol takes minutes to
explain, hours to design, days to write, weeks to prove, months to mature, and years to replace Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
28.
Use human
nom-protocol = open-peering language *use-peering in your open-peering = unprotocols. C:OHAI ( S:OHAI-OK / S:WTF ) use-peering = ORLY? C:ICANHAZ YARLY! / S:CHEEZBURGER / C:HUGZ S:HUGZ-OK / S:HUGZ C:HUGZ-OK Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
29.
Use GPLv3 for your open
specs. Remixability is freedom Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
30.
If you're willing to give
up flexibility for speed you deserve neither flexibility nor speed Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
31.
Use cheap text for
the low-volume chatty control commands Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
32.
Use nasty hand-coded binary for the
high- volume data Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
33.
ØMQ framing makes a lousy codec but
a great separator Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
34.
A hand- crafted codec can always
beat a generic serializer Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
35.
A code- generated codec can always
beat a hand- crafted one Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
36.
iMatix GSL: technology so dangerous we
had to lock it up for years Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
37.
File transfer is the zombie problem
of distributed applications Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
38.
Router sockets are the beating heart
of every real ØMQ protocol engine Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
39.
The world needs a chunked, flow-controlled, restartable, cancellable, async, multicast file
transfer ØMQ protocol Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
40.
No matter
C: fetch how hard S: chunk 1 you push, a S: chunk 2 file will not S: chunk 3 just go down a socket Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
41.
That
C: fetch chunk 1 annoying S: send chunk 1 pause after C: fetch chunk 2 S: send chunk 2 you finish C: fetch chunk 3 your beer, S: send chunk 3 before you C: fetch chunk 4 catch the waiter's eye Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
42.
You can,
C: fetch chunk 1 and I've C: fetch chunk 2 tested this, C: fetch chunk 3 S: send chunk 1 order a new C: fetch chunk 4 beer before S: send chunk 2 your old one S: send chunk 3 is empty Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
43.
Request-
C: subscribe reply is just C: send credit a vulgar S: send chunk S: send chunk subclass of C: send credit publish- S: send chunk subscribe Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
44.
On a router socket,
you should never hit the high-water mark Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
45.
Heartbeats are our protocol's way of asking
if we still care Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
46.
Protocol
command_t stack *request = = command_decode (socket) message codec execute_engine + (command) protocol engine Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
47.
State machines are a perfect domain language
for protocol engines Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
48.
State machines can be cudly and
gentle, when you get to know them Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
49.
You don't want to
bet against a compiler Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
50.
If you're not thinking
of security, security is probably thinking of you Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
51.
For connected bidirectional protocols over ØMQ use SASL Photos
by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
52.
For loosely connected and one-way protocols over
ØMQ, use AES and such Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
53.
secure-nom = open-peering SASL
over *use-peering ØMQ is open-peering = C:OHAI darned *( S:ORLY C:YARLY ) simple ( S:OHAI-OK / S:WTF ) ORLY = 1*mechanism challenge mechanism = string challenge = *OCTET YARLY = mechanism response response = *OCTET Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
54.
Theory is fine in theory,
but in practice, practice is better Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
55.
FileMQ is a file
sharing protocol and stack over ØMQ. Reusable until 2062 Photos by Pieter Hintjens cc-by-sa © 2012 Pieter Hintjens
56.
1. Aim for
50 years To sum it up: 2. It's all about people 3. Minimal plausible solutions zero.mq/ch6 4. To real immediate problems 5. Document the contracts 6. Cheap and Nasty codecs The Weird 7. Code generation rocks Fish Book, 8. Router sockets rock coming soon 9. CBFC > HWM from O'Reilly 10. Learn state machines 11. Learn about SASL Photos by Pieter Hintjens 12. Worked example: FileMQ cc-by-sa © 2012 Pieter Hintjens
Baixar agora