$30 off During Our Annual Pro Sale. View Details »

The Things Network - End to End Serverless Applications

The Things Network - End to End Serverless Applications

In this talk, I presented a workable architecture for designing your Lorawan application in a serverless matter.

This architecture does not involve any servers, and uses AWS Lambda functions to get things done. It is connected to The Things Network using the HTTP integration

Sander van de Graaf

February 01, 2018
Tweet

More Decks by Sander van de Graaf

Other Decks in Technology

Transcript

  1. SERVERLESS LORAWAN SOLUTIONS

    View Slide

  2. SANDER VAN DE GRAAF.
    Cloud Solutions Architect / Consultant
    15+ years large scale applications
    5+ years AWS experience
    http://twitter.com/svdgraaf
    http://linkedin.com/in/svdgraaf
    http://svdgraaf.nl
    [email protected]

    View Slide

  3. View Slide

  4. WHAT IS SERVERLESS?

    View Slide

  5. PERSPECTIVE.
    •VM's
    •Hardware abstraction
    •Unit of scale: machines
    WHAT IS SERVERLESS?

    View Slide

  6. PERSPECTIVE.
    •VM's
    •Hardware abstraction
    •Unit of scale: machines
    •Containers
    •OS abstraction
    •Unit of scale: application
    WHAT IS SERVERLESS?

    View Slide

  7. PERSPECTIVE.
    •VM's
    •Hardware abstraction
    •Unit of scale: machines
    •Containers
    •OS abstraction
    •Unit of scale: application
    •Serverless
    •Runtime abstraction
    •Unit of scale: functions
    WHAT IS SERVERLESS?

    View Slide

  8. PERSPECTIVE.
    •VM's
    "I want to configure machines, storage, networking and my OS"
    •Containers
    "I want to run servers, configure applications and control scaling"
    •Serverless
    "Run my code when it's needed"
    WHAT IS SERVERLESS?

    View Slide

  9. PERSPECTIVE.
    By Simon Wardley: https://twitter.com/swardley/status/951783539334352896
    WHAT IS SERVERLESS?

    View Slide

  10. WHAT IS SERVERLESS?
    "An application running on 3rd
    party services (BAAS) and/or using
    serverless computing (FAAS)"
    - Martin Fowler
    WHAT IS SERVERLESS?

    View Slide

  11. WHAT IS SERVERLESS?
    "An application running on 3rd
    party services (BAAS) and/or using
    serverless computing (FAAS)"
    - Martin Fowler
    WHAT IS SERVERLESS?

    View Slide

  12. BAAS/FAAS.
    WHAT IS SERVERLESS?
    •BAAS: Backend As A Service
    - Databases: Parse/Firebase/etc
    - Authentication: Auth0, AWS Cognito
    - etc...
    •FAAS: Functions As A Service

    View Slide

  13. PROVIDERS.
    Google
    Cloud Functions
    Azure
    Functions
    AWS
    Lambda
    WHAT IS SERVERLESS?

    View Slide

  14. WHY SERVERLESS?

    View Slide

  15. PATCHING?!
    Patching? YAY!

    Said no one ever.
    WHY SERVERLESS?

    View Slide

  16. PATCHING?!
    WHY SERVERLESS?

    View Slide

  17. PATCHING?!
    WHY SERVERLESS?

    View Slide

  18. RUNTIMES.
    •C# .net core 1.0/2.0
    •Go 1.x
    •Java 8
    •NodeJS 4.3, 6.10
    •Python 2.7, 3.6
    WHY SERVERLESS?

    View Slide

  19. EVENT BASED.
    • API Gateway
    • AWS IoT
    • Alexa Skills Kit
    • Alexa Smart Home
    • CloudWatch Events
    • CloudWatch Logs
    • CodeCommit
    • Cognito Sync Trigger
    • DynamoDB
    • Kinesis
    • S3
    • SNS
    WHY SERVERLESS?

    View Slide

  20. STATELESS.
    Event
    doStuff(event)
    Time
    !
    WHY SERVERLESS?

    View Slide

  21. STATELESS.
    doStuff()
    Time
    doStuff()
    doStuff()
    doStuff()
    doStuff()
    doStuff()
    doStuff()
    doStuff()
    !
    !
    !
    !
    !
    !
    !
    !
    WHY SERVERLESS?

    View Slide

  22. SCALABLE BY DEFAULT.
    Seconds
    WHY SERVERLESS?
    Provisioned
    Servers
    Requests /
    second
    0
    100
    200
    300
    400
    0 10 20 30 40 50 60 70 80 90 100 110 120 130
    Requests

    View Slide

  23. SCALABLE BY DEFAULT.
    Seconds
    WHY SERVERLESS?
    Provisioned
    Servers
    Requests /
    second
    0
    100
    200
    300
    400
    0 10 20 30 40 50 60 70 80 90 100 110 120
    Requests
    130

    View Slide

  24. COSTS.
    Pay per usage
    VM's: per minute
    WHY SERVERLESS?

    View Slide

  25. COSTS.
    Pay per usage
    VM's: per minute
    Lambda: Per 100ms + per request
    WHY SERVERLESS?

    View Slide

  26. COSTS.
    Pay per usage
    VM's: per minute
    Lambda: Per 100ms + per request
    $0.000000208 / 100ms
    +
    $0.0000002 / request

    View Slide

  27. FREE STUFF!
    WHY SERVERLESS?

    View Slide

  28. FREE STUFF!
    400.000 GB-seconds / month
    1 Million requests / month
    WHY SERVERLESS?

    View Slide

  29. COSTS.
    Example:
    10.000 devices
    Updates every hour @ random
    2 seconds to process
    WHY SERVERLESS?

    View Slide

  30. COSTS.
    Traditional:
    ~$250/m
    WHY SERVERLESS?

    View Slide

  31. COSTS.
    Serverless:
    WHY SERVERLESS?

    View Slide

  32. COSTS.
    Serverless:
    ~7.440.000 executions
    ~2000 msecs
    WHY SERVERLESS?

    View Slide

  33. COSTS.
    Serverless:
    ~7.440.000 executions
    ~2000 msecs
    WHY SERVERLESS?

    View Slide

  34. COSTS.
    Serverless:
    ~7.440.000 executions
    ~2000 msecs
    ~$25.63/m

    View Slide

  35. EXAMPLES.

    View Slide

  36. SIMPLE WEBSITE.

    View Slide

  37. CRON.

    View Slide

  38. JOB QUEUEUEUEUE.

    View Slide

  39. RESILIENT UPLOADING.

    View Slide

  40. SERVERLESS LORAWAN.

    View Slide

  41. SERVERLESS LORAWAN.
    https://www.thethingsnetwork.org/docs/applications/aws/

    View Slide

  42. View Slide

  43. SERVERLESS LORAWAN.
    https://www.thethingsnetwork.org/docs/applications/http/

    View Slide

  44. View Slide

  45. FRAMEWORKS.
    •Serverless Framework: serverless.com
    •Zappa: zappa.io
    •Chalice: github.com/aws/chalice

    View Slide

  46. CONCLUSION.
    •Cost effective infrastructure
    •Event based
    •Stateless
    •Highly scalable out of the box

    View Slide

  47. QUESTIONS?
    Cloud Solutions Architect / Consultant
    15+ years large scale applications
    5+ years AWS experience
    http://twitter.com/svdgraaf
    http://linkedin.com/in/svdgraaf
    http://svdgraaf.nl
    [email protected]
    SANDER VAN DE GRAAF.

    View Slide