Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Recreational Programming with Serverless

Recreational Programming with Serverless

Cloud projects don't have to be big or great. Sometimes, it's enough for them to be fun. For me, serverless is the very definition of fun.

Building things is fulfilling, servers are a distraction. Learn how serverless has helped me rediscover the joy of programming.

Mathias Lafeldt

September 09, 2019

More Decks by Mathias Lafeldt

Other Decks in Programming


  1. None
  2. Moin! I'm Mathias Lafeldt I help nice people learn how

    to embrace the cloud 6 years of experience running production systems on AWS Freelancer by choice ✌ @mlafeldt 2
  3. Most of my consulting work: Kubernetes + AWS @mlafeldt 3

  4. "Kubernetes is a fairly complex system with many moving parts.

    Its ecosystem is constantly evolving and adding even more layers (service mesh, ...) to the mix. Considering this environment, we don't hear enough real-world horror stories to learn from each other!" -- Henning Jacobs @mlafeldt 4
  5. @mlafeldt 5

  6. https://unsplash.com/photos/ZMcLVBi9xx4 6

  7. Recreational Programming "One of my life's goal is to help

    people remember what they found in computer programming originally." -- Jamis Buck https://weblog.jamisbuck.org 7
  8. https://www.allthingsdistributed.com/2019/08/modern-applications-at-aws.html 8

  9. Increase Agility and Innovation Speed 1. Microservices architecture 2. Purpose-built

    databases 3. Automated release pipelines 4. Automated, continuous security 5. As serverless as possible @mlafeldt 9
  10. The Serverless Future "At Amazon, we're not completely serverless ourselves,

    but we're moving in that direction." "In fact, we anticipate that there will soon be a whole generation of developers who have never touched a server and only write business logic." -- Werner @mlafeldt 10
  11. Serverless 101 • Services that run without the need for

    infrastructure provisioning & scaling • Built-in availability and security • Pay-for-value billing model • Focus on "secret sauce" • Faster path to customer value @mlafeldt 11
  12. Serverless is also a perfect fit for "recreational cloud programming"

    @mlafeldt 12
  13. https://dilbert.com/strip/2019-08-30 13

  14. @mlafeldt 14

  15. @mlafeldt 15

  16. 2 Lambdas, 1 Bucket $ serverless invoke -f get-strip -d

    '{"date":"2019-08-30"}' { "date": "2019-08-30", "title": "No One Is Taking Advice", "image_url": "https://assets.amuniversal.com/ef1707409f430137b461005056a9545d", "strip_url": "http://dilbert.com/strip/2019-08-30", "upload_url": "https://some-bucket.s3.eu-central-1.amazonaws.com/strips/2019-08-30.gif" } $ serverless invoke -f gen-feed { "feed_url": "https://some-bucket.s3.eu-central-1.amazonaws.com/feed.xml" } @mlafeldt 16
  17. @mlafeldt 17

  18. @mlafeldt 18

  19. Healthchecks.io @mlafeldt 19

  20. Things I learned from this project • AWS Lambda with

    Go • Parsing HTML, generating RSS feeds in Go • AWS Step Functions • Lightweight cron monitoring • Serverless deployment via SLS / AWS SAM / Terraform • Playground & template for other projects @mlafeldt 20
  21. DynamoDB Store for LaunchDarkly's Go SDK github.com/mlafeldt/launchdarkly-dynamo-store @mlafeldt 21

  22. Serverless Chaos Monkey @mlafeldt 22

  23. Positive Feedback @mlafeldt 23

  24. Takeaways • Cloud projects don't have to be big or

    great • Sometimes, it's enough for them to be fun • Building things is fulfilling, servers are a distraction • Serverless is a great fit for recreational programming @mlafeldt 24
  25. Thank you. @mlafeldt https://sharpend.io [email protected] 25