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

D818fa99a5fae8aae7102277734e6fe7?s=128

Sander van de Graaf

February 01, 2018
Tweet

Transcript

  1. SERVERLESS LORAWAN SOLUTIONS

  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 mail@svdgraaf.nl
  3. None
  4. WHAT IS SERVERLESS?

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

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

    abstraction •Unit of scale: application WHAT IS SERVERLESS?
  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?
  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?
  9. PERSPECTIVE. By Simon Wardley: https://twitter.com/swardley/status/951783539334352896 WHAT IS SERVERLESS?

  10. WHAT IS SERVERLESS? "An application running on 3rd party services

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

    (BAAS) and/or using serverless computing (FAAS)" - Martin Fowler WHAT IS SERVERLESS?
  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
  13. PROVIDERS. Google Cloud Functions Azure Functions AWS Lambda WHAT IS

    SERVERLESS?
  14. WHY SERVERLESS?

  15. PATCHING?! Patching? YAY!
 Said no one ever. WHY SERVERLESS?

  16. PATCHING?! WHY SERVERLESS?

  17. PATCHING?! WHY SERVERLESS?

  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?
  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?
  20. STATELESS. Event doStuff(event) Time ! WHY SERVERLESS?

  21. STATELESS. doStuff() Time doStuff() doStuff() doStuff() doStuff() doStuff() doStuff() doStuff()

    ! ! ! ! ! ! ! ! WHY SERVERLESS?
  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
  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
  24. COSTS. Pay per usage VM's: per minute WHY SERVERLESS?

  25. COSTS. Pay per usage VM's: per minute Lambda: Per 100ms

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

    + per request $0.000000208 / 100ms + $0.0000002 / request
  27. FREE STUFF! WHY SERVERLESS?

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

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

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

  31. COSTS. Serverless: WHY SERVERLESS?

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

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

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

  35. EXAMPLES.

  36. SIMPLE WEBSITE.

  37. CRON.

  38. JOB QUEUEUEUEUE.

  39. RESILIENT UPLOADING.

  40. SERVERLESS LORAWAN.

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

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

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

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

    of the box
  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 mail@svdgraaf.nl SANDER VAN DE GRAAF.