SlideShare a Scribd company logo
What is NATS
And why it is good for IoT
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
Who am I?
Raül Pérez
Lead Software Engineer
at Carrenza Ltd.
Twitter: @repejota
Github: https://github.com/repejota
Email: repejota@gmail.com
2
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
Who am I?
Raül Pérez
Lead Software Engineer
at Carrenza Ltd.
Twitter: @repejota
Github: https://github.com/repejota
Email: repejota@gmail.com
3
● Almost 4 years working on devops & distributed projects.
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
Who am I?
Raül Pérez
Lead Software Engineer
at Carrenza Ltd.
Twitter: @repejota
Github: https://github.com/repejota
Email: repejota@gmail.com
4
● Almost 4 years working on devops & distributed projects.
● Still more a dev than op dude.
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
Who am I?
Raül Pérez
Lead Software Engineer
at Carrenza Ltd.
Twitter: @repejota
Github: https://github.com/repejota
Email: repejota@gmail.com
5
● Almost 4 years working on devops & distributed projects.
● Still more a dev than op dude.
● Proud to be a Gopher after a looong PHP/Ruby/Python/Node.js past
experience. :P
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
Who am I?
Raül Pérez
Lead Software Engineer
at Carrenza Ltd.
Twitter: @repejota
Github: https://github.com/repejota
Email: repejota@gmail.com
6
● Almost 4 years working on devops & distributed projects.
● Still more a dev than op dude.
● Proud to be a Gopher after a looong PHP/Ruby/Python/Node.js past
experience. :P
● Based in Barcelona.
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
Who am I?
Raül Pérez
Lead Software Engineer
at Carrenza Ltd.
Twitter: @repejota
Github: https://github.com/repejota
Email: repejota@gmail.com
7
● Almost 4 years working on devops & distributed projects.
● Still more a dev than op dude.
● Proud to be a Gopher after a looong PHP/Ruby/Python/Node.js past
experience. :P
● Based in Barcelona.
● Love startups & love remote work!
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
NATS
8
What is NATS?
● Cloud-native message platform.
9
● Designed to natively support modern cloud architectures.
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
What is NATS?
● Cloud-native message platform.
● Highly performant.
10
● Designed to natively support modern cloud architectures.
● It is fast! Can handle millions of messages per second.
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
What is NATS?
● Cloud-native message platform.
● Highly performant.
● Extremely lightweight.
11
● Designed to natively support modern cloud architectures.
● It is fast! Can handle millions of messages per second.
● A single binary, easy to deploy without unnecessary complexity.
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
What is NATS?
● Cloud-native message platform.
● Highly performant.
● Extremely lightweight.
● Support for various messaging models and use cases.
12
● Designed to natively support modern cloud architectures.
● It is fast! Can handle 10 million messages per second on a Macbook
● A single binary, easy to deploy without unnecessary complexity.
● Request/Response, Publish/Subscribe, Queues.
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
What is NATS?
● Cloud-native message platform.
● Highly performant.
● Extremely lightweight.
● Support for various messaging models and use cases.
13
● Designed to natively support modern cloud architectures.
● It is fast! Can handle millions of messages per second.
● A single binary, easy to deploy without unnecessary complexity.
● Request/Response, Publish/Subscribe, Queues.
● Simple text based protocol.
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
IoT
14
IoT
● Everything is connected.
15
● Virtual representations of objects (things) in a internet-like structure.
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
IoT
● Everything is connected.
● Wireless connections between objects.
16
● Virtual representations of objects (things) in a internet-like structure.
● Flexible structure.
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
IoT
● Everything is connected.
● Wireless connections between objects.
● Self configured and discoverable.
17
● Virtual representations of objects (things) in a internet-like structure.
● Flexible structure.
● Event Driven.
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
IoT
● Everything is connected.
● Wireless connections between objects.
● Self configured and discoverable.
● Internet is no longer for people but also for machines.
18
● Virtual representations of objects (things) in a internet-like structure.
● Flexible structure.
● Event Driven.
● Multiple protocols.
● Multiple communication patterns.
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
IoT + NATS
19
IoT + NATS
● Always on.
20
● Always available (dial tone), fire and forget.
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
IoT + NATS
● Always on.
● Pure pub/sub.
21
● Always available (dial tone), fire and forget.
● Never assumes the audience.
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
IoT + NATS
● Always on.
● Pure pub/sub.
● Clustered mode server.
22
● Always available (dial tone), fire and forget.
● Never assumes the audience.
● Distributed queueing across clusters, cluster aware clients.
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
IoT + NATS
● Always on.
● Pure pub/sub.
● Clustered mode server.
● Auto-pruning of subscribers.
23
● Always available (dial tone), fire and forget.
● Never assumes the audience.
● Distributed queueing across clusters, cluster aware clients.
● Slow clients are being cut off.
● Clients implement retry logic.
● Extremely low latency!
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
NATS Latency - basically zero!
An example vs RabbitMQ
Source: http://bravenewgeek.com/benchmarking-message-queue-latency/
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
NATS IoT Examples
● Talk on using Lua and NATS for IoT in the Home by Eric Pinto Garcia (https:
//github.com/DawnAngel )
○ Video: https://www.youtube.com/watch?v=SLQ9VXrByPc
○ Slides: https://github.com/DawnAngel/presentations/blob/master/Lua,%20NATS%20&%20IoT.
pdf
● Ripple - Water Conservation Device control using NATS, Artik10 boards,
Golang
○ http://devpost.com/software/ripples
● NATS Arduino Client by Josh Glendenning (https://github.
com/joshglendenning ):
○ https://github.com/joshglendenning/arduino-nats
● Example of NATS messaging with Raspberry Pi by John Lockwood:
○ https://dzone.com/articles/simple-composable-microservices-an-iot-example-usi
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
Resources
● http://microservices.io
● https://en.wikipedia.org/wiki/Cloud_computing
● http://nats.io
26
● http://carrenza.com
● http://apcera.com
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
Questions?
Raül Pérez - @repejota IoT Barcelona - 04/07/2016
Thank you!
28
Raül Pérez - @repejota IoT Barcelona - 04/07/2016

More Related Content

What's hot

FFMUC: Half a year with WireGuard
FFMUC: Half a year with WireGuardFFMUC: Half a year with WireGuard
FFMUC: Half a year with WireGuard
Annika Wickert
 
Contributing to Open Source
Contributing to Open SourceContributing to Open Source
Contributing to Open Source
All Things Open
 
OpenNebula Conf 2014 | Deploying OpenNebula in a Snap using Configuration Man...
OpenNebula Conf 2014 | Deploying OpenNebula in a Snap using Configuration Man...OpenNebula Conf 2014 | Deploying OpenNebula in a Snap using Configuration Man...
OpenNebula Conf 2014 | Deploying OpenNebula in a Snap using Configuration Man...
NETWAYS
 
FFMUC goes wild - Infrastructure recap 2020 #rc3
FFMUC goes wild - Infrastructure recap 2020 #rc3FFMUC goes wild - Infrastructure recap 2020 #rc3
FFMUC goes wild - Infrastructure recap 2020 #rc3
Annika Wickert
 
Welcome talk unleashing the future of open-source enterprise cloud computing
Welcome talk   unleashing the future of open-source enterprise cloud computingWelcome talk   unleashing the future of open-source enterprise cloud computing
Welcome talk unleashing the future of open-source enterprise cloud computing
NETWAYS
 
Do You Need a Service Mesh? @ London Devops, January 2019
Do You Need a Service Mesh? @ London Devops, January 2019Do You Need a Service Mesh? @ London Devops, January 2019
Do You Need a Service Mesh? @ London Devops, January 2019
Matt Turner
 
DevOps: Coding Defines Monitoring
DevOps: Coding Defines MonitoringDevOps: Coding Defines Monitoring
DevOps: Coding Defines Monitoring
Opsta
 
FFMUC presents #ffmeet - #virtualUKNOF
FFMUC presents #ffmeet - #virtualUKNOFFFMUC presents #ffmeet - #virtualUKNOF
FFMUC presents #ffmeet - #virtualUKNOF
Annika Wickert
 
[ETHCon Korea 2019] Tai ling chen
[ETHCon Korea 2019] Tai ling chen[ETHCon Korea 2019] Tai ling chen
[ETHCon Korea 2019] Tai ling chen
ethconkr
 
Help , My Datacenter is on fire
Help , My Datacenter is on fireHelp , My Datacenter is on fire
Help , My Datacenter is on fire
Kris Buytaert
 
HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?
HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?
HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?
Tom Paseka
 
Oslo Vancouver Onboarding
Oslo Vancouver OnboardingOslo Vancouver Onboarding
Oslo Vancouver Onboarding
Ben Nemec
 
How to contribute to OpenStack
How to contribute to OpenStackHow to contribute to OpenStack
How to contribute to OpenStack
Opsta
 
[WSO2Con EU 2018] Tooling for Observability
[WSO2Con EU 2018] Tooling for Observability[WSO2Con EU 2018] Tooling for Observability
[WSO2Con EU 2018] Tooling for Observability
WSO2
 
Proteon - DevOps Live 2019 - OpenShift Pitfalls
Proteon - DevOps Live 2019 - OpenShift PitfallsProteon - DevOps Live 2019 - OpenShift Pitfalls
Proteon - DevOps Live 2019 - OpenShift Pitfalls
proteon-openshift-services
 
RIPE NCC Tools and Services - An Update
RIPE NCC Tools and Services - An UpdateRIPE NCC Tools and Services - An Update
RIPE NCC Tools and Services - An Update
RIPE NCC
 
Paris Open Source Summit, Floss - Innovation collaborative 2017 Alessandra Ba...
Paris Open Source Summit, Floss - Innovation collaborative 2017 Alessandra Ba...Paris Open Source Summit, Floss - Innovation collaborative 2017 Alessandra Ba...
Paris Open Source Summit, Floss - Innovation collaborative 2017 Alessandra Ba...
Alessandra Bagnato
 
WebRTC for Billions
WebRTC for BillionsWebRTC for Billions
WebRTC for Billions
Chad Hart
 
APIs in a .NET World
APIs in a .NET WorldAPIs in a .NET World
APIs in a .NET World
Bui Kiet
 

What's hot (19)

FFMUC: Half a year with WireGuard
FFMUC: Half a year with WireGuardFFMUC: Half a year with WireGuard
FFMUC: Half a year with WireGuard
 
Contributing to Open Source
Contributing to Open SourceContributing to Open Source
Contributing to Open Source
 
OpenNebula Conf 2014 | Deploying OpenNebula in a Snap using Configuration Man...
OpenNebula Conf 2014 | Deploying OpenNebula in a Snap using Configuration Man...OpenNebula Conf 2014 | Deploying OpenNebula in a Snap using Configuration Man...
OpenNebula Conf 2014 | Deploying OpenNebula in a Snap using Configuration Man...
 
FFMUC goes wild - Infrastructure recap 2020 #rc3
FFMUC goes wild - Infrastructure recap 2020 #rc3FFMUC goes wild - Infrastructure recap 2020 #rc3
FFMUC goes wild - Infrastructure recap 2020 #rc3
 
Welcome talk unleashing the future of open-source enterprise cloud computing
Welcome talk   unleashing the future of open-source enterprise cloud computingWelcome talk   unleashing the future of open-source enterprise cloud computing
Welcome talk unleashing the future of open-source enterprise cloud computing
 
Do You Need a Service Mesh? @ London Devops, January 2019
Do You Need a Service Mesh? @ London Devops, January 2019Do You Need a Service Mesh? @ London Devops, January 2019
Do You Need a Service Mesh? @ London Devops, January 2019
 
DevOps: Coding Defines Monitoring
DevOps: Coding Defines MonitoringDevOps: Coding Defines Monitoring
DevOps: Coding Defines Monitoring
 
FFMUC presents #ffmeet - #virtualUKNOF
FFMUC presents #ffmeet - #virtualUKNOFFFMUC presents #ffmeet - #virtualUKNOF
FFMUC presents #ffmeet - #virtualUKNOF
 
[ETHCon Korea 2019] Tai ling chen
[ETHCon Korea 2019] Tai ling chen[ETHCon Korea 2019] Tai ling chen
[ETHCon Korea 2019] Tai ling chen
 
Help , My Datacenter is on fire
Help , My Datacenter is on fireHelp , My Datacenter is on fire
Help , My Datacenter is on fire
 
HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?
HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?
HKNOG 6.0 Next Generation Networks - will automation put us out of jobs?
 
Oslo Vancouver Onboarding
Oslo Vancouver OnboardingOslo Vancouver Onboarding
Oslo Vancouver Onboarding
 
How to contribute to OpenStack
How to contribute to OpenStackHow to contribute to OpenStack
How to contribute to OpenStack
 
[WSO2Con EU 2018] Tooling for Observability
[WSO2Con EU 2018] Tooling for Observability[WSO2Con EU 2018] Tooling for Observability
[WSO2Con EU 2018] Tooling for Observability
 
Proteon - DevOps Live 2019 - OpenShift Pitfalls
Proteon - DevOps Live 2019 - OpenShift PitfallsProteon - DevOps Live 2019 - OpenShift Pitfalls
Proteon - DevOps Live 2019 - OpenShift Pitfalls
 
RIPE NCC Tools and Services - An Update
RIPE NCC Tools and Services - An UpdateRIPE NCC Tools and Services - An Update
RIPE NCC Tools and Services - An Update
 
Paris Open Source Summit, Floss - Innovation collaborative 2017 Alessandra Ba...
Paris Open Source Summit, Floss - Innovation collaborative 2017 Alessandra Ba...Paris Open Source Summit, Floss - Innovation collaborative 2017 Alessandra Ba...
Paris Open Source Summit, Floss - Innovation collaborative 2017 Alessandra Ba...
 
WebRTC for Billions
WebRTC for BillionsWebRTC for Billions
WebRTC for Billions
 
APIs in a .NET World
APIs in a .NET WorldAPIs in a .NET World
APIs in a .NET World
 

Similar to NATS & IoT

Patterns for Asynchronous Microservices with NATS
Patterns for Asynchronous Microservices with NATSPatterns for Asynchronous Microservices with NATS
Patterns for Asynchronous Microservices with NATS
Apcera
 
Python and big data : a good match?
Python and big data : a good match?Python and big data : a good match?
Python and big data : a good match?
PyDataParis
 
Tmo ipv6-feb-2013 1361827441
Tmo ipv6-feb-2013 1361827441Tmo ipv6-feb-2013 1361827441
Tmo ipv6-feb-2013 1361827441
Abdo sayed
 
Internet6 opportunity
Internet6 opportunityInternet6 opportunity
Internet6 opportunity
internet6hub
 
Ipv6 Advantages And Disadvantages
Ipv6 Advantages And DisadvantagesIpv6 Advantages And Disadvantages
Ipv6 Advantages And Disadvantages
Jacqueline Thomas
 
Getting The World IPv6 Enabled
Getting The World IPv6 EnabledGetting The World IPv6 Enabled
Getting The World IPv6 Enabled
IPv6 Forum Singapore
 
IPv6 Australia Update
IPv6 Australia UpdateIPv6 Australia Update
IPv6 Australia Update
APNIC
 
IPv6 Deployment, Lao ICT Expo 2016
IPv6 Deployment, Lao ICT Expo 2016IPv6 Deployment, Lao ICT Expo 2016
IPv6 Deployment, Lao ICT Expo 2016
APNIC
 
Enabling Edge Analytics of IoT Data: The Case of LoRaWAN
Enabling Edge Analytics of IoT Data: The Case of LoRaWANEnabling Edge Analytics of IoT Data: The Case of LoRaWAN
Enabling Edge Analytics of IoT Data: The Case of LoRaWAN
Hong-Linh Truong
 
Fast App development with SwellRT
Fast App development  with SwellRTFast App development  with SwellRT
Fast App development with SwellRT
Samer Hassan
 
Open Source india 2014
Open Source india 2014Open Source india 2014
Open Source india 2014
lohitvijayarenu
 
Tecnologia rest em python
Tecnologia rest em pythonTecnologia rest em python
Tecnologia rest em python
Allex Lima
 
Semantic Web Methodologies, Best Practices and Ontology Engineering Applied t...
Semantic Web Methodologies, Best Practices and Ontology Engineering Applied t...Semantic Web Methodologies, Best Practices and Ontology Engineering Applied t...
Semantic Web Methodologies, Best Practices and Ontology Engineering Applied t...
Ghislain ATEMEZING
 
OpenNebulaConf2017EU: Welcome Talk State and Future of OpenNebula by Ignacio ...
OpenNebulaConf2017EU: Welcome Talk State and Future of OpenNebula by Ignacio ...OpenNebulaConf2017EU: Welcome Talk State and Future of OpenNebula by Ignacio ...
OpenNebulaConf2017EU: Welcome Talk State and Future of OpenNebula by Ignacio ...
OpenNebula Project
 
ION Malta - Seeweb Thoughts on IPv6 Transition
ION Malta - Seeweb Thoughts on IPv6 TransitionION Malta - Seeweb Thoughts on IPv6 Transition
ION Malta - Seeweb Thoughts on IPv6 Transition
Deploy360 Programme (Internet Society)
 
interoperatbility between IPv4 and IPv6
interoperatbility between IPv4 and IPv6interoperatbility between IPv4 and IPv6
interoperatbility between IPv4 and IPv6Nitin Gehlot
 
IPv6::Staying connected
IPv6::Staying connectedIPv6::Staying connected
IPv6::Staying connected
RIPE NCC
 
From leading IoT Protocols to Python Dashboarding_final
From leading IoT Protocols to Python Dashboarding_finalFrom leading IoT Protocols to Python Dashboarding_final
From leading IoT Protocols to Python Dashboarding_final
Lukas Ott
 
NATS in action - A Real time Microservices Architecture handled by NATS
NATS in action - A Real time Microservices Architecture handled by NATSNATS in action - A Real time Microservices Architecture handled by NATS
NATS in action - A Real time Microservices Architecture handled by NATSRaül Pérez
 
Nats in action a real time microservices architecture handled by nats
Nats in action   a real time microservices architecture handled by natsNats in action   a real time microservices architecture handled by nats
Nats in action a real time microservices architecture handled by nats
Raul Perez
 

Similar to NATS & IoT (20)

Patterns for Asynchronous Microservices with NATS
Patterns for Asynchronous Microservices with NATSPatterns for Asynchronous Microservices with NATS
Patterns for Asynchronous Microservices with NATS
 
Python and big data : a good match?
Python and big data : a good match?Python and big data : a good match?
Python and big data : a good match?
 
Tmo ipv6-feb-2013 1361827441
Tmo ipv6-feb-2013 1361827441Tmo ipv6-feb-2013 1361827441
Tmo ipv6-feb-2013 1361827441
 
Internet6 opportunity
Internet6 opportunityInternet6 opportunity
Internet6 opportunity
 
Ipv6 Advantages And Disadvantages
Ipv6 Advantages And DisadvantagesIpv6 Advantages And Disadvantages
Ipv6 Advantages And Disadvantages
 
Getting The World IPv6 Enabled
Getting The World IPv6 EnabledGetting The World IPv6 Enabled
Getting The World IPv6 Enabled
 
IPv6 Australia Update
IPv6 Australia UpdateIPv6 Australia Update
IPv6 Australia Update
 
IPv6 Deployment, Lao ICT Expo 2016
IPv6 Deployment, Lao ICT Expo 2016IPv6 Deployment, Lao ICT Expo 2016
IPv6 Deployment, Lao ICT Expo 2016
 
Enabling Edge Analytics of IoT Data: The Case of LoRaWAN
Enabling Edge Analytics of IoT Data: The Case of LoRaWANEnabling Edge Analytics of IoT Data: The Case of LoRaWAN
Enabling Edge Analytics of IoT Data: The Case of LoRaWAN
 
Fast App development with SwellRT
Fast App development  with SwellRTFast App development  with SwellRT
Fast App development with SwellRT
 
Open Source india 2014
Open Source india 2014Open Source india 2014
Open Source india 2014
 
Tecnologia rest em python
Tecnologia rest em pythonTecnologia rest em python
Tecnologia rest em python
 
Semantic Web Methodologies, Best Practices and Ontology Engineering Applied t...
Semantic Web Methodologies, Best Practices and Ontology Engineering Applied t...Semantic Web Methodologies, Best Practices and Ontology Engineering Applied t...
Semantic Web Methodologies, Best Practices and Ontology Engineering Applied t...
 
OpenNebulaConf2017EU: Welcome Talk State and Future of OpenNebula by Ignacio ...
OpenNebulaConf2017EU: Welcome Talk State and Future of OpenNebula by Ignacio ...OpenNebulaConf2017EU: Welcome Talk State and Future of OpenNebula by Ignacio ...
OpenNebulaConf2017EU: Welcome Talk State and Future of OpenNebula by Ignacio ...
 
ION Malta - Seeweb Thoughts on IPv6 Transition
ION Malta - Seeweb Thoughts on IPv6 TransitionION Malta - Seeweb Thoughts on IPv6 Transition
ION Malta - Seeweb Thoughts on IPv6 Transition
 
interoperatbility between IPv4 and IPv6
interoperatbility between IPv4 and IPv6interoperatbility between IPv4 and IPv6
interoperatbility between IPv4 and IPv6
 
IPv6::Staying connected
IPv6::Staying connectedIPv6::Staying connected
IPv6::Staying connected
 
From leading IoT Protocols to Python Dashboarding_final
From leading IoT Protocols to Python Dashboarding_finalFrom leading IoT Protocols to Python Dashboarding_final
From leading IoT Protocols to Python Dashboarding_final
 
NATS in action - A Real time Microservices Architecture handled by NATS
NATS in action - A Real time Microservices Architecture handled by NATSNATS in action - A Real time Microservices Architecture handled by NATS
NATS in action - A Real time Microservices Architecture handled by NATS
 
Nats in action a real time microservices architecture handled by nats
Nats in action   a real time microservices architecture handled by natsNats in action   a real time microservices architecture handled by nats
Nats in action a real time microservices architecture handled by nats
 

NATS & IoT

  • 1. What is NATS And why it is good for IoT Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 2. Who am I? Raül Pérez Lead Software Engineer at Carrenza Ltd. Twitter: @repejota Github: https://github.com/repejota Email: repejota@gmail.com 2 Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 3. Who am I? Raül Pérez Lead Software Engineer at Carrenza Ltd. Twitter: @repejota Github: https://github.com/repejota Email: repejota@gmail.com 3 ● Almost 4 years working on devops & distributed projects. Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 4. Who am I? Raül Pérez Lead Software Engineer at Carrenza Ltd. Twitter: @repejota Github: https://github.com/repejota Email: repejota@gmail.com 4 ● Almost 4 years working on devops & distributed projects. ● Still more a dev than op dude. Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 5. Who am I? Raül Pérez Lead Software Engineer at Carrenza Ltd. Twitter: @repejota Github: https://github.com/repejota Email: repejota@gmail.com 5 ● Almost 4 years working on devops & distributed projects. ● Still more a dev than op dude. ● Proud to be a Gopher after a looong PHP/Ruby/Python/Node.js past experience. :P Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 6. Who am I? Raül Pérez Lead Software Engineer at Carrenza Ltd. Twitter: @repejota Github: https://github.com/repejota Email: repejota@gmail.com 6 ● Almost 4 years working on devops & distributed projects. ● Still more a dev than op dude. ● Proud to be a Gopher after a looong PHP/Ruby/Python/Node.js past experience. :P ● Based in Barcelona. Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 7. Who am I? Raül Pérez Lead Software Engineer at Carrenza Ltd. Twitter: @repejota Github: https://github.com/repejota Email: repejota@gmail.com 7 ● Almost 4 years working on devops & distributed projects. ● Still more a dev than op dude. ● Proud to be a Gopher after a looong PHP/Ruby/Python/Node.js past experience. :P ● Based in Barcelona. ● Love startups & love remote work! Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 9. What is NATS? ● Cloud-native message platform. 9 ● Designed to natively support modern cloud architectures. Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 10. What is NATS? ● Cloud-native message platform. ● Highly performant. 10 ● Designed to natively support modern cloud architectures. ● It is fast! Can handle millions of messages per second. Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 11. What is NATS? ● Cloud-native message platform. ● Highly performant. ● Extremely lightweight. 11 ● Designed to natively support modern cloud architectures. ● It is fast! Can handle millions of messages per second. ● A single binary, easy to deploy without unnecessary complexity. Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 12. What is NATS? ● Cloud-native message platform. ● Highly performant. ● Extremely lightweight. ● Support for various messaging models and use cases. 12 ● Designed to natively support modern cloud architectures. ● It is fast! Can handle 10 million messages per second on a Macbook ● A single binary, easy to deploy without unnecessary complexity. ● Request/Response, Publish/Subscribe, Queues. Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 13. What is NATS? ● Cloud-native message platform. ● Highly performant. ● Extremely lightweight. ● Support for various messaging models and use cases. 13 ● Designed to natively support modern cloud architectures. ● It is fast! Can handle millions of messages per second. ● A single binary, easy to deploy without unnecessary complexity. ● Request/Response, Publish/Subscribe, Queues. ● Simple text based protocol. Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 15. IoT ● Everything is connected. 15 ● Virtual representations of objects (things) in a internet-like structure. Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 16. IoT ● Everything is connected. ● Wireless connections between objects. 16 ● Virtual representations of objects (things) in a internet-like structure. ● Flexible structure. Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 17. IoT ● Everything is connected. ● Wireless connections between objects. ● Self configured and discoverable. 17 ● Virtual representations of objects (things) in a internet-like structure. ● Flexible structure. ● Event Driven. Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 18. IoT ● Everything is connected. ● Wireless connections between objects. ● Self configured and discoverable. ● Internet is no longer for people but also for machines. 18 ● Virtual representations of objects (things) in a internet-like structure. ● Flexible structure. ● Event Driven. ● Multiple protocols. ● Multiple communication patterns. Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 20. IoT + NATS ● Always on. 20 ● Always available (dial tone), fire and forget. Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 21. IoT + NATS ● Always on. ● Pure pub/sub. 21 ● Always available (dial tone), fire and forget. ● Never assumes the audience. Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 22. IoT + NATS ● Always on. ● Pure pub/sub. ● Clustered mode server. 22 ● Always available (dial tone), fire and forget. ● Never assumes the audience. ● Distributed queueing across clusters, cluster aware clients. Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 23. IoT + NATS ● Always on. ● Pure pub/sub. ● Clustered mode server. ● Auto-pruning of subscribers. 23 ● Always available (dial tone), fire and forget. ● Never assumes the audience. ● Distributed queueing across clusters, cluster aware clients. ● Slow clients are being cut off. ● Clients implement retry logic. ● Extremely low latency! Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 24. NATS Latency - basically zero! An example vs RabbitMQ Source: http://bravenewgeek.com/benchmarking-message-queue-latency/ Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 25. NATS IoT Examples ● Talk on using Lua and NATS for IoT in the Home by Eric Pinto Garcia (https: //github.com/DawnAngel ) ○ Video: https://www.youtube.com/watch?v=SLQ9VXrByPc ○ Slides: https://github.com/DawnAngel/presentations/blob/master/Lua,%20NATS%20&%20IoT. pdf ● Ripple - Water Conservation Device control using NATS, Artik10 boards, Golang ○ http://devpost.com/software/ripples ● NATS Arduino Client by Josh Glendenning (https://github. com/joshglendenning ): ○ https://github.com/joshglendenning/arduino-nats ● Example of NATS messaging with Raspberry Pi by John Lockwood: ○ https://dzone.com/articles/simple-composable-microservices-an-iot-example-usi Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 26. Resources ● http://microservices.io ● https://en.wikipedia.org/wiki/Cloud_computing ● http://nats.io 26 ● http://carrenza.com ● http://apcera.com Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 27. Questions? Raül Pérez - @repejota IoT Barcelona - 04/07/2016
  • 28. Thank you! 28 Raül Pérez - @repejota IoT Barcelona - 04/07/2016