Brewing beer with Python Chesco Igual @chescales What shalt thou - - PowerPoint PPT Presentation

brewing beer with python
SMART_READER_LITE
LIVE PREVIEW

Brewing beer with Python Chesco Igual @chescales What shalt thou - - PowerPoint PPT Presentation

Brewing beer with Python Chesco Igual @chescales What shalt thou learn? - Building an IoT backend - - Technologies, Protocols and Tools - - Backend considerations - - Meet a full running architecture - - Learn to brew beer - What shalt thou


slide-1
SLIDE 1

Brewing beer with Python

Chesco Igual @chescales

slide-2
SLIDE 2

What shalt thou learn?

  • Building an IoT backend -
  • Technologies, Protocols and Tools -
  • Backend considerations -
  • Meet a full running architecture -
  • Learn to brew beer -
slide-3
SLIDE 3

What shalt thou learn?

  • Building an IoT backend -
  • Technologies, Protocols and Tools -
  • Backend considerations -
  • Meet a full running architecture -
  • Learn to brew beer -
slide-4
SLIDE 4

MiniBrew

slide-5
SLIDE 5

So what is it?

slide-6
SLIDE 6

So what is it?

Yay!! Awesome!! (and others)

slide-7
SLIDE 7

So what is it?

Yay!! Awesome!! (and others)

slide-8
SLIDE 8

Let’s go technical

slide-9
SLIDE 9

Project Requirements

Real-time data

slide-10
SLIDE 10

Project Requirements

Security

  • Real-time data -
slide-11
SLIDE 11

Project Requirements

Obfuscation

  • Real-time data -
  • Security -
slide-12
SLIDE 12

Project Requirements

Authentication

  • Real-time data -
  • Security -
  • Obfuscation -
slide-13
SLIDE 13

Project Requirements

Two-way

communication

  • Real-time data -
  • Security -
  • Obfuscation -
  • Authentication -
slide-14
SLIDE 14

Project Requirements

Resiliency

  • Real-time data -
  • Security -
  • Obfuscation -
  • Authentication -
  • 2-way communication -
slide-15
SLIDE 15

Project Requirements

Lightweight

  • Real-time data -
  • Security -
  • Obfuscation -
  • Authentication -
  • 2-way communication -
  • Resiliency -
slide-16
SLIDE 16

Project Requirements

  • Real-time data -
  • Security -
  • Obfuscation -
  • Authentication -
  • 2-way communication -
  • Resiliency -
  • Lightweight -
  • Last known status -
  • Debugging -
  • Admin site -
  • Mobile app api -
  • rainbows, etc. -
slide-17
SLIDE 17

What thou shalt take care about too...

  • Scalability -
  • Proven technologies -
  • small tech stack -
  • Error tracking -
  • Reduce data transfer -
  • Documentation -
slide-18
SLIDE 18

What thou shalt take care about too...

  • Scalability -
  • Proven technologies -
  • small tech stack -
  • Error tracking -
  • Reduce data transfer -
  • Documentation -
slide-19
SLIDE 19

when I read the project specs for the first time

Source: thecodinglove.com
slide-20
SLIDE 20

Step by Step

slide-21
SLIDE 21

Communications Protocol

slide-22
SLIDE 22

Communication Protocols

HTTP AMQP XMPP

CoAP MQTT

DDS

slide-23
SLIDE 23

Communication Protocols

HTTP AMQP XMPP

CoAP MQTT

DDS

slide-24
SLIDE 24

Comprehensive IoT Backend Solutions

slide-25
SLIDE 25

Amazon IoT

slide-26
SLIDE 26
slide-27
SLIDE 27

So then…?

  • Real-time data -
  • Security -
  • Obfuscation -
  • Authentication -
  • 2-way communication -
  • Resiliency -
  • Lightweight -
  • Last known status -
  • Debugging -
  • Admin site -
  • Mobile app api -
  • rainbows, etc. -
  • Scalability -
  • Proven technologies -
  • small tech stack -
  • Error tracking -
  • Reduce data transfer -
  • Documentation -

