Top Banner
Componenti ZeroMQ Redis Conclusioni ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti Matteo Fortini LinuxDay Ferrara, 27 Ottobre 2012 Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di C
27

ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

May 17, 2015

Download

Technology

Matteo Fortini

Realizzare software complessi con componenti semplici che interagiscono in forme ben definite è da sempre il modo per ottenere architetture robuste ed efficienti.

ZeroMQ e Redis permettono di implementare questo paradigma ed estenderlo alle reti, ai diversi linguaggi, alle diverse architetture hardware.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

ZeroMQ e Redis:soluzioni Open Source per l’integrazione di

Componenti

Matteo Fortini

LinuxDayFerrara, 27 Ottobre 2012

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 2: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Componenti

Riutilizzabili

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 3: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Componenti

Testabili Singolarmente

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 4: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Componenti

Scritti in diversi linguaggi

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 5: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Componenti

Cross-platform

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 6: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Componenti

Modulari

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 7: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Componenti

Distribuibili

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 8: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Evoluzione dei progettiCaratteristiche di ZeroMQPatternDifetti

The Intelligent Transport Layer

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 9: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Evoluzione dei progettiCaratteristiche di ZeroMQPatternDifetti

Come iniziano i progetti?

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 10: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Evoluzione dei progettiCaratteristiche di ZeroMQPatternDifetti

Come finiscono?

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 11: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Evoluzione dei progettiCaratteristiche di ZeroMQPatternDifetti

Vantaggi di ZeroMQ• Serverless• Orientata ai messaggi• Cross platform• Cross linguaggio

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 12: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Evoluzione dei progettiCaratteristiche di ZeroMQPatternDifetti

Trasparente• inproc:// → memoria, thread• ipc:// → UNIX R© sockets, processi• tcp:// → rete

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 13: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Evoluzione dei progettiCaratteristiche di ZeroMQPatternDifetti

Pattern

[ti costringe a pensare alle interazioni]

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 14: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Evoluzione dei progettiCaratteristiche di ZeroMQPatternDifetti

REQ/REP

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 15: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Evoluzione dei progettiCaratteristiche di ZeroMQPatternDifetti

PIPE

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 16: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Evoluzione dei progettiCaratteristiche di ZeroMQPatternDifetti

PUB/SUB

[anche multimaster → (e)pgm://]Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 17: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Evoluzione dei progettiCaratteristiche di ZeroMQPatternDifetti

Devices• Forwarder → PUB/SUB• Streamer → PIPE• Broker → REQ/REP

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 18: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Evoluzione dei progettiCaratteristiche di ZeroMQPatternDifetti

Difetti• Robustezza sulla rete• Uso di thread• assert()• Performance• Fork: http://crossroads.io

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 19: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Il problema dello statoRedisNon solo Key-ValueFunzioni avanzateDistribuitoDifetti

Redis is an open source, advancedkey-value store.It is often referred to as a data structureserver since keys can contain strings, hashes,lists, sets and sorted sets.

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 20: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Il problema dello statoRedisNon solo Key-ValueFunzioni avanzateDistribuitoDifetti

Il problema dello stato

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 21: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Il problema dello statoRedisNon solo Key-ValueFunzioni avanzateDistribuitoDifetti

Cos’è Redis• NoSQL• Key-Value• Piccolo• Efficiente• In-memory• Cross platform (server/clients)• Cross linguaggio (clients)

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 22: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Il problema dello statoRedisNon solo Key-ValueFunzioni avanzateDistribuitoDifetti

Non solo Key-Value• HASH• LIST• SET/ORDERED SET• BITSET

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 23: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Il problema dello statoRedisNon solo Key-ValueFunzioni avanzateDistribuitoDifetti

Funzioni avanzate• Transazioni• INC/DEC atomici• PUB/SUB• EXPIRE• MONITOR• Lua scripting

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 24: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Il problema dello statoRedisNon solo Key-ValueFunzioni avanzateDistribuitoDifetti

Distribuito• Master/Slave• Sentinel

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 25: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Il problema dello statoRedisNon solo Key-ValueFunzioni avanzateDistribuitoDifetti

Difetti• Limitato dalla RAM

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 26: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

[Piccola demo...]

Grazie!

Domande?

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti

Page 27: ZeroMQ e Redis: soluzioni open source per l'integrazione di componenti

ComponentiZeroMQ

RedisConclusioni

Acknowledgements

• Clones Army image by Fred Dunnhttps://secure.flickr.com/photos/gratapictures/

• Dandelion image by undergroundbastardhttps://secure.flickr.com/photos/undergroundbastard/

• Pattern image by Akbar Simhttps://secure.flickr.com/photos/akbar2/

• Gears image by freefotoukhttps://secure.flickr.com/photos/freefoto/

• Pipes image by Domirielhttps://secure.flickr.com/photos/domiriel/

• Antenna image by Janne Aaltonenhttps://secure.flickr.com/photos/janneaaltonen/

• Map pin image by joebuzzicahttps://secure.flickr.com/photos/63352809@N02/

Matteo Fortini ZeroMQ e Redis: soluzioni Open Source per l’integrazione di Componenti