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. 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
  2. "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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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