PROJECT REQUIREMENTS EXTRAS

slide-28
SLIDE 28

Let’s set up our own

(get a broker…)

slide-29
SLIDE 29

Options?

slide-30
SLIDE 30

Options?

Top player for many years Scalability proven (vertical and horizontal) Can convert from MQTT to other protocols (AMQP) No payment per use Familiarity

slide-31
SLIDE 31

Extra bonus!

???

slide-32
SLIDE 32

Extra bonus!

slide-33
SLIDE 33

Now what?

Let’s talk to that broker

slide-34
SLIDE 34

Eclipse library

https://github.com/eclipse/paho.mqtt.python

slide-35
SLIDE 35

NO CODE

slide-36
SLIDE 36
slide-37
SLIDE 37

API time

slide-38
SLIDE 38

Again, options?

slide-39
SLIDE 39

How are we doing?

  • Real-time data -
  • Security -
  • Obfuscation -
  • Authentication -
  • 2-way communication -
  • Resiliency -
  • Lightweight -
  • Last known status -
  • Debugging -
  • Admin site -
  • Mobile app api -
  • rainbows, etc. -
  • Scalability -
  • Proven technologies -
  • small tech stack -
  • Error tracking -
  • Reduce data transfer -
  • Documentation -

PROJECT REQUIREMENTS EXTRAS

slide-40
SLIDE 40

Authentication

slide-41
SLIDE 41

Let Python decide

https://github.com/rabbitmq/rabbitmq-auth-backend-http

slide-42
SLIDE 42

How are we doing?

  • Real-time data -
  • Security -
  • Obfuscation -
  • Authentication -
  • 2-way communication -
  • Resiliency -
  • Lightweight -
  • Last known status -
  • Debugging -
  • Admin site -
  • Mobile app api -
  • rainbows, etc. -
  • Scalability -
  • Proven technologies -
  • small tech stack -
  • Error tracking -
  • Reduce data transfer -
  • Documentation -

PROJECT REQUIREMENTS EXTRAS

slide-43
SLIDE 43

How are we doing?

  • Real-time data -
  • Security -
  • Obfuscation -
  • Authentication -
  • 2-way communication -
  • Resiliency -
  • Lightweight -
  • Last known status -
  • Debugging -
  • Admin site -
  • Mobile app api -
  • rainbows, etc. -
  • Scalability -
  • Proven technologies -
  • small tech stack -
  • Error tracking -
  • Reduce data transfer -
  • Documentation -

PROJECT REQUIREMENTS EXTRAS

slide-44
SLIDE 44

Obfuscated and Lightweight messages

slide-45
SLIDE 45

Protocol Buffers

https://github.com/google/protobuf

slide-46
SLIDE 46

Protocol Buffers

https://github.com/google/protobuf

slide-47
SLIDE 47
slide-48
SLIDE 48

How are we doing?

  • Real-time data -
  • Security -
  • Obfuscation -
  • Authentication -
  • 2-way communication -
  • Resiliency -
  • Lightweight -
  • Last known status -
  • Debugging -
  • Admin site -
  • Mobile app api -
  • rainbows, etc. -
  • Scalability -
  • Proven technologies -
  • small tech stack -
  • Error tracking -
  • Reduce data transfer -
  • Documentation -

PROJECT REQUIREMENTS EXTRAS

slide-49
SLIDE 49

How are we doing?

  • Real-time data -
  • Security -
  • Obfuscation -
  • Authentication -
  • 2-way communication -
  • Resiliency -
  • Lightweight -
  • Last known status -
  • Debugging -
  • Admin site -
  • Mobile app api -
  • rainbows, etc. -
  • Scalability -
  • Proven technologies -
  • small tech stack -
  • Error tracking -
  • Reduce data transfer -
  • Documentation -

PROJECT REQUIREMENTS EXTRAS

slide-50
SLIDE 50

Final Architecture

slide-51
SLIDE 51

Wanna roll with us?

Barcelona (ES) Almere (NL)

elements.nl/careers

slide-52
SLIDE 52

Thank You

slide-53
SLIDE 53

Questions?