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

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
Tweet

More Decks by Mathias Lafeldt

Other Decks in Programming

Transcript

  1. View Slide

  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

    View Slide

  3. Most of my
    consulting work:
    Kubernetes + AWS
    @mlafeldt 3

    View Slide

  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

    View Slide

  5. @mlafeldt 5

    View Slide

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

    View Slide

  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

    View Slide

  8. https://www.allthingsdistributed.com/2019/08/modern-applications-at-aws.html 8

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  12. Serverless is also a perfect fit for
    "recreational cloud programming"
    @mlafeldt 12

    View Slide

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

    View Slide

  14. @mlafeldt 14

    View Slide

  15. @mlafeldt 15

    View Slide

  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

    View Slide

  17. @mlafeldt 17

    View Slide

  18. @mlafeldt 18

    View Slide

  19. Healthchecks.io
    @mlafeldt 19

    View Slide

  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

    View Slide

  21. DynamoDB Store for
    LaunchDarkly's Go SDK
    github.com/mlafeldt/launchdarkly-dynamo-store
    @mlafeldt 21

    View Slide

  22. Serverless Chaos Monkey
    @mlafeldt 22

    View Slide

  23. Positive Feedback
    @mlafeldt 23

    View Slide

  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

    View Slide

  25. Thank you.
    @mlafeldt
    https://sharpend.io
    [email protected]
    25

    View Slide