putting node js serverless apps into production without
play

Putting Node.js Serverless Apps into Production without the - PowerPoint PPT Presentation

Putting Node.js Serverless Apps into Production without the Pitfalls Ein Shanaghy @eoins @eoins Im going to talk about JS Modern JavaScript and Applications Serverless Pitfalls and how we How to overcome them Build Them Recipes


  1. Putting Node.js Serverless Apps into Production without the Pitfalls Eóin Shanaghy @eoins @eoins

  2. I’m going to talk about JS Modern JavaScript and Applications Serverless Pitfalls and how we How to overcome them Build Them Recipes for Effective Serverless Serverless with JS @eoins

  3. The Modern Application Intelligent Scalable User-focused Fast to market Reliable Experimental! @eoins

  4. The best way to build a modern application @eoins

  5. Build it with Wordpress! @eoins

  6. Build it with Haskell! @eoins

  7. Build it with Rails! @eoins

  8. Build it with Erlang! @eoins

  9. Build it with Java Microservices on Kubernetes @eoins

  10. Build it with Serverless using JavaScript @eoins

  11. Why would you do this?!! @eoins

  12. THE PURSUIT OF PERFECTION REALITY @eoins

  13. There are always trade-offs @eoins

  14. The pursuit of perfection @eoins

  15. @eoins David Redfern/Redferns/Getty Images

  16. @eoins

  17. CLOUD MICROSERVICES IaC λ INFRASTRUCTURE FUNCTIONS AS MANAGED COMPLEXITY A SERVICE SERVICES @eoins

  18. Serverless #1 - Managed Services (incl. FaaS) #2 - Event-driven #3 – Pay only for what you use #4 – No idling infrastructure #5 – Less code @eoins

  19. JavaScript @eoins

  20. The Success of Node.js Developer Productivity Event-Driven I/O Single thread Modules Easy to: Comprehend Find Create Ditch @eoins

  21. Is JS a Good Fit for Serverless? Maybe not… But actually… • One process per request • Fast to start • No HTTP server • Fast runtime • Lack of types • No compilation overhead • Huge module ecosystem • Familiarity, ubiquity • Still highly productive! • JSON @eoins

  22. 50-60% of Lambda Functions @eoins New Relic, For the Love of Serverless 2020 Report

  23. Should We Choose JavaScript? It matters less than ever before Start with what you know Experiment Solve the problems you observe @eoins

  24. handler.js @eoins

  25. lib/accommodation.js @eoins

  26. serverless.yml @eoins

  27. curl https://8dmtx7a123.execute-api.eu-west- 1.amazonaws.com/dev/accomodation\?county\=Louth @eoins

  28. requestId requestId : d791228a-687f-45ed- 918c-3165a7c20f5c, ip ip : 91.123.228.33, caller caller : -, user user : - , requestTime requestTime : 29/Feb/2020:14:23:14 +0000, httpMethod httpMethod : GET, resourcePath resourcePath : /accomodation, status status : 200, protocol : HTTP/1.1, protocol responseLength : 105418 responseLength @eoins

  29. Challenges Learning Curve Best Practices? Moving Target Organisational New Models Migration is Hard Change @eoins

  30. Serverless Adoption Rollercoaster Scaling to massive user MVP Maturity Deployed numbers! Initial PoC Joy Lock down API Gateway + Architecting a Migrate IAM Roles Production DynamoDB Application Schema Experience @eoins

  31. 1. Put all best practices together 2. Make opinionated decisions 3. Replicate production environment 4. Make it open source @eoins

  32. @eoins

  33. slic.app @eoins

  34. @eoins

  35. @eoins

  36. @eoins

  37. @eoins

  38. Targets AWS @eoins

  39. @eoins

  40. Separate Accounts @eoins

  41. Serverless Framework CDK @eoins

  42. Infrastructure @eoins

  43. Infrastructure @eoins

  44. Infrastructure @eoins

  45. CDK @eoins

  46. Continuous Deployment Essential Infrastructure resources + code Deployment time is critical @eoins

  47. @eoins

  48. Observability @eoins

  49. Structured Logs {"level":30,"time":1575753091452,"pid":88157,"hostname":" eoinmac","name":"pino-logging- example","a":1,"b":2,"msg":"Hello world","v":1} @eoins

  50. Centralized Logs @eoins

  51. Service Metrics Service Example Metrics Lambda Invocations, Errors, IteratorAge, ConcurrentExecutions DynamoDB ReturnedBytes, ConsumedWriteCapacityUnits Lex MissedUtteranceCount,RuntimePollyErrors Textract UserErrorCount, ResponseTime Rekognition DetectedFaceCount,DetectedLabelCount Polly RequestCharacters, ResponseLatency @eoins

  52. Application and Service Metrics @eoins

  53. Application and Service Metrics @eoins

  54. @eoins

  55. Distributed Tracing @eoins

  56. Distributed Tracing @eoins

  57. @eoins

  58. @eoins

  59. Chapter 6! @eoins

  60. Serverless is about productivity and agility Don’t seek perfection Move out of your comfort zone enough Check out SLIC Starter to avoid some Serverless pitfalls! @eoins

  61. Thank You @eoins

Recommend


More recommend